24 #ifndef COREFINE_3D_FACE_FACE_HH
25 #define COREFINE_3D_FACE_FACE_HH
28 #include "g-map-vertex.hh"
40 typedef std::multiset<CDart*, CAngularFaceComparator>
TFaceSet;
45 SCorefFace(CDart * AFace,
const CPlane & APlane,
const CBoundingBox & ABox)
54 typedef CGrid3d< std::pair< std::list<CDart*>,
56 typedef CGrid3dIterator< std::pair< std::list<CDart*>,
62 CCorefine3dFF(CGMapVertex * AMap,
bool ACalculateOrientation =
true,
63 TCoordinate AEpsilon = 1E-4,
int AVertexDI = -1);
77 virtual int corefine(CDart *& AMesh1, CDart *& AMesh2,
78 std::bitset<NB_MARKS> ACopyMarks = 0);
79 virtual int corefine(
int AMark1,
int AMark2,
80 std::bitset<NB_MARKS> ACopyMarks = 0);
82 virtual void splitMeshes(CDart * AMesh1, CDart * AMesh2,
83 std::bitset<NB_MARKS> ACopyMarks = 0);
85 std::bitset<NB_MARKS> ACopyMarks = 0);
89 std::bitset<NB_MARKS> ACopyMarks = 0);
102 virtual void splitMeshes(std::bitset<NB_MARKS> ACopyMarks = 0);
107 TOrbit AOrbit,
void * AData);
109 virtual CBoundingBox
initMesh(CDart * AMesh);
111 virtual CBoundingBox
initFaces(
int AMark);
117 const CBoundingBox & ABox);
119 std::list<CDart*> * AFaces);
124 CDart *
findFaceSector(CDart * AFaceVertex,
const CPlane & AFacePlane,
125 int AFaceMark,
const CVertex & AVector);
127 const CPlane & ARefPlane,
128 const CPlane & AClipPlane1,
129 const CPlane & AClipPlane2);
134 int APositiveMark,
int ANegativeMark,
135 int AFacesMark,
bool AUseVerticesLinks =
true,
136 int * ANbVertices = NULL,
137 int * ANbPositiveVertices = NULL,
138 int * ANbNegativeVertices = NULL);
140 std::list<CDart*> * AFictVertices,
141 std::list<CDart*> * AFictEdges);
147 const CVertex & AInterLine,
const CPlane & AFacePlane);
152 const CPlane & AFacePlane,
153 const CPlane & AInterPlane,
154 const CVertex & AInterLine,
155 int APositiveMark,
int ANegativeMark,
170 const CVertex & AVertex2);
171 virtual CDart *
splitEdge(CDart * AEdge,
const CVertex & APoint,
172 std::list<CDart*> * AFictiveEdges = NULL);
173 virtual CDart *
splitFace(CDart * AVertex1, CDart * AVertex2);
185 int AFacesMark,
int AInterMark,
186 std::list<CDart*> * AInterList);
189 const CPlane & APlane1,
190 const CPlane & APlane2,
191 std::list<CDart*> * AFaceList1,
192 std::list<CDart*> * AFaceList2);
195 const CPlane & APlane1,
196 const CPlane & APlane2,
197 int APositiveMark,
int ANegativeMark,
199 std::list<CDart*> * AFictiveVertices,
200 std::list<CDart*> * AFictiveEdges);
203 const CPlane & APlane1,
204 const CPlane & APlane2,
205 int APositiveMark,
int ANegativeMark,
207 std::list<CDart*> * AFictiveVertices,
208 std::list<CDart*> * AFictiveEdges);
222 int AFacePlaneDI,
int ANegativeMark);
225 std::bitset<NB_MARKS> AMarks);
228 const CPlane & APlane);
261 #endif // COREFINE_3D_FACE_FACE_HH