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 SurfaceSkdTree & | getSearchTree () const |
const SurfUnstructured & | getSurface () 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 |
Segmentation kernel.
Definition at line 51 of file levelSetSegmentationObject.hpp.
typedef SurfUnstructured::CellConstIterator bitpit::LevelSetSegmentationSurfaceInfo::SegmentConstIterator |
Definition at line 55 of file levelSetSegmentationObject.hpp.
Definition at line 54 of file levelSetSegmentationObject.hpp.
bitpit::LevelSetSegmentationSurfaceInfo::LevelSetSegmentationSurfaceInfo | ( | ) |
Default constructor
Definition at line 48 of file levelSetSegmentationObject.cpp.
bitpit::LevelSetSegmentationSurfaceInfo::LevelSetSegmentationSurfaceInfo | ( | LevelSetSurfaceSmoothing | surfaceSmoothing | ) |
Constructor
[in] | surfaceSmoothing | is the given surface snoothing order |
Definition at line 89 of file levelSetSegmentationObject.cpp.
bitpit::LevelSetSegmentationSurfaceInfo::LevelSetSegmentationSurfaceInfo | ( | const LevelSetSegmentationSurfaceInfo & | other | ) |
Copy constructor
Definition at line 58 of file levelSetSegmentationObject.cpp.
bitpit::LevelSetSegmentationSurfaceInfo::LevelSetSegmentationSurfaceInfo | ( | const SurfUnstructured * | surface, |
double | featureAngle, | ||
LevelSetSurfaceSmoothing | surfaceSmoothing = LevelSetSurfaceSmoothing::LOW_ORDER ) |
Constructor
[in] | surface | pointer to surface |
[in] | featureAngle | feature angle. If the angle between two segments is bigger than this angle, the enclosed edge is considered as a sharp edge |
[in] | surfaceSmoothing | is the given surface snoothing order |
Definition at line 116 of file levelSetSegmentationObject.cpp.
bitpit::LevelSetSegmentationSurfaceInfo::LevelSetSegmentationSurfaceInfo | ( | std::unique_ptr< const SurfUnstructured > && | surface, |
double | featureAngle, | ||
LevelSetSurfaceSmoothing | surfaceSmoothing = LevelSetSurfaceSmoothing::LOW_ORDER ) |
Constructor
[in,out] | surface | pointer to surface |
[in] | featureAngle | feature angle. If the angle between two segments is bigger than this angle, the enclosed edge is considered as a sharp edge |
[in] | surfaceSmoothing | is the given surface snoothing order |
Definition at line 103 of file levelSetSegmentationObject.cpp.
double bitpit::LevelSetSegmentationSurfaceInfo::evalDistance | ( | const std::array< double, 3 > & | point, |
const SegmentConstIterator & | segmentItr, | ||
bool | signedDistance ) const |
Evaluate the distance function at the specified point.
[in] | point | are the coordinates of point |
[in] | segmentItr | is an iterator pointing to the closest segment |
[in] | signedDistance | controls if the signed or unsigned distance will be evaluated |
Definition at line 275 of file levelSetSegmentationObject.cpp.
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.
[in] | point | are the coordinates of point |
[in] | segmentItr | is an iterator pointing to the closest segment |
[in] | signedDistance | controls if the signed or unsigned distance will be evaluated |
[out] | the | distance function at the specified point |
Definition at line 231 of file levelSetSegmentationObject.cpp.
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.
[in] | point | are the coordinates of point |
[in] | segmentItr | is an iterator pointing to the closest segment |
Definition at line 290 of file levelSetSegmentationObject.cpp.
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.
[in] | point | are the coordinates of point |
[in] | segmentItr | is an iterator pointing to the closest segment |
Definition at line 307 of file levelSetSegmentationObject.cpp.
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.
[in] | point | are the coordinates of point |
[in] | segmentItr | is an iterator pointing to the closest segment |
[out] | lambda | on output will contain the barycentric coordinates of the projection point |
Definition at line 1436 of file levelSetSegmentationObject.cpp.
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.
[in] | point | are the coordinates of point |
[in] | segmentItr | is an iterator pointing to the closest segment |
[out] | projectionPoint | The coordinates of the projection point on the surface. |
Definition at line 1418 of file levelSetSegmentationObject.cpp.
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.
[in] | point | are the coordinates of point |
[in] | segmentItr | is an iterator pointing to the closest segment |
[out] | projectionPoint | The coordinates of the projection point on the surface. |
[out] | projectionNormal | The coordinates of the normal to the surface vector on the surface |
Definition at line 1399 of file levelSetSegmentationObject.cpp.
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.
[in] | segmentItr | is an iterator pointing to the closest segment |
[in] | lambda | are the barycentric coordinates of the point |
Definition at line 325 of file levelSetSegmentationObject.cpp.
double bitpit::LevelSetSegmentationSurfaceInfo::getFeatureAngle | ( | ) | const |
Get feature angle
Definition at line 209 of file levelSetSegmentationObject.cpp.
const SurfaceSkdTree & bitpit::LevelSetSegmentationSurfaceInfo::getSearchTree | ( | ) | const |
const SurfUnstructured & bitpit::LevelSetSegmentationSurfaceInfo::getSurface | ( | ) | const |
Get segmentation surface
Definition at line 125 of file levelSetSegmentationObject.cpp.
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
Definition at line 218 of file levelSetSegmentationObject.cpp.
void bitpit::LevelSetSegmentationSurfaceInfo::setSurface | ( | const SurfUnstructured * | surface, |
double | featureAngle, | ||
LevelSetSurfaceSmoothing | surfaceSmoothing ) |
Set the surface
[in] | surface | pointer to surface |
[in] | featureAngle | feature angle. If the angle between two segments is bigger than this angle, the enclosed edge is considered as a sharp edge |
[in] | surfaceSmoothing | is the given surface snoothing order |
Definition at line 146 of file levelSetSegmentationObject.cpp.
void bitpit::LevelSetSegmentationSurfaceInfo::setSurface | ( | const SurfUnstructured * | surface, |
double | featureAngle = DEFAULT_FEATURE_ANGLE ) |
Set the surface
[in] | surface | pointer to surface |
[in] | featureAngle | feature 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.
void bitpit::LevelSetSegmentationSurfaceInfo::setSurface | ( | std::unique_ptr< const SurfUnstructured > && | surface, |
double | featureAngle = DEFAULT_FEATURE_ANGLE ) |
Set the surface
[in] | surface | pointer to surface |
[in] | featureAngle | feature 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.
|
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.