summaryrefslogtreecommitdiffstats
path: root/src/libavoid/obstacle.h
diff options
context:
space:
mode:
authorMarc Jeanmougin <marc.jeanmougin@telecom-paristech.fr>2018-04-29 14:25:32 +0000
committerMarc Jeanmougin <marc.jeanmougin@telecom-paristech.fr>2018-04-29 14:25:32 +0000
commitab5f8ff5869021958f4ae8b838c3d707a2e85eaa (patch)
tree4907675828a5401d013b7587538cc8541edd2764 /src/libavoid/obstacle.h
parentmoved libcroco, libuemf, libdepixelize to 3rdparty folder (diff)
downloadinkscape-ab5f8ff5869021958f4ae8b838c3d707a2e85eaa.tar.gz
inkscape-ab5f8ff5869021958f4ae8b838c3d707a2e85eaa.zip
Put adaptagrams into its own folder
Diffstat (limited to 'src/libavoid/obstacle.h')
-rw-r--r--src/libavoid/obstacle.h150
1 files changed, 0 insertions, 150 deletions
diff --git a/src/libavoid/obstacle.h b/src/libavoid/obstacle.h
deleted file mode 100644
index 12c5eca14..000000000
--- a/src/libavoid/obstacle.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * vim: ts=4 sw=4 et tw=0 wm=0
- *
- * libavoid - Fast, Incremental, Object-avoiding Line Router
- *
- * Copyright (C) 2004-2014 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
-*/
-
-//! @file obstacle.h
-//! @brief Contains the interface for the Obstacle class,
-//! the superclass for ShapeRef and JunctionRef.
-
-
-#ifndef AVOID_OBSTACLE_H
-#define AVOID_OBSTACLE_H
-
-#include <list>
-#include <set>
-
-#include <cstdio>
-
-#include "libavoid/geometry.h"
-#include "libavoid/connectionpin.h"
-
-
-namespace Avoid {
-
-class VertInf;
-class Router;
-class Obstacle;
-class ConnEnd;
-class ConnRef;
-typedef std::list<Obstacle *> ObstacleList;
-typedef std::list<ConnRef *> ConnRefList;
-
-
-// @brief The Obstacle class represents an obstacle that must be
-// routed around. Superclass of ShapeRef and JunctionRef.
-//
-class Obstacle
-{
- public:
- //! @brief Obstacle reference constructor.
- //!
- //! Creates an obstacle object reference. It is expected that you
- //! would not instantiate an Obstacle directly, but would instead
- //! use either ShapeRef() or JunctionRef().
- //!
- //! @param[in] router The router scene to place the shape into.
- //! @param[in] poly A Polygon representing the boundary of the
- //! shape.
- //! @param[in] id A unique positive integer ID for the shape.
- Obstacle(Router *router, Polygon poly, const unsigned int id = 0);
-
-// To prevent C++ objects from being destroyed in garbage collected languages
-// when the libraries are called from SWIG, we hide the declarations of the
-// destructors and prevent generation of default destructors.
-#ifndef SWIG
- //! @brief Obstacle reference destructor.
- //!
- virtual ~Obstacle();
-#endif
-
- //! @brief Returns the ID of this obstacle.
- //! @returns The ID of the obstacle.
- unsigned int id(void) const;
- //! @brief Returns a reference to the polygon boundary of this
- //! obstacle.
- //! @returns A reference to the polygon boundary of the obstacle.
- const Polygon& polygon(void) const;
- //! @brief Returns a pointer to the router scene this obstacle
- //! is in.
- //! @returns A pointer to the router scene for this obstacle.
- Router *router(void) const;
- //! @brief Returns the position of this obstacle.
- //! @returns A point representing the position of this obstacle.
- virtual Point position(void) const = 0;
-
- void setNewPoly(const Polygon& poly);
- VertInf *firstVert(void);
- VertInf *lastVert(void);
- Box routingBox(void) const;
- Polygon routingPolygon(void) const;
- ConnRefList attachedConnectors(void) const;
-
- private:
- friend class Router;
- friend class ConnEnd;
- friend class ShapeConnectionPin;
- friend class HyperedgeRerouter;
- friend class HyperedgeImprover;
- friend class MinimumTerminalSpanningTree;
-
- // Defined in visibility.cpp:
- void computeVisibilityNaive(void);
- void computeVisibilitySweep(void);
-
- virtual void outputCode(FILE *fp) const = 0;
- void makeActive(void);
- void makeInactive(void);
- bool isActive(void) const;
- void updatePinPolyLineVisibility(void);
- void removeFromGraph(void);
- Point shapeCentre(void);
-
- VertInf *getPointVertex(const Point& point);
-
- void addFollowingConnEnd(ConnEnd *connEnd);
- void removeFollowingConnEnd(ConnEnd *connEnd);
- size_t addConnectionPin(ShapeConnectionPin *pin);
- void removeConnectionPin(ShapeConnectionPin *pin);
- void assignPinVisibilityTo(const unsigned int pinClassId,
- VertInf *dummyConnectionVert);
- std::vector<Point> possiblePinPoints(unsigned int pinClassId) const;
-
- protected:
- Router *m_router;
- unsigned int m_id;
- Polygon m_polygon;
- bool m_active;
- ObstacleList::iterator m_router_obstacles_pos;
- VertInf *m_first_vert;
- VertInf *m_last_vert;
- std::set<ConnEnd *> m_following_conns;
- ShapeConnectionPinSet m_connection_pins;
-};
-
-
-}
-
-
-#endif
-
-