Go to the documentation of this file.
35 template<
typename 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<
typename Triangulation>
83 const fileName& fName,
84 const Triangulation& t,
88 writeOBJ(fName, t, pointType, pointType);
92 template<
typename 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<
typename 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<
typename 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<
typename 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<
typename CellHandle>
238 os <<
"# cell index: " <<
label(
c->cellIndex())
239 <<
" INT_MIN = " << INT_MIN
242 os <<
"# circumradius "
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<
typename 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());
vectorField pointField
pointField is a vectorField.
void writeOBJ(Ostream &os, label &vertI, const tetPoints &tet)
A class for managing temporary objects.
static const Foam::NamedEnum< vertexType, 15 > vertexTypeNames_
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensioned< scalar > mag(const dimensioned< Type > &)
bool uninitialised(const VertexType &v)
pointFromPoint topoint(const Point &P)
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
vectorIOField pointIOField
pointIOField is a vectorIOField.
virtual Ostream & write(const token &)=0
Write next token to stream.
virtual const fileName & name() const
Return the name of the stream.
prefixOSstream Pout(cout, "Pout")
const dimensionedScalar c
Speed of light in a vacuum.