Go to the documentation of this file.
35 #ifndef orientedSurface_H
36 #define orientedSurface_H
38 #include "triSurface.H"
47 class triSurfaceSearch;
102 const label startFaceI,
111 const point& outsidePoint,
112 const bool orientOutside,
113 const label nearestFaceI,
114 const point& nearestPt,
125 const point& visiblePoint,
155 const point& samplePoint,
156 const bool orientOutside =
true
181 const point& samplePoint,
182 const bool orientOutside
static void walkSurface(const triSurface &s, const label startFaceI, labelList &flipState)
Walk from face across connected faces. Change orientation to be.
Given point flip all faces such that normals point in same direction.
static bool flipSurface(triSurface &s, const labelList &flipState)
Given flipState reverse triangles of *this. Return true if.
orientedSurface()
Construct null.
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
static bool orientConsistent(triSurface &s)
Make surface surface has consistent orientation across connected.
Helper class to search on triSurface.
static void propagateOrientation(const triSurface &, const point &outsidePoint, const bool orientOutside, const label nearestFaceI, const point &nearestPt, labelList &flipState)
Given nearest point and face check orientation to nearest face.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Triangulated surface description with patch information.
A subset of mesh faces organised as a primitive patch.
ClassName("orientedSurface")
static labelList faceToEdge(const triSurface &, const labelList &changedFaces)
From changed faces get the changed edges.
const double e
Elementary charge.
sideStat
Enumeration listing whether face needs to be flipped.
gmvFile<< "tracers "<< particles.size()<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().x()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().y()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){ word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
static bool consistentEdge(const edge &e, const triSurface::FaceType &f0, const triSurface::FaceType &f1)
Return true if edge is used in opposite order in faces.
static labelList edgeToFace(const triSurface &, const labelList &changedEdges, labelList &flip)
From changed edges check the orientation of the connected faces.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Triangle with additional region number.
static void findZoneSide(const triSurfaceSearch &surfSearches, const labelList &faceZone, const label zoneI, const point &visiblePoint, label &zoneFaceI, bool &isOutside)
Find a face on zoneI and count number of intersections to determine.
static bool orient(triSurface &, const point &, const bool orientOutside)
Flip faces such that normals are consistent with point: