Public Member Functions | Private Member Functions | Private Attributes
triSurfaceSearch Class Reference

Helper class to search on triSurface. More...

Inheritance diagram for triSurfaceSearch:
Inheritance graph
[legend]
Collaboration diagram for triSurfaceSearch:
Collaboration graph
[legend]

Public Member Functions

 triSurfaceSearch (const triSurface &)
 Construct from surface. Holds reference to surface! More...
 
 triSurfaceSearch (const triSurface &, const dictionary &dict)
 Construct from surface and dictionary. More...
 
 triSurfaceSearch (const triSurface &surface, const scalar tolerance, const label maxTreeDepth)
 Construct from components. More...
 
 ~triSurfaceSearch ()
 Destructor. More...
 
void clearOut ()
 Clear storage. More...
 
const indexedOctree< treeDataTriSurface > & tree () const
 Demand driven construction of the octree. More...
 
const triSurfacesurface () const
 Return reference to the surface. More...
 
scalar tolerance () const
 Return tolerance to use in searches. More...
 
label maxTreeDepth () const
 Return max tree depth of octree. More...
 
boolList calcInside (const pointField &searchPoints) const
 Calculate for each searchPoint inside/outside status. More...
 
void findNearest (const pointField &samples, const scalarField &nearestDistSqr, List< pointIndexHit > &info) const
 
pointIndexHit nearest (const point &, const vector &span) const
 Calculate nearest point on surface for single searchPoint. Returns. More...
 
void findLine (const pointField &start, const pointField &end, List< pointIndexHit > &info) const
 
void findLineAny (const pointField &start, const pointField &end, List< pointIndexHit > &info) const
 
void findLineAll (const pointField &start, const pointField &end, List< List< pointIndexHit > > &info) const
 Calculate all intersections from start to end. More...
 

Private Member Functions

bool checkUniqueHit (const pointIndexHit &currHit, const DynamicList< pointIndexHit, 1, 1 > &hits, const vector &lineVec) const
 Check whether the current hit on the surface which lies on lineVec. More...
 
 triSurfaceSearch (const triSurfaceSearch &)
 Disallow default bitwise copy construct. More...
 
void operator= (const triSurfaceSearch &)
 Disallow default bitwise assignment. More...
 

Private Attributes

const triSurfacesurface_
 Reference to surface to work on. More...
 
scalar tolerance_
 Optional tolerance to use in searches. More...
 
label maxTreeDepth_
 Optional max tree depth of octree. More...
 
autoPtr< indexedOctree< treeDataTriSurface > > treePtr_
 Octree for searches. More...
 

Detailed Description

Helper class to search on triSurface.

Source files

Definition at line 55 of file triSurfaceSearch.H.

Constructor & Destructor Documentation

◆ triSurfaceSearch() [1/4]

triSurfaceSearch ( const triSurfaceSearch )
private

Disallow default bitwise copy construct.

◆ triSurfaceSearch() [2/4]

triSurfaceSearch ( const triSurface surface)
explicit

Construct from surface. Holds reference to surface!

Definition at line 133 of file triSurfaceSearch.C.

◆ triSurfaceSearch() [3/4]

triSurfaceSearch ( const triSurface surface,
const dictionary dict 
)

Construct from surface and dictionary.

Definition at line 143 of file triSurfaceSearch.C.

References dict, Foam::endl(), Foam::Info, and dictionary::readIfPresent().

Here is the call graph for this function:

◆ triSurfaceSearch() [4/4]

triSurfaceSearch ( const triSurface surface,
const scalar  tolerance,
const label  maxTreeDepth 
)

Construct from components.

Definition at line 168 of file triSurfaceSearch.C.

◆ ~triSurfaceSearch()

Destructor.

Definition at line 183 of file triSurfaceSearch.C.

Member Function Documentation

◆ checkUniqueHit()

bool checkUniqueHit ( const pointIndexHit currHit,
const DynamicList< pointIndexHit, 1, 1 > &  hits,
const vector lineVec 
) const
private

Check whether the current hit on the surface which lies on lineVec.

is unique. point : return 1 unique hit edge : return 1 hit if in the cone of the edge faces : return 2 hits if outside or on the cone.

Definition at line 34 of file triSurfaceSearch.C.

References f(), forAll, PointIndexHit< Point >::hitPoint(), PointIndexHit< Point >::index(), points, and Foam::pos().

Here is the call graph for this function:

◆ operator=()

void operator= ( const triSurfaceSearch )
private

Disallow default bitwise assignment.

◆ clearOut()

void clearOut ( )

Clear storage.

Definition at line 189 of file triSurfaceSearch.C.

Referenced by triSurfaceRegionSearch::clearOut().

Here is the caller graph for this function:

◆ tree()

const Foam::indexedOctree< Foam::treeDataTriSurface > & tree ( ) const

Demand driven construction of the octree.

Definition at line 198 of file triSurfaceSearch.C.

References PatchTools::calcBounds(), Foam::e, Foam::endl(), treeBoundBox::extend(), boundBox::max(), boundBox::min(), nPoints, indexedOctree::perturbTol(), points, rndGen(), WarningInFunction, and Vector< scalar >::zero.

Referenced by surfaceIntersection::doCutEdges(), and cellClassification::markFaces().

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

◆ surface()

const triSurface& surface ( ) const
inline

◆ tolerance()

scalar tolerance ( ) const
inline

Return tolerance to use in searches.

Definition at line 131 of file triSurfaceSearch.H.

References triSurfaceSearch::tolerance_.

Referenced by searchableSurfaces::checkIntersection().

Here is the caller graph for this function:

◆ maxTreeDepth()

label maxTreeDepth ( ) const
inline

Return max tree depth of octree.

Definition at line 137 of file triSurfaceSearch.H.

References triSurfaceSearch::maxTreeDepth_.

◆ calcInside()

Foam::boolList calcInside ( const pointField searchPoints) const

Calculate for each searchPoint inside/outside status.

Definition at line 254 of file triSurfaceSearch.C.

References forAll, volumeType::INSIDE, and samples().

Referenced by surfaceToPoint::combine().

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

◆ findNearest()

void findNearest ( const pointField samples,
const scalarField nearestDistSqr,
List< pointIndexHit > &  info 
) const

Definition at line 282 of file triSurfaceSearch.C.

References indexedOctree::findNearest(), forAll, indexedOctree::perturbTol(), samples(), and List::setSize().

Referenced by triSurfaceRegionSearch::findNearest(), and triSurfaceMesh::findNearest().

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

◆ nearest()

Foam::pointIndexHit nearest ( const point pt,
const vector span 
) const

Calculate nearest point on surface for single searchPoint. Returns.

in pointIndexHit:

  • hit() : whether nearest point found within bounding box
  • hitPoint() : coordinate of nearest point
  • index() : surface triangle label

Definition at line 312 of file triSurfaceSearch.C.

References Foam::magSqr().

Referenced by immersedBoundaryFvPatch::addIbCornerCells(), surfaceToPoint::combine(), surfaceToCell::combine(), surfaceToCell::getNearest(), and immersedBoundaryFvPatch::makeIbPointsAndNormals().

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

◆ findLine()

void findLine ( const pointField start,
const pointField end,
List< pointIndexHit > &  info 
) const

Definition at line 325 of file triSurfaceSearch.C.

References indexedOctree::findLine(), forAll, indexedOctree::perturbTol(), and List::setSize().

Referenced by triSurfaceMesh::findLine().

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

◆ findLineAny()

void findLineAny ( const pointField start,
const pointField end,
List< pointIndexHit > &  info 
) const

Definition at line 348 of file triSurfaceSearch.C.

References indexedOctree::findLineAny(), forAll, indexedOctree::perturbTol(), and List::setSize().

Referenced by triSurfaceMesh::findLineAny().

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

◆ findLineAll()

void findLineAll ( const pointField start,
const pointField end,
List< List< pointIndexHit > > &  info 
) const

Calculate all intersections from start to end.

Definition at line 371 of file triSurfaceSearch.C.

References DynamicList::append(), DynamicList::clear(), indexedOctree::findLine(), forAll, PointIndexHit< Point >::hit(), PointIndexHit< Point >::index(), Foam::mag(), indexedOctree::perturbTol(), List::setSize(), and List::transfer().

Referenced by triSurfaceMesh::findLineAll(), orientedSurface::findZoneSide(), and edgeIntersections::intersectEdges().

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

Field Documentation

◆ surface_

const triSurface& surface_
private

Reference to surface to work on.

Definition at line 60 of file triSurfaceSearch.H.

Referenced by triSurfaceSearch::surface().

◆ tolerance_

scalar tolerance_
private

Optional tolerance to use in searches.

Definition at line 63 of file triSurfaceSearch.H.

Referenced by triSurfaceSearch::tolerance().

◆ maxTreeDepth_

label maxTreeDepth_
private

Optional max tree depth of octree.

Definition at line 66 of file triSurfaceSearch.H.

Referenced by triSurfaceSearch::maxTreeDepth().

◆ treePtr_

autoPtr<indexedOctree<treeDataTriSurface> > treePtr_
mutableprivate

Octree for searches.

Definition at line 69 of file triSurfaceSearch.H.


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