39 #ifndef TriPatchIntersection_H
40 #define TriPatchIntersection_H
55 template<
class SrcPatchType,
class TgtPatchType>
182 void checkPatchFace(
const label patchFacei,
const bool isSrc)
const;
183 void checkPatchEdge(
const label patchFacei,
const bool isSrc)
const;
184 void checkPatchFaces(
const bool isSrc)
const;
187 void removeEdge(
const label edgei);
190 void removeTri(
const label trii);
208 template <
class Type>
224 const label otherTrii
232 const label otherTrii
239 edge edgePoints(
const label edgei)
const;
244 const label patchFacei,
245 const label patchFacePointi,
252 const label patchFacei,
257 template <
class Type>
260 const label patchFacei,
269 const label patchFacei,
277 const label patchFacei,
278 const label otherPatchFacei,
283 label patchFacePatchPoint
285 const label patchFacei,
286 const label patchFacePointi,
293 const label patchFacei,
298 label patchFacePatchEdge
300 const label patchFacei,
301 const label patchFaceEdgei,
308 const label patchFacei,
313 label edgePatchEdge(
const label edgei,
const bool isSrc)
const;
323 const label patchFacei,
328 void flipEdge(
const label edgei);
333 scalar circumDistSqr(
const label trii,
const label pointi)
const;
339 const label triOrEdgei,
347 bool pointCanIntersect(
const label pointi)
const;
350 bool edgeCanIntersect(
const label pointi)
const;
359 void snapPatchFaceTris
361 const label srcFacei,
362 const label tgtFacei,
367 bool intersectTris(
const label srcTrii,
const label tgtTrii);
370 void intersectPatchFaceTris
372 const label srcFacei,
377 bool conformPatchFaceTris
379 const label patchFacei,
380 const label otherPatchFacei,
385 bool conformPatchFaceTris
387 const label srcFacei,
393 bool combinePatchFaceTris(
const label srcFacei,
const label tgtFacei);
396 void initialise(
const vectorField& srcPointNormals);
412 void writePatchFace(
const label patchFacei,
const bool isSrc)
const;
421 return "tri" + patchIntersection::typeName.
capitalise();
459 return intersectEdgeFaces_;
465 return nonIntersectEdgeFaces_;
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Base class for patch intersections. Provides storage and access to the intersection points and faces ...
const SrcPatchType & srcPatch() const
The source patch.
const TgtPatchType & tgtPatch() const
The target patch.
Patch intersection based on triangular faces. Intersects and combines two triangulated patches increm...
virtual ~TriPatchIntersection()
Destructor.
const DynamicList< labelPair > & intersectEdgeFaces() const
...
TriPatchIntersection(const SrcPatchType &srcPatch, const TgtPatchType &tgtPatch, const scalar snapTol)
Construct from a source and a target patch.
const DynamicList< labelList > & faceEdges() const
...
const DynamicList< labelPair > & nonIntersectEdgeFaces() const
...
virtual word type() const
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
Triangulation of three-dimensional polygons.
Engine for constructing a star-shaped domain by walking.
A triangular face using a FixedList of labels corresponding to mesh vertices.
A class for handling words, derived from string.
word capitalise() const
Return the word with the first letter capitalised.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.