28 template<
class Gt,
class Cb>
36 for (
int i = 0; i < 4; i++)
41 tVGI[i] = globalDelaunayVertexIndices.
toGlobal
54 template<
class Gt,
class Cb>
63 template<
class Gt,
class Cb>
75 template<
class Gt,
class Cb>
88 Cb(v0, v1, v2, v3, n0, n1, n2, n3),
96 template<
class Gt,
class Cb>
103 template<
class Gt,
class Cb>
112 template<
class Gt,
class Cb>
115 return reinterpret_cast<const Foam::point&
>(this->circumcenter());
120 template<
class Gt,
class Cb>
123 const typename Gt::Point_3& P = this->circumcenter();
127 CGAL::to_double(P.x()),
128 CGAL::to_double(P.y()),
129 CGAL::to_double(P.z())
136 template<
class Gt,
class Cb>
139 return index_ == ctUnassigned;
143 template<
class Gt,
class Cb>
150 template<
class Gt,
class Cb>
157 template<
class Gt,
class Cb>
163 this->vertex(0)->real()
164 || this->vertex(1)->real()
165 || this->vertex(2)->real()
166 || this->vertex(3)->real()
170 this->vertex(0)->farPoint()
171 || this->vertex(1)->farPoint()
172 || this->vertex(2)->farPoint()
173 || this->vertex(3)->farPoint()
179 template<
class Gt,
class Cb>
184 this->vertex(0)->farPoint()
185 || this->vertex(1)->farPoint()
186 || this->vertex(2)->farPoint()
187 || this->vertex(3)->farPoint()
192 template<
class Gt,
class Cb>
197 this->vertex(0)->referred()
198 || this->vertex(1)->referred()
199 || this->vertex(2)->referred()
200 || this->vertex(3)->referred()
205 template<
class Gt,
class Cb>
210 this->vertex(0)->featurePoint()
211 || this->vertex(1)->featurePoint()
212 || this->vertex(2)->featurePoint()
213 || this->vertex(3)->featurePoint()
218 template<
class Gt,
class Cb>
223 this->vertex(0)->seedPoint()
224 || this->vertex(1)->seedPoint()
225 || this->vertex(2)->seedPoint()
226 || this->vertex(3)->seedPoint()
231 template<
class Gt,
class Cb>
236 this->vertex(0)->internalPoint()
237 || this->vertex(1)->internalPoint()
238 || this->vertex(2)->internalPoint()
239 || this->vertex(3)->internalPoint()
244 template<
class Gt,
class Cb>
249 this->vertex(0)->boundaryPoint()
250 || this->vertex(1)->boundaryPoint()
251 || this->vertex(2)->boundaryPoint()
252 || this->vertex(3)->boundaryPoint()
257 template<
class Gt,
class Cb>
262 this->vertex(0)->constrained()
263 || this->vertex(1)->constrained()
264 || this->vertex(2)->constrained()
265 || this->vertex(3)->constrained()
270 template<
class Gt,
class Cb>
278 this->vertex(0)->referred()
279 || this->vertex(1)->referred()
280 || this->vertex(2)->referred()
281 || this->vertex(3)->referred()
285 this->vertex(0)->real()
286 || this->vertex(1)->real()
287 || this->vertex(2)->real()
288 || this->vertex(3)->real()
294 template<
class Gt,
class Cb>
299 for (
int i = 0; i < 4; ++i)
301 if (this->vertex(i)->referred())
303 lowestProc =
min(lowestProc, this->vertex(i)->procIndex());
311 template<
class Gt,
class Cb>
319 = unsortedVertexGlobalIndices(globalDelaunayVertexIndices);
322 for (
int i = 0; i < tVGI.
size(); i++)
324 for (
int j = tVGI.
size() - 1 ; j > i; j--)
326 if (tVGI[j - 1] > tVGI[j])
337 template<
class Gt,
class Cb>
346 = unsortedVertexGlobalIndices(globalDelaunayVertexIndices);
351 for (
int i = 0; i < tVGI.
size(); i++)
353 for (
int j = tVGI.
size() - 1 ; j > i; j--)
355 if (tVGI[j - 1] > tVGI[j])
363 for (
int i = 0; i < 4; i++)
365 tVGI[i] = vertexMap[i];
372 template<
class Gt,
class Cb>
377 this->vertex(0)->internalOrBoundaryPoint()
378 || this->vertex(1)->internalOrBoundaryPoint()
379 || this->vertex(2)->internalOrBoundaryPoint()
380 || this->vertex(3)->internalOrBoundaryPoint()
385 template<
class Gt,
class Cb>
390 this->vertex(0)->internalOrBoundaryPoint()
391 || this->vertex(0)->externalBoundaryPoint()
392 || this->vertex(1)->internalOrBoundaryPoint()
393 || this->vertex(1)->externalBoundaryPoint()
394 || this->vertex(2)->internalOrBoundaryPoint()
395 || this->vertex(2)->externalBoundaryPoint()
396 || this->vertex(3)->internalOrBoundaryPoint()
397 || this->vertex(3)->externalBoundaryPoint()
402 template<
class Gt,
class Cb>
416 this->vertex(0)->internalBoundaryPoint()
417 || this->vertex(1)->internalBoundaryPoint()
418 || this->vertex(2)->internalBoundaryPoint()
419 || this->vertex(3)->internalBoundaryPoint()
422 this->vertex(0)->externalBoundaryPoint()
423 || this->vertex(1)->externalBoundaryPoint()
424 || this->vertex(2)->externalBoundaryPoint()
425 || this->vertex(3)->externalBoundaryPoint()
445 template<
class Gt,
class Cb>
451 this->vertex(0)->internalBaffleSurfacePoint()
452 || this->vertex(1)->internalBaffleSurfacePoint()
453 || this->vertex(2)->internalBaffleSurfacePoint()
454 || this->vertex(3)->internalBaffleSurfacePoint()
457 this->vertex(0)->externalBaffleSurfacePoint()
458 || this->vertex(1)->externalBaffleSurfacePoint()
459 || this->vertex(2)->externalBaffleSurfacePoint()
460 || this->vertex(3)->externalBaffleSurfacePoint()
466 template<
class Gt,
class Cb>
472 this->vertex(0)->internalBaffleEdgePoint()
473 || this->vertex(1)->internalBaffleEdgePoint()
474 || this->vertex(2)->internalBaffleEdgePoint()
475 || this->vertex(3)->internalBaffleEdgePoint()
478 this->vertex(0)->externalBaffleEdgePoint()
479 || this->vertex(1)->externalBaffleEdgePoint()
480 || this->vertex(2)->externalBaffleEdgePoint()
481 || this->vertex(3)->externalBaffleEdgePoint()
487 template<
class Gt,
class Cb>
492 this->vertex(0)->featureEdgePoint()
493 && this->vertex(1)->featureEdgePoint()
494 && this->vertex(2)->featureEdgePoint()
495 && this->vertex(3)->featureEdgePoint()
525 template<
class Gt,
class Cb>
530 this->vertex(0)->featurePoint()
531 && this->vertex(1)->featurePoint()
532 && this->vertex(2)->featurePoint()
533 && this->vertex(3)->featurePoint()
538 template<
class Gt,
class Cb>
543 this->vertex(0)->nearProcBoundary()
544 || this->vertex(1)->nearProcBoundary()
545 || this->vertex(2)->nearProcBoundary()
546 || this->vertex(3)->nearProcBoundary()
551 template<
class Gt,
class Cb>
564 if (v->internalBoundaryPoint())
570 if (v->externalBoundaryPoint())
579 if (nMasters == 2 && nSlaves == 2)
586 vM[0]->
type() == vS[0]->index()
587 && vM[0]->index() == vS[0]->
type()
590 vp0 =
reinterpret_cast<const Foam::point&
>(vM[0]->point())
596 vM[0]->
type() == vS[1]->index()
597 && vM[0]->index() == vS[1]->type()
600 vp0 =
reinterpret_cast<const Foam::point&
>(vM[0]->point())
607 vM[1]->
type() == vS[0]->index()
608 && vM[1]->index() == vS[0]->type()
611 vp1 =
reinterpret_cast<const Foam::point&
>(vM[1]->point())
617 vM[1]->
type() == vS[1]->index()
618 && vM[1]->index() == vS[1]->type()
621 vp1 =
reinterpret_cast<const Foam::point&
>(vM[1]->point())
641 template<
class Gt,
class Cb>
644 int featureVertex = -1;
645 for (
int i = 0; i < 4; ++i)
647 if (this->vertex(i)->constrained())
655 if (featureVertex != -1)
658 this->vertex(Tds::vertex_triple_index(featureVertex, 0));
660 this->vertex(Tds::vertex_triple_index(featureVertex, 1));
662 this->vertex(Tds::vertex_triple_index(featureVertex, 2));
664 if (v1->internalBoundaryPoint())
668 v2->externalBoundaryPoint()
669 && v3->externalBoundaryPoint()
675 else if (v2->internalBoundaryPoint())
679 v1->externalBoundaryPoint()
680 && v3->externalBoundaryPoint()
686 else if (v3->internalBoundaryPoint())
690 v1->externalBoundaryPoint()
691 && v2->externalBoundaryPoint()
703 template<
class Gt,
class Cb>
706 int featureVertex = -1;
707 for (
int i = 0; i < 4; ++i)
709 if (this->vertex(i)->constrained())
717 if (featureVertex != -1)
720 this->vertex(Tds::vertex_triple_index(featureVertex, 0));
722 this->vertex(Tds::vertex_triple_index(featureVertex, 1));
724 this->vertex(Tds::vertex_triple_index(featureVertex, 2));
726 if (v1->externalBoundaryPoint())
730 v2->internalBoundaryPoint()
731 && v3->internalBoundaryPoint()
737 else if (v2->externalBoundaryPoint())
741 v1->internalBoundaryPoint()
742 && v3->internalBoundaryPoint()
748 else if (v3->externalBoundaryPoint())
752 v1->internalBoundaryPoint()
753 && v2->internalBoundaryPoint()