diff options
| author | Marc Jeanmougin <marc.jeanmougin@telecom-paristech.fr> | 2018-04-29 14:25:32 +0000 |
|---|---|---|
| committer | Marc Jeanmougin <marc.jeanmougin@telecom-paristech.fr> | 2018-04-29 14:25:32 +0000 |
| commit | ab5f8ff5869021958f4ae8b838c3d707a2e85eaa (patch) | |
| tree | 4907675828a5401d013b7587538cc8541edd2764 /src/libavoid/obstacle.h | |
| parent | moved libcroco, libuemf, libdepixelize to 3rdparty folder (diff) | |
| download | inkscape-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.h | 150 |
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 - - |
