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 |
Detailed Description
Segmentation kernel.
Definition at line 51 of file levelSetSegmentationObject.hpp.
Member Typedef Documentation
◆ SegmentConstIterator
typedef SurfUnstructured::CellConstIterator bitpit::LevelSetSegmentationSurfaceInfo::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] surfaceSmoothing is 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] 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.
◆ LevelSetSegmentationSurfaceInfo() [5/5]
bitpit::LevelSetSegmentationSurfaceInfo::LevelSetSegmentationSurfaceInfo | ( | std::unique_ptr< const SurfUnstructured > && | surface, |
double | featureAngle, | ||
LevelSetSurfaceSmoothing | surfaceSmoothing = LevelSetSurfaceSmoothing::LOW_ORDER ) |
Constructor
- Parameters
-
[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.
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] 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
- 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] 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
- 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] point are the coordinates of point [in] segmentItr is 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] point are the coordinates of point [in] segmentItr is 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] 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
- 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] 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.
◆ 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] 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.
◆ 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] segmentItr is an iterator pointing to the closest segment [in] lambda are 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 |
◆ 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] 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.
◆ setSurface() [2/3]
void bitpit::LevelSetSegmentationSurfaceInfo::setSurface | ( | const SurfUnstructured * | surface, |
double | featureAngle = DEFAULT_FEATURE_ANGLE ) |
Set the surface
- Parameters
-
[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.
◆ setSurface() [3/3]
void bitpit::LevelSetSegmentationSurfaceInfo::setSurface | ( | std::unique_ptr< const SurfUnstructured > && | surface, |
double | featureAngle = DEFAULT_FEATURE_ANGLE ) |
Set the surface
- Parameters
-
[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.
Member Data Documentation
◆ DEFAULT_FEATURE_ANGLE
|
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:
- src/levelset/levelSetSegmentationObject.hpp
- src/levelset/levelSetSegmentationObject.cpp
