From 3aed3c45be7676872db98f93b6bdf551052c1f9b Mon Sep 17 00:00:00 2001 From: mattijs Date: Tue, 9 Mar 2010 13:27:50 +0000 Subject: [PATCH] STYLE: added code for using isoSurfaceCell. Removed cleanup of surface. --- .../sampledSurface/isoSurface/isoSurface.C | 103 ++++++++++-------- .../isoSurface/isoSurfaceCell.C | 103 ++++++++++-------- .../isoSurface/isoSurfaceCell.H | 12 ++ .../isoSurface/isoSurfaceCellTemplates.C | 52 +++++++++ .../sampledCuttingPlane/sampledCuttingPlane.C | 11 +- .../sampledCuttingPlane/sampledCuttingPlane.H | 3 + .../sampledCuttingPlaneTemplates.C | 1 - 7 files changed, 188 insertions(+), 97 deletions(-) diff --git a/src/sampling/sampledSurface/isoSurface/isoSurface.C b/src/sampling/sampledSurface/isoSurface/isoSurface.C index 8bdce180e6..a3888f856e 100644 --- a/src/sampling/sampledSurface/isoSurface/isoSurface.C +++ b/src/sampling/sampledSurface/isoSurface/isoSurface.C @@ -2054,61 +2054,68 @@ Foam::isoSurface::isoSurface } - //if (false) - //{ - List > faceEdges; - labelList edgeFace0, edgeFace1; - Map edgeFacesRest; - - - while (true) + if (false) { - // Calculate addressing - calcAddressing(*this, faceEdges, edgeFace0, edgeFace1, edgeFacesRest); + List > faceEdges; + labelList edgeFace0, edgeFace1; + Map edgeFacesRest; - // See if any dangling triangles - boolList keepTriangles; - label nDangling = markDanglingTriangles - ( - faceEdges, - edgeFace0, - edgeFace1, - edgeFacesRest, - keepTriangles - ); - if (debug) + while (true) { - Pout<< "isoSurface : detected " << nDangling - << " dangling triangles." << endl; - } - - if (nDangling == 0) - { - break; - } - - // Create face map (new to old) - labelList subsetTriMap(findIndices(keepTriangles, true)); - - labelList subsetPointMap; - labelList reversePointMap; - triSurface::operator= - ( - subsetMesh + // Calculate addressing + calcAddressing ( *this, - subsetTriMap, - reversePointMap, - subsetPointMap - ) - ); - meshCells_ = labelField(meshCells_, subsetTriMap); - inplaceRenumber(reversePointMap, triPointMergeMap_); - } + faceEdges, + edgeFace0, + edgeFace1, + edgeFacesRest + ); - orientSurface(*this, faceEdges, edgeFace0, edgeFace1, edgeFacesRest); - //} + // See if any dangling triangles + boolList keepTriangles; + label nDangling = markDanglingTriangles + ( + faceEdges, + edgeFace0, + edgeFace1, + edgeFacesRest, + keepTriangles + ); + + if (debug) + { + Pout<< "isoSurface : detected " << nDangling + << " dangling triangles." << endl; + } + + if (nDangling == 0) + { + break; + } + + // Create face map (new to old) + labelList subsetTriMap(findIndices(keepTriangles, true)); + + labelList subsetPointMap; + labelList reversePointMap; + triSurface::operator= + ( + subsetMesh + ( + *this, + subsetTriMap, + reversePointMap, + subsetPointMap + ) + ); + meshCells_ = labelField(meshCells_, subsetTriMap); + inplaceRenumber(reversePointMap, triPointMergeMap_); + } + + orientSurface(*this, faceEdges, edgeFace0, edgeFace1, edgeFacesRest); + } if (debug) diff --git a/src/sampling/sampledSurface/isoSurface/isoSurfaceCell.C b/src/sampling/sampledSurface/isoSurface/isoSurfaceCell.C index 542d31a376..d534603b0f 100644 --- a/src/sampling/sampledSurface/isoSurface/isoSurfaceCell.C +++ b/src/sampling/sampledSurface/isoSurface/isoSurfaceCell.C @@ -1398,6 +1398,8 @@ Foam::isoSurfaceCell::isoSurfaceCell ) : mesh_(mesh), + cVals_(cVals), + pVals_(pVals), iso_(iso), mergeDistance_(mergeTol*mesh.bounds().mag()) { @@ -1563,59 +1565,68 @@ Foam::isoSurfaceCell::isoSurfaceCell } - List > faceEdges; - labelList edgeFace0, edgeFace1; - Map edgeFacesRest; - - - while (true) + if (false) { - // Calculate addressing - calcAddressing(*this, faceEdges, edgeFace0, edgeFace1, edgeFacesRest); + List > faceEdges; + labelList edgeFace0, edgeFace1; + Map edgeFacesRest; - // See if any dangling triangles - boolList keepTriangles; - label nDangling = markDanglingTriangles - ( - faceEdges, - edgeFace0, - edgeFace1, - edgeFacesRest, - keepTriangles - ); - if (debug) + while (true) { - Pout<< "isoSurfaceCell : detected " << nDangling - << " dangling triangles." << endl; - } - - if (nDangling == 0) - { - break; - } - - // Create face map (new to old) - labelList subsetTriMap(findIndices(keepTriangles, true)); - - labelList subsetPointMap; - labelList reversePointMap; - triSurface::operator= - ( - subsetMesh + // Calculate addressing + calcAddressing ( *this, - subsetTriMap, - reversePointMap, - subsetPointMap - ) - ); - meshCells_ = labelField(meshCells_, subsetTriMap); - inplaceRenumber(reversePointMap, triPointMergeMap_); + faceEdges, + edgeFace0, + edgeFace1, + edgeFacesRest + ); + + // See if any dangling triangles + boolList keepTriangles; + label nDangling = markDanglingTriangles + ( + faceEdges, + edgeFace0, + edgeFace1, + edgeFacesRest, + keepTriangles + ); + + if (debug) + { + Pout<< "isoSurfaceCell : detected " << nDangling + << " dangling triangles." << endl; + } + + if (nDangling == 0) + { + break; + } + + // Create face map (new to old) + labelList subsetTriMap(findIndices(keepTriangles, true)); + + labelList subsetPointMap; + labelList reversePointMap; + triSurface::operator= + ( + subsetMesh + ( + *this, + subsetTriMap, + reversePointMap, + subsetPointMap + ) + ); + meshCells_ = labelField(meshCells_, subsetTriMap); + inplaceRenumber(reversePointMap, triPointMergeMap_); + } + + orientSurface(*this, faceEdges, edgeFace0, edgeFace1, edgeFacesRest); } - - orientSurface(*this, faceEdges, edgeFace0, edgeFace1, edgeFacesRest); - //combineCellTriangles(); } diff --git a/src/sampling/sampledSurface/isoSurface/isoSurfaceCell.H b/src/sampling/sampledSurface/isoSurface/isoSurfaceCell.H index ea96b42b3a..ecb41ef7bc 100644 --- a/src/sampling/sampledSurface/isoSurface/isoSurfaceCell.H +++ b/src/sampling/sampledSurface/isoSurface/isoSurfaceCell.H @@ -85,6 +85,10 @@ class isoSurfaceCell //- Reference to mesh const polyMesh& mesh_; + const scalarField& cVals_; + + const scalarField& pVals_; + //- isoSurfaceCell value const scalar iso_; @@ -352,6 +356,14 @@ public: const Field& cCoords, const Field& pCoords ) const; + + //- Interpolates cCoords,pCoords. + template + tmp > interpolate + ( + const Field& cCoords, + const Field& pCoords + ) const; }; diff --git a/src/sampling/sampledSurface/isoSurface/isoSurfaceCellTemplates.C b/src/sampling/sampledSurface/isoSurface/isoSurfaceCellTemplates.C index ca6ef109fa..16e48399ec 100644 --- a/src/sampling/sampledSurface/isoSurface/isoSurfaceCellTemplates.C +++ b/src/sampling/sampledSurface/isoSurface/isoSurfaceCellTemplates.C @@ -381,4 +381,56 @@ Foam::isoSurfaceCell::interpolate } +template +Foam::tmp > +Foam::isoSurfaceCell::interpolate +( + const Field& cCoords, + const Field& pCoords +) const +{ + DynamicList triPoints(nCutCells_); + DynamicList