37 #ifndef DelaunayMesh_H 38 #define DelaunayMesh_H 44 #include "indexedVertex.H" 60 template<
class Triangulation>
69 typedef typename Triangulation::Edge
Edge;
70 typedef typename Triangulation::Point
Point;
71 typedef typename Triangulation::Facet
Facet;
73 typedef typename Triangulation::Finite_vertices_iterator
75 typedef typename Triangulation::Finite_cells_iterator
77 typedef typename Triangulation::Finite_facets_iterator
100 mutable label vertexCount_;
104 mutable label cellCount_;
107 const Time& runTime_;
112 struct Traits_for_spatial_sort
114 public Triangulation::Geom_traits
116 typedef typename Triangulation::Geom_traits Gt;
118 typedef std::pair<const typename Triangulation::Point*, label>
123 bool operator()(
const Point_3&
p,
const Point_3& q)
const;
128 bool operator()(
const Point_3&
p,
const Point_3& q)
const;
133 bool operator()(
const Point_3&
p,
const Point_3& q)
const;
153 const label nInternalFaces,
199 const string& description,
200 const bool check =
true 243 template<
class Po
intIterator>
248 bool printErrors =
false,
266 labelTolabelPairHashTable& vertexMap,
268 const bool writeDelaunayData =
true void printVertexInfo(Ostream &os) const
Write vertex statistics in the form of a table to stream.
Map< label > rangeInsertWithInfo(PointIterator begin, PointIterator end, bool printErrors=false, bool reIndex=true)
Function inserting points into a triangulation and setting the.
A HashTable with keys but without contents.
Triangulation::Facet Facet
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
A class for handling file names.
label getNewCellIndex() const
Create a new unique cell index and return.
The vertex and cell classes must have an index defined.
A 1D vector of objects of type <T> with a fixed size <Size>.
autoPtr< polyMesh > createMesh(const fileName &name, labelTolabelPairHashTable &vertexMap, labelList &cellMap, const bool writeDelaunayData=true) const
Create an fvMesh from the triangulation.
Triangulation::Cell_handle Cell_handle
bool operator()(const Point_3 &p, const Point_3 &q) const
~DelaunayMesh()
Destructor.
void timeCheck(const string &description, const bool check=true) const
Write the cpuTime to screen.
HashTable< label, labelPair, FixedList< label, 2 >::Hash<> > labelTolabelPairHashTable
void resetVertexCount()
Set the vertex count to zero.
const Time & time() const
Return a reference to the Time object.
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
Triangulation::Finite_cells_iterator Finite_cells_iterator
label vertexCount() const
Return the vertex count (the next unique vertex index)
An ordered pair of two objects of type <T> with first() and second() elements.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects...
A class for handling words, derived from string.
Triangulation::Finite_facets_iterator Finite_facets_iterator
void reset()
Clear the entire triangulation.
Pair< label > labelPair
Label pair.
An STL-conforming hash table.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
label getNewVertexIndex() const
Create a new unique vertex index and return.
HashSet< Pair< label >, FixedList< label, 2 >::Hash<> > labelPairHashSet
label cellCount() const
Return the cell count (the next unique cell index)
word name(const complex &)
Return a string representation of a complex.
void printInfo(Ostream &os) const
Write mesh statistics to stream.
void resetCellCount()
Set the cell count to zero.
Triangulation::Vertex_handle Vertex_handle
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
CGAL data structures used for 3D Delaunay meshing.
Map< label > insertPoints(const List< Vb > &vertices, const bool reIndex)
Insert the list of vertices (calls rangeInsertWithInfo)
PtrList< dictionary > patchDicts
Triangulation::Point Point
Triangulation::Finite_vertices_iterator Finite_vertices_iterator