Go to the documentation of this file.
37 #ifndef edgeIntersections_H
38 #define edgeIntersections_H
53 class triSurfaceSearch;
63 public List<List<pointIndexHit> >
209 const bool merge =
true
const labelListList & classification() const
For every intersection the classification status.
Simple random number generator.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
static scalar alignedCos_
Cosine between edge and face normal when considered parallel.
Helper class to search on triSurface.
bool inlinePerturb(const triSurface &surf1, const scalarField &surf1PointTol, const label edgeI, Random &rndGen, pointField &points1, boolList &affectedEdges) const
Perturb endpoints of edge if they are close to the intersection.
label removeDegenerates(const label nIters, const triSurface &surf1, const triSurfaceSearch &query2, const scalarField &surf1PointTol, pointField &points1)
Resolve ties. Shuffles points so all edge - face intersections.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Pre-declare SubField and related Field type.
Triangulated surface description with patch information.
ClassName("edgeIntersections")
static scalarField minEdgeLength(const triSurface &surf)
Calculate min edge length for every surface point.
void intersectEdges(const triSurface &surf1, const pointField &points1, const triSurfaceSearch &querySurf2, const scalarField &surf1PointTol, const labelList &edgeLabels)
Intersect selected surface edges (edgeLabels) with surface2.
edgeIntersections()
Construct null.
labelListList classification_
For every entry in *this gives the edge classification result.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
static void checkEdges(const triSurface &surf)
Check for too small edges.
bool offsetPerturb(const triSurface &surf1, const triSurface &surf2, const label edgeI, Random &rndGen, pointField &points1, boolList &affectedEdges) const
Perturb edge by shifting in direction trianglecentre - intersection.
void merge(const edgeIntersections &, const labelList &edgeMap, const labelList &faceMap, const bool merge=true)
Merge (or override) edge intersection for a subset.
Holder of intersections of edges of a surface with another surface. Optionally shuffles around points...
cachedRandom rndGen(label(0), -1)
bool rotatePerturb(const triSurface &surf1, const scalarField &surf1PointTol, const label edgeI, Random &rndGen, pointField &points1, boolList &affectedEdges) const
Perturb single endpoint of edge if edge is algigned with face.