Go to the documentation of this file.
62 #ifndef intersectedSurface_H
63 #define intersectedSurface_H
65 #include "triSurface.H"
75 class surfaceIntersection;
185 const label prevEdgeI,
186 const label prevVertI
197 const label startEdgeI,
198 const label startVertI,
212 const label excludeFaceI,
262 const bool isFirstSurface,
static void findNearestVisited(const edgeSurface &eSurf, const label faceI, const Map< DynamicList< label > > &facePointEdges, const Map< label > &pointVisited, const point &pt, const label excludeFaceI, label &minVertI, scalar &minDist)
For resplitFace: find nearest (to pt) fully visited point. Return.
intersectedSurface()
Construct null.
static Map< DynamicList< label > > calcPointEdgeAddressing(const edgeSurface &, const label faceI)
Calculate point-edge addressing for single face only.
const Field< point > & points() const
Return reference to global points.
A class for handling file names.
static face walkFace(const edgeSurface &eSurf, const label faceI, const vector &n, const Map< DynamicList< label > > &facePointEdges, const label startEdgeI, const label startVertI, Map< label > &visited)
Walk path along edges in face. Used by splitFace.
const edgeList & edges() const
Return list of edges, address into LOCAL point list.
static void writeLocalOBJ(const pointField &points, const edgeList &edges, const labelList &faceEdges, const fileName &)
Debug:Dump selected edges to stream. Renumbers vertices to.
static bool sameEdgeOrder(const labelledTri &fA, const labelledTri &fB)
Check if the two vertices that f0 and f1 share are in the same.
static const label ENDTOSTART
label nSurfacePoints() const
Number of points from original surface.
static void incCount(Map< label > &visited, const label key, const label offset)
Increment data for key. (start from 0 if not found)
static faceList resplitFace(const triSurface &surf, const label faceI, const Map< DynamicList< label > > &facePointEdges, const Map< label > &visited, edgeSurface &eSurf)
Fallback for if splitFace fails to connect all.
const labelListList & faceEdges() const
Return face-edge addressing.
static const label UNVISITED
label nSurfacePoints_
What are surface points: 0 .. nSurfacePoints_-1.
static label nextEdge(const edgeSurface &eSurf, const Map< label > &visited, const label faceI, const vector &n, const Map< DynamicList< label > > &facePointEdges, const label prevEdgeI, const label prevVertI)
Choose edge out of candidates (facePointEdges) according to.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Given triSurface and intersection creates the intersected (properly triangulated) surface....
Pre-declare SubField and related Field type.
Basic surface-surface intersection description. Constructed from two surfaces it creates a descriptio...
Triangulated surface description with patch information.
labelList faceMap_
From new to original faces.
const labelList & faceMap() const
New to old.
static const label STARTTOEND
const labelList & intersectionEdges() const
Labels of edges in *this which originate from 'cuts'.
static faceList splitFace(const triSurface &surf, const label faceI, edgeSurface &eSurf)
Main face splitting routine. Gets overall points and edges and.
Description of surface in form of 'cloud of edges'.
labelList intersectionEdges_
Edges which are part of intersection.
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.
A face is a list of labels corresponding to mesh vertices.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
bool isSurfacePoint(const label pointI) const
Is point coming from original surface?
static void writeOBJ(const pointField &points, const edgeList &edges, Ostream &os)
Debug:Dump edges to stream. Mantains vertex numbering.
static void printVisit(const edgeList &edges, const labelList &edgeLabels, const Map< label > &visited)
Debug:Print visited status.
ClassName("intersectedSurface")