// Filename: mesherEdge.h // Created by: drose (15Sep97) // //////////////////////////////////////////////////////////////////// #ifndef MESHEREDGE_H #define MESHEREDGE_H #include #include "mesherConfig.h" #include "builderBucket.h" #include #include template class MesherStrip; template class MesherEdge { public: typedef PrimType Prim; typedef TYPENAME PrimType::Vertex Vertex; typedef MesherStrip Strip; INLINE MesherEdge(const Vertex *a, const Vertex *b); INLINE MesherEdge(const MesherEdge ©); void remove(Strip *strip); void change_strip(Strip *from, Strip *to); INLINE bool contains_vertex(const Vertex *v) const; INLINE bool matches(const MesherEdge &other) const; INLINE MesherEdge *common_ptr(); INLINE bool operator == (const MesherEdge &other) const; INLINE bool operator != (const MesherEdge &other) const; INLINE bool operator < (const MesherEdge &other) const; INLINE float compute_length(const BuilderBucket &bucket) const; INLINE Vertexf compute_box(const BuilderBucket &bucket) const; ostream &output(ostream &out) const; const Vertex *_a, *_b; typedef list Strips; Strips _strips; MesherEdge *_opposite; }; template INLINE ostream &operator << (ostream &out, const MesherEdge &edge) { return edge.output(out); } #include "mesherEdge.I" #endif