30 #ifndef AVOID_OBSTACLE_H 31 #define AVOID_OBSTACLE_H 38 #include "libavoid/geometry.h" 49 typedef std::list<Obstacle *> ObstacleList;
69 Obstacle(Router *router, Polygon poly,
const unsigned int id = 0);
82 unsigned int id(
void)
const;
86 const Polygon& polygon(
void)
const;
90 Router *router(
void)
const;
93 virtual Point position(
void)
const = 0;
95 void setNewPoly(
const Polygon& poly);
96 VertInf *firstVert(
void);
97 VertInf *lastVert(
void);
98 Box routingBox(
void)
const;
99 Polygon routingPolygon(
void)
const;
104 friend class ConnEnd;
105 friend class ShapeConnectionPin;
106 friend class HyperedgeRerouter;
107 friend class HyperedgeImprover;
108 friend class MinimumTerminalSpanningTree;
111 void computeVisibilityNaive(
void);
112 void computeVisibilitySweep(
void);
114 virtual void outputCode(FILE *fp)
const = 0;
115 void makeActive(
void);
116 void makeInactive(
void);
117 bool isActive(
void)
const;
118 void updatePinPolyLineVisibility(
void);
119 void removeFromGraph(
void);
120 Point shapeCentre(
void);
122 VertInf *getPointVertex(
const Point& point);
124 void addFollowingConnEnd(ConnEnd *connEnd);
125 void removeFollowingConnEnd(ConnEnd *connEnd);
126 size_t addConnectionPin(ShapeConnectionPin *pin);
127 void removeConnectionPin(ShapeConnectionPin *pin);
128 void assignPinVisibilityTo(
const unsigned int pinClassId,
129 VertInf *dummyConnectionVert);
130 std::vector<Point> possiblePinPoints(
unsigned int pinClassId)
const;
137 ObstacleList::iterator m_router_obstacles_pos;
138 VertInf *m_first_vert;
139 VertInf *m_last_vert;
140 std::set<ConnEnd *> m_following_conns;
141 ShapeConnectionPinSet m_connection_pins;
std::list< ConnRef * > ConnRefList
A list of ConnRef objects.
Definition: connector.h:47
Contains the interface for the ShapeConnectionPin class.
libavoid: Object-avoiding orthogonal and polyline connector routing library.
Definition: actioninfo.cpp:33