treeDataPrimitivePatch< PatchType > Class Template Reference

Encapsulation of data needed to search on PrimitivePatches. More...

Inheritance diagram for treeDataPrimitivePatch< PatchType >:
Collaboration diagram for treeDataPrimitivePatch< PatchType >:

Classes

class  findAllIntersectOp
 
class  findIntersectOp
 
class  findNearestOp
 
class  findSelfIntersectOp
 

Public Member Functions

 treeDataPrimitivePatch (const bool cacheBb, const PatchType &, const scalar planarTol)
 Construct from patch. More...
 
label size () const
 
pointField shapePoints () const
 Get representative point cloud for all shapes inside. More...
 
const PatchType & patch () const
 Return access to the underlying patch. More...
 
volumeType getVolumeType (const indexedOctree< treeDataPrimitivePatch< PatchType >> &, const point &) const
 Get type (inside,outside,mixed,unknown) of point w.r.t. surface. More...
 
bool overlaps (const label index, const treeBoundBox &sampleBb) const
 Does shape at index overlap bb. More...
 
bool overlaps (const label index, const point &centre, const scalar radiusSqr) const
 Does shape at index overlap sphere. More...
 
template<>
Foam::volumeType getVolumeType (const indexedOctree< treeDataPrimitivePatch< triSurface >> &oc, const point &sample) const
 
template<>
volumeType getVolumeType (const indexedOctree< treeDataPrimitivePatch< triSurface >> &oc, const point &sample) const
 Template specialisation of getVolumeType for treeDataTriSurface. More...
 

Static Public Member Functions

static bool findIntersection (const indexedOctree< treeDataPrimitivePatch< PatchType >> &tree, const label index, const point &start, const point &end, point &intersectionPoint)
 Helper: find intersection of line with shapes. More...
 

Detailed Description

template<class PatchType>
class Foam::treeDataPrimitivePatch< PatchType >

Encapsulation of data needed to search on PrimitivePatches.

Source files

Definition at line 61 of file treeDataPrimitivePatch.H.

Constructor & Destructor Documentation

◆ treeDataPrimitivePatch()

treeDataPrimitivePatch ( const bool  cacheBb,
const PatchType &  patch,
const scalar  planarTol 
)

Construct from patch.

Definition at line 74 of file treeDataPrimitivePatch.C.

References treeDataPrimitivePatch< PatchType >::findNearestOp::findNearestOp().

Here is the call graph for this function:

Member Function Documentation

◆ size()

label size ( ) const
inline

Definition at line 212 of file treeDataPrimitivePatch.H.

References treeDataPrimitivePatch< PatchType >::shapePoints().

Here is the call graph for this function:

◆ shapePoints()

Foam::pointField shapePoints ( ) const

Get representative point cloud for all shapes inside.

(one point per shape)

Definition at line 136 of file treeDataPrimitivePatch.C.

References forAll, and treeDataPrimitivePatch< PatchType >::getVolumeType().

Referenced by treeDataPrimitivePatch< PatchType >::size().

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

◆ patch()

◆ getVolumeType() [1/3]

Foam::volumeType getVolumeType ( const indexedOctree< treeDataPrimitivePatch< PatchType >> &  oc,
const point sample 
) const

Get type (inside,outside,mixed,unknown) of point w.r.t. surface.

Only makes sense for closed surfaces.

Definition at line 151 of file treeDataPrimitivePatch.C.

References Foam::abort(), e, Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, PointHit< Point >::hit(), PointIndexHit< Point >::index(), edge::line(), Foam::mag(), Foam::magSqr(), line< Point, PointRef >::nearestDist(), treeDataPrimitivePatch< PatchType >::overlaps(), Foam::Pout, PointHit< Point >::rawPoint(), Foam::sqr(), and Foam::Zero.

Referenced by treeDataPrimitivePatch< PatchType >::patch(), and treeDataPrimitivePatch< PatchType >::shapePoints().

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

◆ overlaps() [1/2]

bool overlaps ( const label  index,
const treeBoundBox sampleBb 
) const

Does shape at index overlap bb.

Definition at line 384 of file treeDataPrimitivePatch.C.

References Vector< Cmpt >::centre(), boundBox::containsAny(), forAll, and boundBox::overlaps().

Referenced by treeDataPrimitivePatch< PatchType >::getVolumeType(), and treeDataPrimitivePatch< PatchType >::patch().

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

◆ overlaps() [2/2]

bool overlaps ( const label  index,
const point centre,
const scalar  radiusSqr 
) const

Does shape at index overlap sphere.

Definition at line 456 of file treeDataPrimitivePatch.C.

References PointHit< Point >::distance(), face::nearestPoint(), and Foam::sqr().

Here is the call graph for this function:

◆ findIntersection()

bool findIntersection ( const indexedOctree< treeDataPrimitivePatch< PatchType >> &  tree,
const label  index,
const point start,
const point end,
point intersectionPoint 
)
static

Helper: find intersection of line with shapes.

Definition at line 611 of file treeDataPrimitivePatch.C.

References PointHit< Point >::distance(), PointHit< Point >::hit(), PointHit< Point >::hitPoint(), treeDataPrimitivePatch< PatchType >::patch(), and treeBoundBox::posBits().

Referenced by treeDataPrimitivePatch< PatchType >::findSelfIntersectOp::operator()(), and treeDataPrimitivePatch< PatchType >::patch().

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

◆ getVolumeType() [2/3]

Foam::volumeType getVolumeType ( const indexedOctree< treeDataPrimitivePatch< triSurface >> &  oc,
const point sample 
) const

Definition at line 33 of file treeDataTriSurface.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, PointIndexHit< Point >::index(), and Foam::sqr().

Here is the call graph for this function:

◆ getVolumeType() [3/3]

volumeType getVolumeType ( const indexedOctree< treeDataPrimitivePatch< triSurface >> &  oc,
const point sample 
) const

Template specialisation of getVolumeType for treeDataTriSurface.


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