surfaceIntersection Class Reference

Basic surface-surface intersection description. Constructed from two surfaces it creates a description of the intersection. More...

Public Member Functions

 ClassName ("surfaceIntersection")
 
 surfaceIntersection ()
 Construct null. More...
 
 surfaceIntersection (const triSurface &surf1, const edgeIntersections &intersections1, const triSurface &surf2, const edgeIntersections &intersections2)
 Construct from precalculated intersection information. More...
 
 surfaceIntersection (const triSurfaceSearch &querySurf1, const triSurfaceSearch &querySurf2)
 Construct from two surfaces. Does all its own cutting. More...
 
 surfaceIntersection (const triSurfaceSearch &querySurf1)
 Special: intersect surface with itself. Used to check for. More...
 
const pointFieldcutPoints () const
 
const edgeListcutEdges () const
 
const labelPairLookupfacePairToVertex () const
 
const labelPairLookupfacePairToEdge () const
 
const labelListListedgeCuts (const bool) const
 Access either surf1EdgeCuts (isFirstSurface = true) or. More...
 
const labelListListsurf1EdgeCuts () const
 
const labelListListsurf2EdgeCuts () const
 

Detailed Description

Basic surface-surface intersection description. Constructed from two surfaces it creates a description of the intersection.

The intersection information consists of the intersection line(s) with new points, new edges between points (note that these edges and points are on both surfaces) and various addressing from original surface faces/edges to intersection and vice versa.

Gets either precalculated intersection information or calculates it itself. Algorithm works by intersecting all edges of one surface with the other surface and storing a reference from both faces (one on surface1, one on surface 2) to the vertex. If the reference re-occurs we have the second hit of both faces and an edge is created between the retrieved vertex and the new one.

Note: when doing intersecting itself uses intersection::planarTol() as a fraction of current edge length to determine if intersection is a point-touching one instead of an edge-piercing action.

Source files

Definition at line 80 of file surfaceIntersection.H.

Constructor & Destructor Documentation

◆ surfaceIntersection() [1/4]

Construct null.

Definition at line 699 of file surfaceIntersection.C.

Referenced by surfaceIntersection::surfaceIntersection().

Here is the caller graph for this function:

◆ surfaceIntersection() [2/4]

◆ surfaceIntersection() [3/4]

surfaceIntersection ( const triSurfaceSearch querySurf1,
const triSurfaceSearch querySurf2 
)

Construct from two surfaces. Does all its own cutting.

Has problems with degenerate cuts

Definition at line 712 of file surfaceIntersection.C.

References Foam::endl(), PrimitivePatch< FaceList, PointField >::nEdges(), PrimitivePatch< FaceList, PointField >::nPoints(), Foam::Pout, List< T >::size(), triSurfaceSearch::surface(), surfaceIntersection::surfaceIntersection(), and List< T >::transfer().

Here is the call graph for this function:

◆ surfaceIntersection() [4/4]

Member Function Documentation

◆ ClassName()

ClassName ( "surfaceIntersection"  )

◆ cutPoints()

const Foam::pointField & cutPoints ( ) const

Definition at line 1132 of file surfaceIntersection.C.

Referenced by edgeSurface::edgeSurface(), and intersectedSurface::intersectedSurface().

Here is the caller graph for this function:

◆ cutEdges()

const Foam::edgeList & cutEdges ( ) const

Definition at line 1138 of file surfaceIntersection.C.

Referenced by edgeSurface::edgeSurface(), and intersectedSurface::intersectedSurface().

Here is the caller graph for this function:

◆ facePairToVertex()

const Foam::labelPairLookup & facePairToVertex ( ) const

Definition at line 1144 of file surfaceIntersection.C.

◆ facePairToEdge()

const Foam::labelPairLookup & facePairToEdge ( ) const

Definition at line 1150 of file surfaceIntersection.C.

References surfaceIntersection::edgeCuts().

Referenced by edgeSurface::edgeSurface().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ edgeCuts()

const Foam::labelListList & edgeCuts ( const bool  isFirstSurf) const

Access either surf1EdgeCuts (isFirstSurface = true) or.

surf2EdgeCuts

Definition at line 1157 of file surfaceIntersection.C.

Referenced by edgeSurface::edgeSurface(), and surfaceIntersection::facePairToEdge().

Here is the caller graph for this function:

◆ surf1EdgeCuts()

const Foam::labelListList & surf1EdgeCuts ( ) const

Definition at line 1172 of file surfaceIntersection.C.

◆ surf2EdgeCuts()

const Foam::labelListList & surf2EdgeCuts ( ) const

Definition at line 1178 of file surfaceIntersection.C.


The documentation for this class was generated from the following files: