26 template<
class Gt,
class Cb>
34 for (
int i = 0; i < 4; i++)
36 Vertex_handle v = this->vertex(i);
39 tVGI[i] = globalDelaunayVertexIndices.
toGlobal 52 template<
class Gt,
class Cb>
61 template<
class Gt,
class Cb>
73 template<
class Gt,
class Cb>
86 Cb(v0, v1, v2, v3, n0, n1, n2, n3),
94 template<
class Gt,
class Cb>
101 template<
class Gt,
class Cb>
110 template<
class Gt,
class Cb>
113 return reinterpret_cast<const Foam::point&
>(this->circumcenter());
118 template<
class Gt,
class Cb>
121 const typename Gt::Point_3& P = this->circumcenter();
125 CGAL::to_double(P.x()),
126 CGAL::to_double(P.y()),
127 CGAL::to_double(P.z())
134 template<
class Gt,
class Cb>
141 template<
class Gt,
class Cb>
148 template<
class Gt,
class Cb>
155 template<
class Gt,
class Cb>
161 this->vertex(0)->
real()
162 || this->vertex(1)->
real()
163 || this->vertex(2)->
real()
164 || this->vertex(3)->
real()
168 this->vertex(0)->farPoint()
169 || this->vertex(1)->farPoint()
170 || this->vertex(2)->farPoint()
171 || this->vertex(3)->farPoint()
177 template<
class Gt,
class Cb>
182 this->vertex(0)->farPoint()
183 || this->vertex(1)->farPoint()
184 || this->vertex(2)->farPoint()
185 || this->vertex(3)->farPoint()
190 template<
class Gt,
class Cb>
195 this->vertex(0)->referred()
196 || this->vertex(1)->referred()
197 || this->vertex(2)->referred()
198 || this->vertex(3)->referred()
203 template<
class Gt,
class Cb>
208 this->vertex(0)->featurePoint()
209 || this->vertex(1)->featurePoint()
210 || this->vertex(2)->featurePoint()
211 || this->vertex(3)->featurePoint()
216 template<
class Gt,
class Cb>
221 this->vertex(0)->seedPoint()
222 || this->vertex(1)->seedPoint()
223 || this->vertex(2)->seedPoint()
224 || this->vertex(3)->seedPoint()
229 template<
class Gt,
class Cb>
234 this->vertex(0)->internalPoint()
235 || this->vertex(1)->internalPoint()
236 || this->vertex(2)->internalPoint()
237 || this->vertex(3)->internalPoint()
242 template<
class Gt,
class Cb>
247 this->vertex(0)->boundaryPoint()
248 || this->vertex(1)->boundaryPoint()
249 || this->vertex(2)->boundaryPoint()
250 || this->vertex(3)->boundaryPoint()
255 template<
class Gt,
class Cb>
268 template<
class Gt,
class Cb>
276 this->vertex(0)->referred()
277 || this->vertex(1)->referred()
278 || this->vertex(2)->referred()
279 || this->vertex(3)->referred()
283 this->vertex(0)->
real()
284 || this->vertex(1)->
real()
285 || this->vertex(2)->
real()
286 || this->vertex(3)->
real()
292 template<
class Gt,
class Cb>
297 for (
int i = 0; i < 4; ++i)
299 if (this->vertex(i)->referred())
301 lowestProc =
min(lowestProc, this->vertex(i)->procIndex());
309 template<
class Gt,
class Cb>
317 = unsortedVertexGlobalIndices(globalDelaunayVertexIndices);
320 for (
int i = 0; i < tVGI.
size(); i++)
322 for (
int j = tVGI.
size() - 1 ; j > i; j--)
324 if (tVGI[j - 1] > tVGI[j])
335 template<
class Gt,
class Cb>
344 = unsortedVertexGlobalIndices(globalDelaunayVertexIndices);
349 for (
int i = 0; i < tVGI.
size(); i++)
351 for (
int j = tVGI.
size() - 1 ; j > i; j--)
353 if (tVGI[j - 1] > tVGI[j])
361 for (
int i = 0; i < 4; i++)
363 tVGI[i] = vertexMap[i];
370 template<
class Gt,
class Cb>
375 this->vertex(0)->internalOrBoundaryPoint()
376 || this->vertex(1)->internalOrBoundaryPoint()
377 || this->vertex(2)->internalOrBoundaryPoint()
378 || this->vertex(3)->internalOrBoundaryPoint()
383 template<
class Gt,
class Cb>
388 this->vertex(0)->internalOrBoundaryPoint()
389 || this->vertex(0)->externalBoundaryPoint()
390 || this->vertex(1)->internalOrBoundaryPoint()
391 || this->vertex(1)->externalBoundaryPoint()
392 || this->vertex(2)->internalOrBoundaryPoint()
393 || this->vertex(2)->externalBoundaryPoint()
394 || this->vertex(3)->internalOrBoundaryPoint()
395 || this->vertex(3)->externalBoundaryPoint()
400 template<
class Gt,
class Cb>
414 this->vertex(0)->internalBoundaryPoint()
415 || this->vertex(1)->internalBoundaryPoint()
416 || this->vertex(2)->internalBoundaryPoint()
417 || this->vertex(3)->internalBoundaryPoint()
420 this->vertex(0)->externalBoundaryPoint()
421 || this->vertex(1)->externalBoundaryPoint()
422 || this->vertex(2)->externalBoundaryPoint()
423 || this->vertex(3)->externalBoundaryPoint()
443 template<
class Gt,
class Cb>
449 this->vertex(0)->internalBaffleSurfacePoint()
450 || this->vertex(1)->internalBaffleSurfacePoint()
451 || this->vertex(2)->internalBaffleSurfacePoint()
452 || this->vertex(3)->internalBaffleSurfacePoint()
455 this->vertex(0)->externalBaffleSurfacePoint()
456 || this->vertex(1)->externalBaffleSurfacePoint()
457 || this->vertex(2)->externalBaffleSurfacePoint()
458 || this->vertex(3)->externalBaffleSurfacePoint()
464 template<
class Gt,
class Cb>
470 this->vertex(0)->internalBaffleEdgePoint()
471 || this->vertex(1)->internalBaffleEdgePoint()
472 || this->vertex(2)->internalBaffleEdgePoint()
473 || this->vertex(3)->internalBaffleEdgePoint()
476 this->vertex(0)->externalBaffleEdgePoint()
477 || this->vertex(1)->externalBaffleEdgePoint()
478 || this->vertex(2)->externalBaffleEdgePoint()
479 || this->vertex(3)->externalBaffleEdgePoint()
485 template<
class Gt,
class Cb>
490 this->vertex(0)->featureEdgePoint()
491 && this->vertex(1)->featureEdgePoint()
492 && this->vertex(2)->featureEdgePoint()
493 && this->vertex(3)->featureEdgePoint()
523 template<
class Gt,
class Cb>
528 this->vertex(0)->featurePoint()
529 && this->vertex(1)->featurePoint()
530 && this->vertex(2)->featurePoint()
531 && this->vertex(3)->featurePoint()
536 template<
class Gt,
class Cb>
549 template<
class Gt,
class Cb>
562 if (v->internalBoundaryPoint())
568 if (v->externalBoundaryPoint())
577 if (nMasters == 2 && nSlaves == 2)
584 vM[0]->
type() == vS[0]->index()
585 && vM[0]->index() == vS[0]->
type()
588 vp0 =
reinterpret_cast<const Foam::point&
>(vM[0]->point())
589 - reinterpret_cast<const Foam::point&>(vS[0]->
point());
594 vM[0]->
type() == vS[1]->index()
595 && vM[0]->index() == vS[1]->type()
598 vp0 =
reinterpret_cast<const Foam::point&
>(vM[0]->point())
599 - reinterpret_cast<const Foam::point&>(vS[1]->
point());
605 vM[1]->
type() == vS[0]->index()
606 && vM[1]->index() == vS[0]->type()
609 vp1 =
reinterpret_cast<const Foam::point&
>(vM[1]->point())
610 - reinterpret_cast<const Foam::point&>(vS[0]->
point());
615 vM[1]->
type() == vS[1]->index()
616 && vM[1]->index() == vS[1]->type()
619 vp1 =
reinterpret_cast<const Foam::point&
>(vM[1]->point())
620 - reinterpret_cast<const Foam::point&>(vS[1]->
point());
639 template<
class Gt,
class Cb>
642 int featureVertex = -1;
643 for (
int i = 0; i < 4; ++i)
653 if (featureVertex != -1)
656 this->vertex(Tds::vertex_triple_index(featureVertex, 0));
658 this->vertex(Tds::vertex_triple_index(featureVertex, 1));
660 this->vertex(Tds::vertex_triple_index(featureVertex, 2));
662 if (v1->internalBoundaryPoint())
666 v2->externalBoundaryPoint()
667 && v3->externalBoundaryPoint()
673 else if (v2->internalBoundaryPoint())
677 v1->externalBoundaryPoint()
678 && v3->externalBoundaryPoint()
684 else if (v3->internalBoundaryPoint())
688 v1->externalBoundaryPoint()
689 && v2->externalBoundaryPoint()
701 template<
class Gt,
class Cb>
704 int featureVertex = -1;
705 for (
int i = 0; i < 4; ++i)
715 if (featureVertex != -1)
718 this->vertex(Tds::vertex_triple_index(featureVertex, 0));
720 this->vertex(Tds::vertex_triple_index(featureVertex, 1));
722 this->vertex(Tds::vertex_triple_index(featureVertex, 2));
724 if (v1->externalBoundaryPoint())
728 v2->internalBoundaryPoint()
729 && v3->internalBoundaryPoint()
735 else if (v2->externalBoundaryPoint())
739 v1->internalBoundaryPoint()
740 && v3->internalBoundaryPoint()
746 else if (v3->externalBoundaryPoint())
750 v1->internalBoundaryPoint()
751 && v2->internalBoundaryPoint()
bool baffleSurfaceDualVertex() const
Foam::label vertexLowestProc() const
CGAL::indexedCell< K > Cb
bool parallelDualVertex() const
Does the Dual vertex form part of a processor patch.
A 1D vector of objects of type <T> with a fixed size <Size>.
Foam::label & cellIndex()
Cb::Cell_handle Cell_handle
bool hasFarPoint() const
Does the Delaunay cell have a far point.
bool featurePointInternalCell() const
bool featureEdgeDualVertex() const
A dual vertex on a feature edge will result from this Delaunay cell.
static int myProcNo(const label communicator=0)
Number of this process (starting from masterNo() = 0)
Ostream & endl(Ostream &os)
Add newline and flush stream.
An indexed form of CGAL::Triangulation_cell_base_3<K> used to keep track of the Delaunay cells (tets)...
labelList identity(const label len)
Create identity map (map[i] == i) of given length.
bool baffleEdgeDualVertex() const
bool featurePointExternalCell() const
Cb::Vertex_handle Vertex_handle
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
bool anyInternalOrBoundaryDualVertex() const
Is the Delaunay cell real or referred (or mixed), i.e. all vertices.
bool hasInternalPoint() const
bool hasConstrainedPoint() const
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
A tetrahedral cell primitive.
bool hasBoundaryPoint() const
bool hasFeaturePoint() const
Does the Delaunay cell have a feature point.
label size() const
Return the number of elements in the FixedList.
bool nearProcBoundary() const
bool potentialCoplanarCell() const
label toGlobal(const label i) const
From local to global.
bool real() const
Is the Delaunay cell real, i.e. any real vertex.
vector point
Point is a vector.
prefixOSstream Pout(cout, "Pout")
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
Foam::FixedList< Foam::label, 4 > globallyOrderedCellVertices(const Foam::globalIndex &globalDelaunayVertexIndices) const
Using the globalIndex object, return a list of four vertices with.
bool featurePointDualVertex() const
A dual vertex on a feature point will result from this Delaunay cell.
bool hasSeedPoint() const
Does the Delaunay cell have a seed point.
bool hasReferredPoint() const
Does the Delaunay cell have a referred point.
bool internalOrBoundaryDualVertex() const
Is the Delaunay cell part of the final dual mesh, i.e. any vertex.
Foam::tetCell vertexGlobalIndices(const Foam::globalIndex &globalDelaunayVertexIndices) const
Using the globalIndex object, return a list of four (sorted) global.
bool boundaryDualVertex() const
A dual vertex on the boundary will result from a Delaunay cell with.