68#ifndef surfaceIntersection_H
69#define surfaceIntersection_H
134 label warnDegenerate_;
178 static scalar minEdgeLen(
const triSurface& surf,
const label pointi);
200 void writeIntersectedEdges
209 static label classify
211 const scalar startTol,
220 void storeIntersection
226 const label cutPointId,
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
Map from edge (expressed as its endpoints) to value. Hashing (and ==) on an edge is symmetric.
Enum is a wrapper around a list of names/values that represent particular enumeration (or int) values...
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
A HashTable to objects of type <T> with a label key.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
static const dictionary null
An empty dictionary, which is also the parent for all dictionaries.
Holder of intersections of edges of a surface with another surface. Optionally shuffles around points...
An edge is a list of two vertex labels. This can correspond to a directed graph edge or an edge on a ...
Basic surface-surface intersection description. Constructed from two surfaces it creates a descriptio...
const edgeList & cutEdges() const
The list of created edges.
void mergeEdges()
Merge duplicate edges.
const labelListList & surf2EdgeCuts() const
List of cut points on edges of surface2.
const labelListList & edgeCuts(const bool isFirstSurf) const
Access either surf1EdgeCuts (isFirstSurface = true) or.
intersectionType
Surface intersection types for classify, doCutEdges.
@ SELF_REGION
Self-intersection, region-wise only.
@ NONE
None = invalid (for input only).
void mergePoints(const scalar mergeDist)
Geometric merge points (points within mergeDist) prior to.
surfaceIntersection()
Construct null.
const labelListList & surf1EdgeCuts() const
List of cut points on edges of surface1.
const labelPairLookup & facePairToEdgeId() const
Lookup of pairs of faces to created edges.
const pointField & cutPoints() const
The list of cut points.
ClassName("surfaceIntersection")
static const Enum< intersectionType > selfIntersectionNames
The user-selectable self-intersection enumeration names.
Helper class to search on triSurface.
Triangulated surface description with patch information.
#define ClassName(TypeNameString)
Add typeName information from argument TypeNameString to a class.
OBJstream os(runTime.globalPath()/outputName)
A HashTable to objects of type <T> with a labelPair key. The hashing is based on labelPair (FixedList...
List< edge > edgeList
List of edge.
List< labelList > labelListList
List of labelList.
HashSet< edge, Hash< edge > > edgeHashSet
A HashSet with edge for its key. Hashing (and ==) on an edge is symmetric.
List< label > labelList
A List of labels.
HashTable< T, labelPair, Foam::Hash< labelPair > > LabelPairMap
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
HashTable< label, labelPair, Foam::Hash< labelPair > > labelPairLookup
This is a Map of a labelPair to a label. Used for e.g. for face1, face2 to shared edge....
EdgeMap< labelPairHashSet > edgelabelPairHashLookup
Map from edge back to all parents (pairs of faces).
vector point
Point is a vector.
vectorField pointField
pointField is a vectorField.
PointIndexHit< point > pointIndexHit
A PointIndexHit with a 3D point.
LabelPairMap< edge > labelPairEdgeLookup
Key is non-commutative pair of labels. Value is commutative pair of labels.
Basic run-time type information using word as the type's name. Used to enhance the standard RTTI to c...