From c763c881f253c7a3ffb2967b9ade7fe267789cb7 Mon Sep 17 00:00:00 2001 From: graham Date: Sun, 12 Jul 2009 12:05:22 +0100 Subject: [PATCH] Moved ragne insertion from std::vector to separate insertPoints function so that it can be used by initial point insertions and insertions after point motion. --- .../conformalVoronoiMesh.C | 44 +++++++++---------- .../conformalVoronoiMesh.H | 6 ++- .../conformalVoronoiMeshI.H | 30 +++++++++++++ 3 files changed, 57 insertions(+), 23 deletions(-) diff --git a/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C b/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C index d395746f87..3a254e0d51 100644 --- a/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C +++ b/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C @@ -28,8 +28,6 @@ License #include "initialPointsMethod.H" #include "relaxationModel.H" #include "faceAreaWeightModel.H" -#include "uint.H" -#include "ulong.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // @@ -836,32 +834,34 @@ void Foam::conformalVoronoiMesh::insertInitialPoints() { startOfInternalPoints_ = number_of_vertices(); - label nVert = startOfInternalPoints_; - Info<< nl << "Inserting initial points" << endl; - std::vector initialPoints = initialPointsMethod_->initialPoints(); + insertPoints(initialPointsMethod_->initialPoints()); - Info<< " " << initialPoints.size() << " points to insert..." << endl; + // std::vector initialPoints = initialPointsMethod_->initialPoints(); - // using the range insert (faster than inserting points one by one) - insert(initialPoints.begin(), initialPoints.end()); + // Info<< " " << initialPoints.size() << " points to insert..." << endl; - Info<< " " << number_of_vertices() - startOfInternalPoints_ - << " points inserted" << endl; + // label nVert = startOfInternalPoints_; - for - ( - Triangulation::Finite_vertices_iterator vit = finite_vertices_begin(); - vit != finite_vertices_end(); - ++vit - ) - { - if (vit->uninitialised()) - { - vit->index() = nVert++; - } - } + // // using the range insert (faster than inserting points one by one) + // insert(initialPoints.begin(), initialPoints.end()); + + // Info<< " " << number_of_vertices() - startOfInternalPoints_ + // << " points inserted" << endl; + + // for + // ( + // Triangulation::Finite_vertices_iterator vit = finite_vertices_begin(); + // vit != finite_vertices_end(); + // ++vit + // ) + // { + // if (vit->uninitialised()) + // { + // vit->index() = nVert++; + // } + // } writePoints("initialPoints.obj", true); } diff --git a/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H b/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H index b090fe1b8c..26a566fdb3 100644 --- a/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H +++ b/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H @@ -41,7 +41,8 @@ SourceFiles #define CGAL_HIERARCHY #include "CGALTriangulation3Ddefs.H" - +#include "uint.H" +#include "ulong.H" #include "searchableSurfaces.H" #include "conformationSurfaces.H" #include "cellSizeControlSurfaces.H" @@ -171,6 +172,9 @@ class conformalVoronoiMesh const label type ); + //- Insert a range of points using the CGAL range insertion method + inline void insertPoints(const std::vector& points); + //- Insert a point-pair at a ppDist distance either side of // surface point surfPt, in the direction n inline void insertPointPair diff --git a/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshI.H b/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshI.H index 4b6a0a30d5..8aa4c10d3e 100644 --- a/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshI.H +++ b/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshI.H @@ -153,6 +153,36 @@ inline Foam::label Foam::conformalVoronoiMesh::insertPoint } +inline void Foam::conformalVoronoiMesh::insertPoints +( + const std::vector& points +) +{ + Info<< " " << points.size() << " points to insert..." << endl; + + label nVert = number_of_vertices(); + + // using the range insert (faster than inserting points one by one) + insert(points.begin(), points.end()); + + Info<< " " << number_of_vertices() - startOfInternalPoints_ + << " points inserted" << endl; + + for + ( + Triangulation::Finite_vertices_iterator vit = finite_vertices_begin(); + vit != finite_vertices_end(); + ++vit + ) + { + if (vit->uninitialised()) + { + vit->index() = nVert++; + } + } +} + + inline void Foam::conformalVoronoiMesh::insertPointPair ( const scalar ppDist,