26 #ifndef AVOID_SCANLINE_H 27 #define AVOID_SCANLINE_H 37 static const double CHANNEL_MAX = 100000000;
47 ShiftSegment(
const size_t dim)
51 virtual ~ShiftSegment()
54 virtual Point& lowPoint(
void) = 0;
55 virtual Point& highPoint(
void) = 0;
56 virtual const Point& lowPoint(
void)
const = 0;
57 virtual const Point& highPoint(
void)
const = 0;
58 virtual bool overlapsWith(
const ShiftSegment *rhs,
59 const size_t dim)
const = 0;
60 virtual bool immovable(
void)
const = 0;
66 typedef std::list<ShiftSegment *> ShiftSegmentList;
72 bool operator()(
const Node* u,
const Node* v)
const;
76 typedef std::set<Node*,CmpNodePos> NodeSet;
86 double min[2], max[2];
87 Node *firstAbove, *firstBelow;
88 NodeSet::iterator iter;
90 Node(Obstacle *v,
const double p);
91 Node(VertInf *c,
const double p);
92 Node(ShiftSegment *ss,
const double p);
94 double firstObstacleAbove(
size_t dim);
95 double firstObstacleBelow(
size_t dim);
96 void markShiftSegmentsAbove(
size_t dim);
97 void markShiftSegmentsBelow(
size_t dim);
98 void findFirstPointAboveAndBelow(
const size_t dim,
const double linePos,
99 double& firstAbovePos,
double& firstBelowPos,
100 double& lastAbovePos,
double& lastBelowPos);
101 double firstPointAbove(
size_t dim);
102 double firstPointBelow(
size_t dim);
103 bool isInsideShape(
size_t dimension);
119 Event(EventType t, Node *v,
double p);
127 extern int compare_events(
const void *a,
const void *b);
128 extern void buildConnectorRouteCheckpointCache(Router *router);
129 extern void clearConnectorRouteCheckpointCache(Router *router);
130 extern void buildOrthogonalChannelInfo(Router *router,
131 const size_t dim, ShiftSegmentList& segmentList);
Contains the interface for various geometry types and classes.
libavoid: Object-avoiding orthogonal and polyline connector routing library.
Definition: actioninfo.cpp:33