33 #include "libavoid/vertices.h"
42 typedef std::list<int> ShapeList;
43 typedef std::list<bool *> FlagList;
49 EdgeInf(VertInf *v1, VertInf *v2,
const bool orthogonal =
false);
51 inline double getDist(
void)
55 void setDist(
double dist);
56 void alertConns(
void);
57 void addConn(
bool *flag);
58 void addCycleBlocker(
void);
59 void addBlocker(
int b);
61 bool isOrthogonal(
void)
const;
62 bool isDummyConnection(
void)
const;
63 bool rotationLessThan(
const VertInf* last,
const EdgeInf *rhs)
const;
64 std::pair<VertID, VertID> ids(
void)
const;
65 std::pair<Point, Point> points(
void)
const;
68 VertInf *otherVert(
const VertInf *vert)
const;
69 static EdgeInf *checkEdgeVisibility(VertInf *i, VertInf *j,
70 bool knownNew =
false);
71 static EdgeInf *existingEdge(VertInf *i, VertInf *j);
72 int blocker(
void)
const;
77 void makeActive(
void);
78 void makeInactive(
void);
79 int firstBlocker(
void);
80 bool isBetween(VertInf *i, VertInf *j);
89 EdgeInfList::iterator m_pos1;
90 EdgeInfList::iterator m_pos2;
100 EdgeList(
bool orthogonal =
false);
103 EdgeInf *begin(
void);
105 int size(
void)
const;
107 void addEdge(EdgeInf *edge);
108 void removeEdge(EdgeInf *edge);
111 EdgeInf *m_first_edge;
112 EdgeInf *m_last_edge;
113 unsigned int m_count;