35 template<
class Triangulation>
38 const fileName& fName,
39 const Triangulation& t,
40 const indexedVertexEnum::vertexType startPointType,
41 const indexedVertexEnum::vertexType endPointType
47 <<
"Writing points of types:" <<
nl;
56 if (iter() >= startPointType && iter() <= endPointType)
58 Pout<<
" " << iter.key() <<
nl;
66 typename Triangulation::Finite_vertices_iterator vit =
67 t.finite_vertices_begin();
68 vit != t.finite_vertices_end();
72 if (vit->type() >= startPointType && vit->type() <= endPointType)
80 template<
class Triangulation>
83 const fileName& fName,
84 const Triangulation& t,
88 writeOBJ(fName, t, pointType, pointType);
92 template<
class Triangulation>
95 const fileName& fName,
96 const Triangulation& t
102 <<
"Writing fixed points to " << str.
name() <<
endl;
106 typename Triangulation::Finite_vertices_iterator vit =
107 t.finite_vertices_begin();
108 vit != t.finite_vertices_end();
120 template<
class Triangulation>
123 const fileName& fName,
124 const Triangulation& t
130 <<
"Writing boundary points to " << str.
name() <<
endl;
134 typename Triangulation::Finite_vertices_iterator vit =
135 t.finite_vertices_begin();
136 vit != t.finite_vertices_end();
140 if (!vit->internalPoint())
148 template<
class Triangulation>
151 const fileName& fName,
152 const Triangulation& t,
162 typename Triangulation::Finite_cells_iterator cit =
163 t.finite_cells_begin();
164 cit != t.finite_cells_end();
168 if (!cit->hasFarPoint() && !t.is_infinite(cit))
170 points[cit->cellIndex()] = cit->dual();
178 template<
class Triangulation>
181 const fileName& instance,
182 const Triangulation& t
185 pointField internalDelaunayVertices(t.number_of_vertices());
191 typename Triangulation::Finite_vertices_iterator vit =
192 t.finite_vertices_begin();
193 vit != t.finite_vertices_end();
197 if (vit->internalPoint())
199 internalDelaunayVertices[vertI++] =
topoint(vit->point());
203 internalDelaunayVertices.setSize(vertI);
209 "internalDelaunayVertices",
215 internalDelaunayVertices
219 <<
"Writing " << internalDVs.name()
220 <<
" to " << internalDVs.instance()
227 template<
class CellHandle>
238 os <<
"# cell index: " <<
label(c->cellIndex())
239 <<
" INT_MIN = " << INT_MIN
242 os <<
"# circumradius " 243 <<
mag(c->dual() -
topoint(c->vertex(0)->point()))
246 for (
int i = 0; i < 4; i++)
248 os <<
"# index / type / procIndex: " 249 <<
label(c->vertex(i)->index()) <<
" " 250 <<
label(c->vertex(i)->type()) <<
" " 251 <<
label(c->vertex(i)->procIndex())
255 ?
" # This vertex is uninitialised!" 263 os <<
"f " << 1 + offset <<
" " << 3 + offset <<
" " << 2 + offset << nl
264 <<
"f " << 2 + offset <<
" " << 3 + offset <<
" " << 4 + offset << nl
265 <<
"f " << 1 + offset <<
" " << 4 + offset <<
" " << 3 + offset << nl
266 <<
"f " << 1 + offset <<
" " << 2 + offset <<
" " << 4 + offset <<
endl;
276 template<
class Triangulation>
279 const Triangulation& t
287 typename Triangulation::Finite_vertices_iterator vit =
288 t.finite_vertices_begin();
289 vit != t.finite_vertices_end();
293 if (vit->internalOrBoundaryPoint() && !vit->referred())
295 pts[vit->index()] =
topoint(vit->point());
static const Vector< scalar > max
static const Foam::NamedEnum< vertexType, 15 > vertexTypeNames_
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
pointFromPoint topoint(const Point &P)
vectorIOField pointIOField
pointIOField is a vectorIOField.
Ostream & endl(Ostream &os)
Add newline and flush stream.
vectorField pointField
pointField is a vectorField.
bool uninitialised(const VertexType &v)
virtual const fileName & name() const
Return the name of the stream.
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
prefixOSstream Pout(cout,"Pout")
dimensioned< scalar > mag(const dimensioned< Type > &)
virtual Ostream & write(const token &)=0
Write next token to stream.
A class for managing temporary objects.