Data Structures | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
treeDataPrimitivePatch< PatchType > Class Template Reference

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

Inheritance diagram for treeDataPrimitivePatch< PatchType >:
Inheritance graph
[legend]
Collaboration diagram for treeDataPrimitivePatch< PatchType >:
Collaboration graph
[legend]

Data Structures

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...
 
Foam::volumeType getVolumeType (const indexedOctree< treeDataPrimitivePatch< triSurface > > &oc, const point &sample) const
 
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...
 

Private Member Functions

void update ()
 Initialise all member data. More...
 

Static Private Member Functions

static treeBoundBox calcBb (const pointField &, const face &)
 Calculate face bounding box. More...
 

Private Attributes

const PatchType & patch_
 Underlying geometry. More...
 
const bool cacheBb_
 Whether to precalculate and store face bounding box. More...
 
const scalar planarTol_
 Tolerance to use for intersection tests. More...
 
treeBoundBoxList bbs_
 Face bounding boxes (valid only if cacheBb_) 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.

Member Function Documentation

◆ calcBb()

Foam::treeBoundBox calcBb ( const pointField points,
const face f 
)
staticprivate

Calculate face bounding box.

Definition at line 36 of file treeDataPrimitivePatch.C.

References f(), boundBox::max(), Foam::max(), boundBox::min(), Foam::min(), p, and points.

Here is the call graph for this function:

◆ update()

void update
private

Initialise all member data.

Definition at line 55 of file treeDataPrimitivePatch.C.

References forAll.

◆ size()

label size ( ) const
inline

◆ shapePoints()

Foam::pointField shapePoints

Get representative point cloud for all shapes inside.

(one point per shape)

Definition at line 136 of file treeDataPrimitivePatch.C.

References forAll.

◆ patch()

const PatchType& patch ( ) const
inline

◆ 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 153 of file treeDataPrimitivePatch.C.

References Foam::abort(), Foam::constant::electromagnetic::e, Foam::endl(), f(), Foam::FatalError, FatalErrorInFunction, forAll, PointHit::hit(), PointIndexHit< Point >::index(), Foam::ln(), Foam::mag(), Foam::magSqr(), Foam::constant::atomic::mp, points, Foam::Pout, PointHit::rawPoint(), and Foam::sqr().

Here is the call 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 385 of file treeDataPrimitivePatch.C.

References boundBox::containsAny(), f(), forAll, treeBoundBox::overlaps(), and points.

Here is the call 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 457 of file treeDataPrimitivePatch.C.

References PointHit::distance(), f(), points, 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

◆ 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.

Field Documentation

◆ patch_

const PatchType& patch_
private

◆ cacheBb_

const bool cacheBb_
private

Whether to precalculate and store face bounding box.

Definition at line 71 of file treeDataPrimitivePatch.H.

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

◆ planarTol_

const scalar planarTol_
private

Tolerance to use for intersection tests.

Definition at line 74 of file treeDataPrimitivePatch.H.

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

◆ bbs_

treeBoundBoxList bbs_
private

Face bounding boxes (valid only if cacheBb_)

Definition at line 77 of file treeDataPrimitivePatch.H.

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


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