Encapsulates data for octree searches on triSurface. More...
#include <meshTools/octreeDataTriSurface.H>
Encapsulates data for octree searches on triSurface.
Definition at line 56 of file octreeDataTriSurface.H.
Public Member Functions | |
ClassName ("octreeDataTriSurface") | |
octreeDataTriSurface (const triSurface &) | |
Construct from triSurface. Holds reference. Bounding box.
| |
octreeDataTriSurface (const triSurface &, const treeBoundBoxList &) | |
Construct from triSurface and bounding box.
| |
const triSurface & | surface () const |
const treeBoundBoxList & | allBb () const |
label | size () const |
label | getSampleType (const octree< octreeDataTriSurface > &, const point &) const |
Get type of sample.
| |
bool | overlaps (const label index, const treeBoundBox &sampleBb) const |
Does (bb of) shape at index overlap bb.
| |
bool | contains (const label index, const point &sample) const |
Does shape at index contain sample.
| |
bool | intersects (const label index, const point &start, const point &end, point &intersectionPoint) const |
Segment (from start to end) intersection with shape.
| |
bool | findTightest (const label index, const point &sample, treeBoundBox &tightest) const |
Sets newTightest to bounding box (and returns true) if.
| |
scalar | calcSign (const label index, const point &sample, vector &n) const |
Given index get unit normal and calculate (numerical) sign.
| |
scalar | calcNearest (const label index, const point &sample, point &nearest) const |
Calculates nearest (to sample) point in shape.
| |
scalar | calcNearest (const label index, const linePointRef &ln, point &linePt, point &shapePt) const |
Calculates nearest (to line segment) point in shape.
| |
void | write (Ostream &os, const label index) const |
Friends | |
Istream & | operator>> (Istream &, octreeDataTriSurface &) |
Ostream & | operator<< (Ostream &, const octreeDataTriSurface &) |
octreeDataTriSurface | ( | const triSurface & | surface ) |
Construct from triSurface. Holds reference. Bounding box.
calculated from triangle points.
Definition at line 250 of file octreeDataTriSurface.C.
References f(), forAll, PrimitivePatch< Face, FaceList, PointField, PointType >::points(), and points.
octreeDataTriSurface | ( | const triSurface & | surface, |
const treeBoundBoxList & | allBb | ||
) |
Construct from triSurface and bounding box.
Holds references.
Definition at line 282 of file octreeDataTriSurface.C.
ClassName | ( | "octreeDataTriSurface" | ) |
const triSurface& surface | ( | ) | const [inline]
|
Definition at line 125 of file octreeDataTriSurface.H.
const treeBoundBoxList& allBb | ( | ) | const [inline]
|
Definition at line 130 of file octreeDataTriSurface.H.
Referenced by treeLeaf< Type >::findNearest().
label size | ( | ) | const [inline]
|
Definition at line 135 of file octreeDataTriSurface.H.
References List< T >::size().
Foam::label getSampleType | ( | const octree< octreeDataTriSurface > & | oc, |
const point & | sample | ||
) | const |
Get type of sample.
Definition at line 317 of file octreeDataTriSurface.C.
References Foam::abort(), f(), Foam::FatalError, FatalErrorIn, octree< Type >::findNearest(), octree< Type >::getVolType(), treeBoundBox::great, treeBoundBox::greatBox, Foam::Pout, PointHit< Point >::rawPoint(), and triSurfaceTools::surfaceNormal().
bool overlaps | ( | const label | index, |
const treeBoundBox & | sampleBb | ||
) | const |
Does (bb of) shape at index overlap bb.
Exact test of triangle intersecting bb
Definition at line 374 of file octreeDataTriSurface.C.
References treeBoundBox::contains(), f(), triangleFuncs::intersectBb(), treeBoundBox::overlaps(), and points.
bool contains | ( | const label | index, |
const point & | sample | ||
) | const |
Does shape at index contain sample.
Definition at line 411 of file octreeDataTriSurface.C.
References notImplemented.
bool intersects | ( | const label | index, |
const point & | start, | ||
const point & | end, | ||
point & | intersectionPoint | ||
) | const |
Segment (from start to end) intersection with shape.
at index. If intersects returns true and sets intersectionPoint
Definition at line 426 of file octreeDataTriSurface.C.
References PointHit< Point >::distance(), f(), intersection::HALF_RAY, PointHit< Point >::hit(), PointHit< Point >::hitPoint(), Foam::mag(), points, triangle< Point, PointRef >::ray(), and intersection::setPlanarTol().
bool findTightest | ( | const label | index, |
const point & | sample, | ||
treeBoundBox & | tightest | ||
) | const |
Sets newTightest to bounding box (and returns true) if.
nearer to sample than tightest bounding box. Otherwise returns false.
Definition at line 470 of file octreeDataTriSurface.C.
References treeBoundBox::calcExtremities(), dist, Foam::mag(), boundBox::max(), boundBox::min(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
Given index get unit normal and calculate (numerical) sign.
of sample. Used to determine accuracy of calcNearest or inside/outside.
Definition at line 509 of file octreeDataTriSurface.C.
References Foam::mag().
Calculates nearest (to sample) point in shape.
Returns point and mag(nearest - sample)
Definition at line 530 of file octreeDataTriSurface.C.
References Foam::mag().
Referenced by treeLeaf< Type >::findNearest().
Foam::scalar calcNearest | ( | const label | index, |
const linePointRef & | ln, | ||
point & | linePt, | ||
point & | shapePt | ||
) | const |
Calculates nearest (to line segment) point in shape.
Returns distance and both point.
Definition at line 542 of file octreeDataTriSurface.C.
References notImplemented.
void write | ( | Ostream & | os, |
const label | index | ||
) | const |
Definition at line 559 of file octreeDataTriSurface.C.
References token::SPACE.
Istream& operator>> | ( | Istream & | , |
octreeDataTriSurface & | |||
) | [friend]
|
Ostream& operator<< | ( | Ostream & | , |
const octreeDataTriSurface & | |||
) | [friend]
|