diff options
| author | Arcadie M. Cracan <acracan@gmail.com> | 2009-12-02 21:26:56 +0000 |
|---|---|---|
| committer | Arcadie M. Cracan <acracan@gmail.com> | 2009-12-02 21:26:56 +0000 |
| commit | 89a5d9d34b73249c357fffae17c2989b6fdd6846 (patch) | |
| tree | 7d8be8b419e57374e518b3e63c6b675ca82571d1 /src/libavoid/viscluster.cpp | |
| parent | Merge GSoC2009 Connectors into trunk (diff) | |
| download | inkscape-89a5d9d34b73249c357fffae17c2989b6fdd6846.tar.gz inkscape-89a5d9d34b73249c357fffae17c2989b6fdd6846.zip | |
Add forgotten libavoid files
(bzr r8856)
Diffstat (limited to 'src/libavoid/viscluster.cpp')
| -rw-r--r-- | src/libavoid/viscluster.cpp | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/src/libavoid/viscluster.cpp b/src/libavoid/viscluster.cpp new file mode 100644 index 000000000..a127c5a17 --- /dev/null +++ b/src/libavoid/viscluster.cpp @@ -0,0 +1,96 @@ +/* + * vim: ts=4 sw=4 et tw=0 wm=0 + * + * libavoid - Fast, Incremental, Object-avoiding Line Router + * + * Copyright (C) 2004-2008 Monash University + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * See the file LICENSE.LGPL distributed with the library. + * + * Licensees holding a valid commercial license may use this file in + * accordance with the commercial license agreement provided with the + * library. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * Author(s): Michael Wybrow <mjwybrow@users.sourceforge.net> +*/ + + +#include "libavoid/viscluster.h" +#include "libavoid/router.h" +#include "libavoid/assertions.h" + + +namespace Avoid { + + +ClusterRef::ClusterRef(Router *router, unsigned int id, Polygon& ply) + : _router(router) + , _poly(ply, router) + , _active(false) +{ + _id = router->assignId(id); +} + + +ClusterRef::~ClusterRef() +{ +} + + +void ClusterRef::makeActive(void) +{ + COLA_ASSERT(!_active); + + // Add to connRefs list. + _pos = _router->clusterRefs.insert(_router->clusterRefs.begin(), this); + + _active = true; +} + + +void ClusterRef::makeInactive(void) +{ + COLA_ASSERT(_active); + + // Remove from connRefs list. + _router->clusterRefs.erase(_pos); + + _active = false; +} + + +void ClusterRef::setNewPoly(Polygon& poly) +{ + _poly = ReferencingPolygon(poly, _router); +} + + +unsigned int ClusterRef::id(void) +{ + return _id; +} + + +ReferencingPolygon& ClusterRef::polygon(void) +{ + return _poly; +} + + +Router *ClusterRef::router(void) +{ + return _router; +} + + +} + + |
