33 #ifndef __H__UG_delaunay_info
34 #define __H__UG_delaunay_info
47 template <
class TAAPos>
76 template <
class TIter>
77 void init_marks(TIter trisBegin, TIter trisEnd,
bool pushFlipCandidates);
90 template <
class TIter>
93 while(begin != end) {set_mark(*begin, m); ++begin;}
97 template <
class TElem>
98 bool is_inner(TElem* e);
101 template <
class TElem>
102 bool is_segment(TElem* e);
105 bool is_dart_segment(
Edge* e);
108 bool is_new_dart_segment(
Edge* e);
111 bool is_dart_shell_segment(
Edge* e);
116 bool is_classifiable(
Face* f);
124 void push_candidate(
Edge* e);
125 Edge* pop_candidate();
134 void start_candidate_recording();
137 void stop_candidate_recording();
147 bool classified_faces_left();
148 Face* pop_classified_face();
150 void enable_face_classification(
number minAngle);
158 virtual void vertex_created(
Grid* grid,
Vertex* vrt,
160 bool replacesParent);
162 virtual void edge_created(
Grid* grid,
Edge* e,
164 bool replacesParent);
166 virtual void face_created(
Grid* grid,
Face* f,
168 bool replacesParent);
171 virtual void edge_to_be_erased(
Grid* grid,
Edge* e,
Edge* replacedBy);
173 virtual void face_to_be_erased(
Grid* grid,
Face* f,
Face* replacedBy);
177 FaceInfo() : f(NULL), priority(0), classified(false) {}
192 typedef std::priority_queue<FaceInfo*, std::vector<FaceInfo*>,
197 bool is_classified(
Face* f);
198 bool classify_face(
Face* f);
Definition: delaunay_info.h:49
std::queue< Edge * > m_qEdgeCandidates
Definition: delaunay_info.h:218
AAPos m_aaPos
Definition: delaunay_info.h:202
Grid::edge_traits::callback m_cbConstrainedEdge
Definition: delaunay_info.h:213
TAAPos::ValueType vector_t
Definition: delaunay_info.h:51
bool candidates_left()
Definition: delaunay_info.h:126
Grid::AttachmentAccessor< Edge, ABool > m_aaCandidateEDGE
Definition: delaunay_info.h:217
AFaceInfo m_aFaceInfo
Definition: delaunay_info.h:207
ABool m_aCandidate
Definition: delaunay_info.h:216
void set_mark(TIter begin, TIter end, Mark m)
Definition: delaunay_info.h:91
number min_angle() const
Definition: delaunay_info.h:152
Attachment< FaceInfo * > AFaceInfo
Definition: delaunay_info.h:190
Grid & grid()
Definition: delaunay_info.h:69
Mark
Definition: delaunay_info.h:54
@ NEW_INNER
Definition: delaunay_info.h:57
@ SEGMENT
Definition: delaunay_info.h:58
@ INNER
Definition: delaunay_info.h:56
@ NEW_SEGMENT
Definition: delaunay_info.h:59
@ DART
Definition: delaunay_info.h:60
@ NONE
Definition: delaunay_info.h:55
TAAPos AAPos
Definition: delaunay_info.h:50
FacePriorityQueue m_faceQueue
Definition: delaunay_info.h:209
number m_maxDot
Definition: delaunay_info.h:212
Grid & m_grid
Definition: delaunay_info.h:201
Mark mark(Vertex *v) const
Definition: delaunay_info.h:82
void set_mark(Edge *e, Mark m)
Definition: delaunay_info.h:84
MultiElementAttachmentAccessor< AByte > m_aaMark
Definition: delaunay_info.h:205
void set_mark(Face *f, Mark m)
Mark mark(Edge *e) const
Definition: delaunay_info.h:85
std::vector< Edge * > m_recordedCandidates
Definition: delaunay_info.h:222
void set_mark(Vertex *v, Mark m)
Definition: delaunay_info.h:81
AByte m_aMark
Definition: delaunay_info.h:204
Grid::AttachmentAccessor< Face, AFaceInfo > m_aaFaceInfo
Definition: delaunay_info.h:208
bool m_candidateRecordingEnabled
Definition: delaunay_info.h:221
AAPos & position_accessor()
Definition: delaunay_info.h:70
bool face_classification_enabled()
Definition: delaunay_info.h:149
number m_minAngle
Definition: delaunay_info.h:211
std::priority_queue< FaceInfo *, std::vector< FaceInfo * >, CompareFaceInfo > FacePriorityQueue
Definition: delaunay_info.h:194
bool is_candidate(Edge *e)
Definition: delaunay_info.h:123
Mark mark(Face *f) const
Definition: delaunay_info.h:88
number max_dot() const
Definition: delaunay_info.h:153
Base-class for edges.
Definition: grid_base_objects.h:397
Faces are 2-dimensional objects.
Definition: grid_base_objects.h:510
the generic attachment-accessor for access to grids attachment pipes.
Definition: grid.h:182
Manages the elements of a grid and their interconnection.
Definition: grid.h:132
The base class for all geometric objects, such as vertices, edges, faces, volumes,...
Definition: grid_base_objects.h:157
Definition: grid_observer.h:80
Accesses attachements in different element types at the same time.
Definition: attachment_util.h:56
Base-class for all vertex-types.
Definition: grid_base_objects.h:231
#define UG_API
Definition: ug_config.h:65
double number
Definition: types.h:124
Definition: delaunay_info.h:183
bool operator()(const FaceInfo *fi1, const FaceInfo *fi2) const
Definition: delaunay_info.h:184
Definition: delaunay_info.h:176
bool classified
Definition: delaunay_info.h:180
Face * f
Definition: delaunay_info.h:178
FaceInfo()
Definition: delaunay_info.h:177
number priority
Definition: delaunay_info.h:179
boost::function< bool(base_object *)> callback
callback type for the elements base type.
Definition: grid.h:150