Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | List of all members
bitpit::LevelSetSegmentationSurfaceInfo Class Reference

Segmentation kernel. More...

Public Types

typedef SurfUnstructured::CellConstIterator SegmentConstIterator
 
typedef SurfUnstructured::CellIterator SegmentIterator
 

Public Member Functions

 LevelSetSegmentationSurfaceInfo ()
 
 LevelSetSegmentationSurfaceInfo (const LevelSetSegmentationSurfaceInfo &other)
 
 LevelSetSegmentationSurfaceInfo (const SurfUnstructured *surface, double featureAngle, LevelSetSurfaceSmoothing surfaceSmoothing=LevelSetSurfaceSmoothing::LOW_ORDER)
 
 LevelSetSegmentationSurfaceInfo (LevelSetSegmentationSurfaceInfo &&other)=default
 
 LevelSetSegmentationSurfaceInfo (LevelSetSurfaceSmoothing surfaceSmoothing)
 
 LevelSetSegmentationSurfaceInfo (std::unique_ptr< const SurfUnstructured > &&surface, double featureAngle, LevelSetSurfaceSmoothing surfaceSmoothing=LevelSetSurfaceSmoothing::LOW_ORDER)
 
double evalDistance (const std::array< double, 3 > &point, const SegmentConstIterator &segmentItr, bool signedDistance) const
 
double evalDistance (const std::array< double, 3 > &point, const SegmentConstIterator &segmentItr, bool signedDistance, std::array< double, 3 > *distanceVector) const
 
std::array< double, 3 > evalDistanceVector (const std::array< double, 3 > &point, const SegmentConstIterator &segmentItr) const
 
std::array< double, 3 > evalNormal (const std::array< double, 3 > &point, const SegmentConstIterator &segmentItr) const
 
std::array< double, 3 > evalProjection (const std::array< double, 3 > &point, const SegmentConstIterator &segmentItr, double *lambda) const
 
void evalProjection (const std::array< double, 3 > &point, const SegmentConstIterator &segmentItr, std::array< double, 3 > *projectionPoint) const
 
void evalProjection (const std::array< double, 3 > &point, const SegmentConstIterator &segmentItr, std::array< double, 3 > *projectionPoint, std::array< double, 3 > *projectionNormal) const
 
std::array< double, 3 > evalPseudoNormal (const SurfUnstructured::CellConstIterator &segmentIterator, const double *lambda) const
 
double getFeatureAngle () const
 
const SurfaceSkdTreegetSearchTree () const
 
const SurfUnstructuredgetSurface () const
 
LevelSetSurfaceSmoothing getSurfaceSmoothing () const
 
void setSurface (const SurfUnstructured *surface, double featureAngle, LevelSetSurfaceSmoothing surfaceSmoothing)
 
void setSurface (const SurfUnstructured *surface, double featureAngle=DEFAULT_FEATURE_ANGLE)
 
void setSurface (std::unique_ptr< const SurfUnstructured > &&surface, double featureAngle=DEFAULT_FEATURE_ANGLE)
 

Static Public Attributes

static BITPIT_PUBLIC_API const double DEFAULT_FEATURE_ANGLE = 2. * BITPIT_PI
 

Detailed Description

Segmentation kernel.

Definition at line 51 of file levelSetSegmentationObject.hpp.

Member Typedef Documentation

◆ SegmentConstIterator

Definition at line 55 of file levelSetSegmentationObject.hpp.

◆ SegmentIterator

Definition at line 54 of file levelSetSegmentationObject.hpp.

Constructor & Destructor Documentation

◆ LevelSetSegmentationSurfaceInfo() [1/5]

bitpit::LevelSetSegmentationSurfaceInfo::LevelSetSegmentationSurfaceInfo ( )

Default constructor

Definition at line 48 of file levelSetSegmentationObject.cpp.

◆ LevelSetSegmentationSurfaceInfo() [2/5]

bitpit::LevelSetSegmentationSurfaceInfo::LevelSetSegmentationSurfaceInfo ( LevelSetSurfaceSmoothing surfaceSmoothing)

Constructor

Parameters
[in]surfaceSmoothingis the given surface snoothing order

Definition at line 89 of file levelSetSegmentationObject.cpp.

◆ LevelSetSegmentationSurfaceInfo() [3/5]

bitpit::LevelSetSegmentationSurfaceInfo::LevelSetSegmentationSurfaceInfo ( const LevelSetSegmentationSurfaceInfo & other)

Copy constructor

Definition at line 58 of file levelSetSegmentationObject.cpp.

◆ LevelSetSegmentationSurfaceInfo() [4/5]

bitpit::LevelSetSegmentationSurfaceInfo::LevelSetSegmentationSurfaceInfo ( const SurfUnstructured * surface,
double featureAngle,
LevelSetSurfaceSmoothing surfaceSmoothing = LevelSetSurfaceSmoothing::LOW_ORDER )

Constructor

Parameters
[in]surfacepointer to surface
[in]featureAnglefeature angle. If the angle between two segments is bigger than this angle, the enclosed edge is considered as a sharp edge
[in]surfaceSmoothingis the given surface snoothing order

Definition at line 116 of file levelSetSegmentationObject.cpp.

◆ LevelSetSegmentationSurfaceInfo() [5/5]

bitpit::LevelSetSegmentationSurfaceInfo::LevelSetSegmentationSurfaceInfo ( std::unique_ptr< const SurfUnstructured > && surface,
double featureAngle,
LevelSetSurfaceSmoothing surfaceSmoothing = LevelSetSurfaceSmoothing::LOW_ORDER )

Constructor

Parameters
[in,out]surfacepointer to surface
[in]featureAnglefeature angle. If the angle between two segments is bigger than this angle, the enclosed edge is considered as a sharp edge
[in]surfaceSmoothingis the given surface snoothing order

Definition at line 103 of file levelSetSegmentationObject.cpp.

Member Function Documentation

◆ evalDistance() [1/2]

double bitpit::LevelSetSegmentationSurfaceInfo::evalDistance ( const std::array< double, 3 > & point,
const SegmentConstIterator & segmentItr,
bool signedDistance ) const

Evaluate the distance function at the specified point.

Parameters
[in]pointare the coordinates of point
[in]segmentItris an iterator pointing to the closest segment
[in]signedDistancecontrols if the signed or unsigned distance will be evaluated
Returns
The distance function at the specified point.

Definition at line 275 of file levelSetSegmentationObject.cpp.

◆ evalDistance() [2/2]

double bitpit::LevelSetSegmentationSurfaceInfo::evalDistance ( const std::array< double, 3 > & point,
const SegmentConstIterator & segmentItr,
bool signedDistance,
std::array< double, 3 > * distanceVector ) const

Evaluate the distance function at the specified point.

Parameters
[in]pointare the coordinates of point
[in]segmentItris an iterator pointing to the closest segment
[in]signedDistancecontrols if the signed or unsigned distance will be evaluated
[out]thedistance function at the specified point
Returns
The distance function at the specified point.

Definition at line 231 of file levelSetSegmentationObject.cpp.

◆ evalDistanceVector()

std::array< double, 3 > bitpit::LevelSetSegmentationSurfaceInfo::evalDistanceVector ( const std::array< double, 3 > & point,
const SegmentConstIterator & segmentItr ) const

Evaluate the distance vector function at the specified point.

Parameters
[in]pointare the coordinates of point
[in]segmentItris an iterator pointing to the closest segment
Returns
The distance vector function at the specified point.

Definition at line 290 of file levelSetSegmentationObject.cpp.

◆ evalNormal()

std::array< double, 3 > bitpit::LevelSetSegmentationSurfaceInfo::evalNormal ( const std::array< double, 3 > & point,
const SegmentConstIterator & segmentItr ) const

Evaluate the surface normal at the projection of the specified point.

Parameters
[in]pointare the coordinates of point
[in]segmentItris an iterator pointing to the closest segment
Returns
The surface normal at the projection of the specified point.

Definition at line 307 of file levelSetSegmentationObject.cpp.

◆ evalProjection() [1/3]

std::array< double, 3 > bitpit::LevelSetSegmentationSurfaceInfo::evalProjection ( const std::array< double, 3 > & point,
const SegmentConstIterator & segmentItr,
double * lambda ) const

Evaluate the projection of the given point on the specified segment.

Parameters
[in]pointare the coordinates of point
[in]segmentItris an iterator pointing to the closest segment
[out]lambdaon output will contain the barycentric coordinates of the projection point
Returns
The coordinates of the projection point.

Definition at line 1436 of file levelSetSegmentationObject.cpp.

◆ evalProjection() [2/3]

void bitpit::LevelSetSegmentationSurfaceInfo::evalProjection ( const std::array< double, 3 > & point,
const SegmentConstIterator & segmentItr,
std::array< double, 3 > * projectionPoint ) const

Evaluate the projection of the given point on the specified segment.

Parameters
[in]pointare the coordinates of point
[in]segmentItris an iterator pointing to the closest segment
[out]projectionPointThe coordinates of the projection point on the surface.

Definition at line 1418 of file levelSetSegmentationObject.cpp.

◆ evalProjection() [3/3]

void bitpit::LevelSetSegmentationSurfaceInfo::evalProjection ( const std::array< double, 3 > & point,
const SegmentConstIterator & segmentItr,
std::array< double, 3 > * projectionPoint,
std::array< double, 3 > * projectionNormal ) const

Evaluate the projection of the given point on the specified segment.

Parameters
[in]pointare the coordinates of point
[in]segmentItris an iterator pointing to the closest segment
[out]projectionPointThe coordinates of the projection point on the surface.
[out]projectionNormalThe coordinates of the normal to the surface vector on the surface

Definition at line 1399 of file levelSetSegmentationObject.cpp.

◆ evalPseudoNormal()

std::array< double, 3 > bitpit::LevelSetSegmentationSurfaceInfo::evalPseudoNormal ( const SurfUnstructured::CellConstIterator & segmentIterator,
const double * lambda ) const

Compute the pseudo-normal at specified point of the given segment.

Parameters
[in]segmentItris an iterator pointing to the closest segment
[in]lambdaare the barycentric coordinates of the point
Returns
the pseudo-normal at specified point of the given segment

Definition at line 325 of file levelSetSegmentationObject.cpp.

◆ getFeatureAngle()

double bitpit::LevelSetSegmentationSurfaceInfo::getFeatureAngle ( ) const

Get feature angle

Returns
feature angle used when calculating face normals.

Definition at line 209 of file levelSetSegmentationObject.cpp.

◆ getSearchTree()

const SurfaceSkdTree & bitpit::LevelSetSegmentationSurfaceInfo::getSearchTree ( ) const

Get search tree

Returns
search tree;

Definition at line 201 of file levelSetSegmentationObject.cpp.

◆ getSurface()

const SurfUnstructured & bitpit::LevelSetSegmentationSurfaceInfo::getSurface ( ) const

Get segmentation surface

Returns
segmentation surface;

Definition at line 125 of file levelSetSegmentationObject.cpp.

◆ getSurfaceSmoothing()

bitpit::LevelSetSurfaceSmoothing bitpit::LevelSetSegmentationSurfaceInfo::getSurfaceSmoothing ( ) const

Get smoothing order (low or high) imposed on surface when calculating the projection point and normal on the surface

Returns
the ssurface smoothing order

Definition at line 218 of file levelSetSegmentationObject.cpp.

◆ setSurface() [1/3]

void bitpit::LevelSetSegmentationSurfaceInfo::setSurface ( const SurfUnstructured * surface,
double featureAngle,
LevelSetSurfaceSmoothing surfaceSmoothing )

Set the surface

Parameters
[in]surfacepointer to surface
[in]featureAnglefeature angle. If the angle between two segments is bigger than this angle, the enclosed edge is considered as a sharp edge
[in]surfaceSmoothingis the given surface snoothing order

Definition at line 146 of file levelSetSegmentationObject.cpp.

◆ setSurface() [2/3]

void bitpit::LevelSetSegmentationSurfaceInfo::setSurface ( const SurfUnstructured * surface,
double featureAngle = DEFAULT_FEATURE_ANGLE )

Set the surface

Parameters
[in]surfacepointer to surface
[in]featureAnglefeature angle. If the angle between two segments is bigger than this angle, the enclosed edge is considered as a sharp edge

Definition at line 193 of file levelSetSegmentationObject.cpp.

◆ setSurface() [3/3]

void bitpit::LevelSetSegmentationSurfaceInfo::setSurface ( std::unique_ptr< const SurfUnstructured > && surface,
double featureAngle = DEFAULT_FEATURE_ANGLE )

Set the surface

Parameters
[in]surfacepointer to surface
[in]featureAnglefeature angle. If the angle between two segments is bigger than this angle, the enclosed edge is considered as a sharp edge

Definition at line 134 of file levelSetSegmentationObject.cpp.

Member Data Documentation

◆ DEFAULT_FEATURE_ANGLE

const double bitpit::LevelSetSegmentationSurfaceInfo::DEFAULT_FEATURE_ANGLE = 2. * BITPIT_PI
static

The default angle that is used to identify sharp edges. If the angle between two segments is bigger than this angle, the enclosed edge is considered as a sharp edge.

Definition at line 57 of file levelSetSegmentationObject.hpp.


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