33#ifndef __H__UG_delaunay_info
34#define __H__UG_delaunay_info
47template <
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);
A generic specialization of IAttachment.
Definition attachment_pipe.h:263
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
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
AAPos & position_accessor()
Definition delaunay_info.h:70
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
bool face_classification_enabled()
Definition delaunay_info.h:149
Grid & grid()
Definition delaunay_info.h:69
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