Implements visitor pattern fo segmentated geometries. More...


Public Member Functions | |
std::array< double, 3 > | evalCellNormal (long id, bool signedLevelSet) const |
int | evalCellPart (long id) const |
long | evalCellSupport (long id, double searchRadius=AUTOMATIC_SEARCH_RADIUS) const |
const SurfUnstructured & | evalCellSurface (long id) const |
std::array< double, 3 > | evalNormal (const std::array< double, 3 > &point, bool signedLevelSet) const |
int | evalPart (const std::array< double, 3 > &point) const |
void | evalProjection (const std::array< double, 3 > &point, bool signedLevelSet, std::array< double, 3 > *projectionPoint, std::array< double, 3 > *projectionNormal) const |
long | evalSupport (const std::array< double, 3 > &point) const |
long | evalSupport (const std::array< double, 3 > &point, double searchRadius) const |
const SurfUnstructured & | evalSurface (const std::array< double, 3 > &point) const |
std::array< double BITPIT_COMMA 3 > | getNormal (const std::array< double, 3 > &point) const |
std::array< double BITPIT_COMMA 3 > | getNormal (long cellId) const |
int | getPart (const std::array< double, 3 > &point) const |
int | getPart (long cellId) const |
long | getSupport (const std::array< double, 3 > &point) const |
long | getSupport (long cellId) const |
LevelSetFieldset | getSupportedFields () const override |
double | getSurfaceFeatureSize (const std::array< double, 3 > &point) const |
double | getSurfaceFeatureSize (long cellId) const |
LevelSetObject (const LevelSetObject &other) | |
LevelSetObject (int) | |
LevelSetObject (LevelSetObject &&other) | |
![]() | |
virtual | ~LevelSetObject () |
BITPIT_DEPRECATED_FOR (double getValue(long cellId) const, double evalCellValue(long id, bool signedLevelSet) const) | |
BITPIT_DEPRECATED_FOR (short getSign(long cellId) const, short evalCellSign(long id) const) | |
BITPIT_DEPRECATED_FOR (std::array< double BITPIT_COMMA 3 > getGradient(long cellId) const, std::array< double BITPIT_COMMA 3 > evalCellGradient(long id, bool signedLevelSet) const) | |
virtual LevelSetObject * | clone () const =0 |
std::array< double BITPIT_COMMA 3 > | computeProjectionPoint (const std::array< double, 3 > &point) const |
std::array< double BITPIT_COMMA 3 > | computeProjectionPoint (long cellId) const |
std::array< double BITPIT_COMMA 3 > | computeVertexProjectionPoint (long vertexId) const |
void | disableFieldCellCache (LevelSetField field) |
virtual bool | empty () const =0 |
void | enableFieldCellCache (LevelSetField field, LevelSetCacheMode cacheMode) |
void | enableVTKOutput (const LevelSetFieldset &fieldset, bool enable=true) |
void | enableVTKOutput (const LevelSetFieldset &fieldset, const std::string &objectName, bool enable=true) |
void | enableVTKOutput (LevelSetField field, bool enable=true) |
void | enableVTKOutput (LevelSetField field, const std::string &objectName, bool enable=true) |
void | enableVTKOutput (LevelSetWriteField field, bool enable=true) |
void | enableVTKOutput (LevelSetWriteField fieldset, const std::string &objectName, bool enable=true) |
virtual std::array< double, 3 > | evalCellGradient (long id, bool signedLevelSet) const |
virtual std::array< double, 3 > | evalCellProjectionPoint (long id) const |
virtual short | evalCellSign (long id) const |
virtual double | evalCellValue (long id, bool signedLevelSet) const |
virtual std::array< double, 3 > | evalGradient (const std::array< double, 3 > &point, bool signedLevelSet) const |
virtual std::array< double, 3 > | evalProjectionPoint (const std::array< double, 3 > &point) const |
virtual short | evalSign (const std::array< double, 3 > &point) const |
virtual double | evalValue (const std::array< double, 3 > &point, bool signedLevelSet) const |
void | flushData (std::fstream &, const std::string &, VTKFormat) override |
LevelSetBulkEvaluationMode | getCellBulkEvaluationMode () const |
LevelSetCacheMode | getFieldCellCacheMode (LevelSetField field) const |
int | getId () const |
virtual const LevelSetKernel * | getKernel () const |
LevelSetInfo | getLevelSetInfo (long cellId) const |
double | getLS (long cellId) const |
double | getNarrowBandSize () const |
std::size_t | getReferenceCount () const |
double | getSizeNarrowBand () const |
LevelSetIntersectionStatus | intersectSurface (long id, LevelSetIntersectionMode=LevelSetIntersectionMode::FAST_FUZZY) const |
virtual bool | isCellInNarrowBand (long id) const |
LevelSetIntersectionStatus | isCellIntersected (long id, LevelSetIntersectionMode=LevelSetIntersectionMode::FAST_FUZZY) const |
virtual bool | isInNarrowBand (const std::array< double, 3 > &point) const |
LevelSetIntersectionStatus | isInterfaceIntersected (long id) const |
LevelSetIntersectionStatus | isInterfaceIntersected (long id, bool invert, std::array< std::array< double, 3 >, 2 > *intersection, std::vector< std::array< double, 3 > > *polygon) const |
virtual bool | isPrimary () const |
void | setCellBulkEvaluationMode (LevelSetBulkEvaluationMode evaluationMode) |
void | update (const std::vector< adaption::Info > &adaptionData) |
![]() | |
virtual void | absorbData (std::fstream &, const std::string &, VTKFormat, uint64_t, uint8_t, VTKDataType) |
template<typename T> | |
void | flushValue (std::fstream &, VTKFormat, const T &value) const |
template<typename T> | |
void | flushValue (std::fstream &, VTKFormat, const T *values, int nValues) const |
Static Public Attributes | |
static BITPIT_PUBLIC_API const double | AUTOMATIC_SEARCH_RADIUS = -1 |
Protected Member Functions | |
LevelSetSegmentationBaseObject (int, const LevelSetSegmentationSurfaceInfo *surfaceInfo) | |
virtual std::array< double, 3 > | _evalCellNormal (long id, bool signedLevelSet) const =0 |
virtual int | _evalCellPart (long id) const |
virtual long | _evalCellSupport (long id, double searchRadius=AUTOMATIC_SEARCH_RADIUS) const =0 |
virtual const SurfUnstructured & | _evalCellSurface (long id) const =0 |
virtual int | _evalPart (const std::array< double, 3 > &point) const |
virtual void | _evalProjection (const std::array< double, 3 > &point, bool signedLevelSet, std::array< double, 3 > *projectionPoint, std::array< double, 3 > *projectionNormal) const =0 |
virtual long | _evalSupport (const std::array< double, 3 > &point) const =0 |
virtual long | _evalSupport (const std::array< double, 3 > &point, double searchRadius) const =0 |
virtual const SurfUnstructured & | _evalSurface (const std::array< double, 3 > &point) const =0 |
LevelSetIntersectionStatus | _isCellIntersected (long, double distance, LevelSetIntersectionMode=LevelSetIntersectionMode::FAST_FUZZY) const override |
virtual LevelSetIntersectionStatus | _isInterfaceIntersected (long id, bool invert, std::array< std::array< double, 3 >, 2 > *intersection, std::vector< std::array< double, 3 > > *polygon) const override |
void | addVTKOutputData (LevelSetField field, const std::string &objectName) override |
std::size_t | createFieldCellCache (LevelSetField field, std::size_t cacheId=CellCacheCollection::NULL_CACHE_ID) override |
void | fillFieldCellCache (LevelSetField field, const std::vector< long > &cellIds) |
void | fillFieldCellCache (LevelSetField field, long id) override |
template<typename value_t> | |
void | fillFieldCellCache (LevelSetField field, long id, const value_t &value) const |
void | flushVTKOutputData (std::fstream &stream, VTKFormat format, LevelSetField field) const override |
template<typename value_t, typename evaluator_t, typename fallback_t> | |
void | flushVTKOutputData (std::fstream &stream, VTKFormat format, LevelSetField field, const evaluator_t evluator, const fallback_t fallback) const |
std::string | getVTKOutputFieldName (LevelSetField field) const override |
![]() | |
virtual std::array< double, 3 > | _evalCellGradient (long id, bool signedLevelSet) const =0 |
virtual short | _evalCellSign (long id) const =0 |
virtual double | _evalCellValue (long id, bool signedLevelSet) const =0 |
virtual std::array< double, 3 > | _evalGradient (const std::array< double, 3 > &point, bool signedLevelSet) const =0 |
virtual short | _evalSign (const std::array< double, 3 > &point) const |
virtual double | _evalValue (const std::array< double, 3 > &point, bool signedLevelSet) const =0 |
void | adaptCellCaches (const std::vector< adaption::Info > &adaptionData) |
void | clearCellCache (std::size_t cacheId, bool release) |
void | completeCellCacheExchange (const std::unordered_map< int, std::vector< long > > &sendCellIds, std::size_t cacheIds, DataCommunicator *) |
void | completeCellCachesExchange (const std::unordered_map< int, std::vector< long > > &sendCellIds, const std::vector< std::size_t > &cacheIds, DataCommunicator *) |
template<typename value_t> | |
std::size_t | createCellCache (LevelSetFillIn expectedFillIn, std::size_t cacheId=CellCacheCollection::NULL_CACHE_ID) |
virtual std::size_t | createCellLocationCache (std::size_t cacheId=CellCacheCollection::NULL_CACHE_ID) |
virtual std::size_t | createCellPropagatedSignCache (std::size_t cacheId=CellCacheCollection::NULL_CACHE_ID) |
void | destroyCellBulkData () |
void | destroyCellCache (std::size_t cacheId) |
void | destroyCellLocationCache () |
void | destroyCellNarrowBandData () |
void | destroyCellPropagatedSignCache () |
virtual void | destroyFieldCellCache (LevelSetField field) |
virtual void | dump (std::ostream &) |
std::vector< long > | evalCellCacheFillIds (LevelSetZone zone, LevelSetCacheMode cacheMode) const |
std::vector< long > | evalCellCacheFillIds (LevelSetZone zone, LevelSetCacheMode cacheMode, const std::vector< adaption::Info > &adaptionData) const |
std::vector< long > | evalCellCacheStaleIds (const std::vector< adaption::Info > &adaptionData) const |
template<typename value_t, typename evaluator_t, typename fallback_t> | |
value_t | evalCellField (LevelSetField field, long id, const evaluator_t &evaluator, const fallback_t &fallback) const |
template<typename value_t, typename evaluator_t, typename fallback_t> | |
value_t | evalCellFieldCached (LevelSetField field, long id, const evaluator_t &evaluator, const fallback_t &fallback) const |
std::vector< long > | evalCellFullCacheFillIds (LevelSetZone zone) const |
std::vector< long > | evalCellFullCacheFillIds (LevelSetZone zone, const std::vector< adaption::Info > &adaptionData) const |
std::vector< long > | evalCellNarrowBandCacheFillIds (LevelSetZone zone) const |
std::vector< long > | evalCellNarrowBandCacheFillIds (LevelSetZone zone, const std::vector< adaption::Info > &adaptionData) const |
std::vector< long > | evalCellOnDemandCacheFillIds (LevelSetZone zone) const |
std::vector< long > | evalCellOnDemandCacheFillIds (LevelSetZone zone, const std::vector< adaption::Info > &adaptionData) const |
void | evaluate () |
void | evaluateCellBulkData () |
void | evaluateCellNarrowBandData () |
short | evalValueSign (double value) const |
virtual LevelSetCellLocation | fillCellGeometricNarrowBandLocationCache (long id) |
virtual void | fillCellLocationCache () |
virtual void | fillCellLocationCache (const std::vector< adaption::Info > &adaptionData) |
virtual void | fillCellPropagatedSignCache () |
void | fillFieldCellCaches (LevelSetZone zone, const std::vector< LevelSetField > &fields) |
void | fillFieldCellCaches (LevelSetZone zone, const std::vector< LevelSetField > &fields, const std::vector< adaption::Info > &adaptionData) |
template<typename value_t> | |
CellCacheCollection::ValueCache< value_t > * | getCellCache (std::size_t cacheId) const |
CellCacheCollection::Cache * | getCellCache (std::size_t cacheId) const |
LevelSetCellLocation | getCellLocation (long id) const |
LevelSetZone | getCellZone (long id) const |
template<typename value_t> | |
CellCacheCollection::ValueCache< value_t > * | getFieldCellCache (LevelSetField field) const |
CellCacheCollection::Cache * | getFieldCellCache (LevelSetField field) const |
std::size_t | getFieldCellCacheId (LevelSetField field) const |
virtual LevelSetKernel * | getKernel () |
std::string | getVTKOutputDataName (LevelSetField field, const std::string &objectName) const |
bool | hasVTKOutputData (LevelSetField field, const std::string &objectName) const |
void | pruneCellCache (std::size_t cacheId, const std::vector< long > &cellIds) |
void | removeVTKOutputData (LevelSetField field, const std::string &objectName) |
virtual void | restore (std::istream &) |
void | setDefaultLevelSetSigndness (bool signedLevelSet) |
virtual void | setKernel (LevelSetKernel *) |
void | setNarrowBandSize (double size) |
void | setSizeNarrowBand (double) |
void | startCellCacheExchange (const std::unordered_map< int, std::vector< long > > &recvCellIds, std::size_t cacheIds, DataCommunicator *) const |
void | startCellCachesExchange (const std::unordered_map< int, std::vector< long > > &recvCellIds, const std::vector< std::size_t > &cacheIds, DataCommunicator *) const |
void | update () |
void | updateCellBulkData (const std::vector< adaption::Info > &adaptionData) |
void | updateCellNarrowBandData (const std::vector< adaption::Info > &adaptionData) |
Friends | |
class | LevelSetBooleanObject< LevelSetSegmentationBaseObject > |
Additional Inherited Members | |
![]() | |
typedef LevelSetCachedKernel::CellCacheCollection | CellCacheCollection |
![]() | |
template<typename data_t> | |
using | CellCacheEntry = typename CellCacheCollection::ValueCache<data_t>::Entry |
![]() | |
std::size_t | m_cellLocationCacheId |
Id of the cache that will keep track if cell zones. | |
std::size_t | m_cellPropagatedSignCacheId |
Id of the cache that will keep track if cell propagated sign. | |
bool | m_defaultSignedLevelSet |
LevelSetFieldMap< std::string > | m_enabledOutputFields |
LevelSetKernel * | m_kernel |
double | m_narrowBandSize |
Size of narrow band. | |
![]() | |
static const bool | CELL_CACHE_IS_SIGNED = false |
static const LevelSetIntersectionMode | CELL_LOCATION_INTERSECTION_MODE = LevelSetIntersectionMode::FAST_GUARANTEE_FALSE |
Detailed Description
Implements visitor pattern fo segmentated geometries.
Definition at line 126 of file levelSetSegmentationObject.hpp.
Member Function Documentation
◆ _evalCellNormal()
|
protectedpure virtual |
◆ _evalCellPart()
|
protectedvirtual |
Evaluate the part associated with the segment closest to the specified cell.
- Parameters
-
id is the id of the cell
- Returns
- The part associated with the segment closest to the specified cell.
Reimplemented in bitpit::LevelSetBooleanObject< LevelSetSegmentationBaseObject >, and bitpit::LevelSetComplementObject< LevelSetSegmentationBaseObject >.
Definition at line 2145 of file levelSetSegmentationObject.cpp.
◆ _evalCellSupport()
|
protectedpure virtual |
◆ _evalCellSurface()
|
protectedpure virtual |
◆ _evalPart()
|
protectedvirtual |
Evaluate the part associated with the segment closest to the specified point.
- Parameters
-
point are the coordinates of the point
- Returns
- The part associated with the segment closest to the specified point.
Reimplemented in bitpit::LevelSetBooleanObject< LevelSetSegmentationBaseObject >, and bitpit::LevelSetComplementObject< LevelSetSegmentationBaseObject >.
Definition at line 2160 of file levelSetSegmentationObject.cpp.
◆ _evalProjection()
|
protectedpure virtual |
◆ _evalSupport() [1/2]
|
protectedpure virtual |
◆ _evalSupport() [2/2]
|
protectedpure virtual |
◆ _evalSurface()
|
protectedpure virtual |
◆ _isCellIntersected()
|
overrideprotectedvirtual |
Check if cell intersects the surface.
If mode==LevelSetIntersectionMode::FAST_FUZZY the method will compare the levelset value to tangent and bounding radius of a cell. If the value is smaller than the tangent radius LevelSetIntersectionStatus::TRUE is returned, if it is larger than the bounding radius LevelSetIntersectionStatus::FALSE is returned. If it is in-between LevelSetIntersectionStatus::CLOSE is returned.
If mode==LevelSetIntersectionMode::FAST_GUARANTEE_TRUE and the levelset value is smaller than the rangent radius LevelSetIntersectionStatus::TRUE is returned, otherwise LevelSetIntersectionStatus::FALSE.
If mode==LevelSetIntersectionMode::FAST_GURANTEE_FALSE and the levelset value is larger than the bounding radius LevelSetIntersectionStatus::FALSE is returned, otherwise LevelSetIntersectionStatus::TRUE.
If mode==LevelSetIntersectionMode::ACCURATE, the same checks of fuzzy mode are performed, however, in the cases where fuzzy mode would return CLOSE, an additional check on the intersection between the tangent plane at the projection point and the cell is performed. Errors of the method are related to the ratio of surface curvature over cell size.
The bounding sphere is the sphere with the minimum radius that contains all the cell vertices and has the center in the cell centroid.
The tangent sphere is a sphere having the center in the level centroid and tangent to the cell.
- Parameters
-
[in] id cell id [in] distance is the unsigned distance of the cell centroid from the zero-levelset iso-surface [in] mode describes the types of check that should be performed
- Returns
- indicator regarding intersection
Implements bitpit::LevelSetObject.
Definition at line 1806 of file levelSetSegmentationObject.cpp.
◆ _isInterfaceIntersected()
|
overrideprotectedvirtual |
Check if the specified interface intersects the zero-levelset iso-surface.
The iso-surface is considered planar. Calculate the intersection as a segment defined by two points and the part of the interface belonging to the subspace of negative level-set. If the interface is not intersected, an empty polygon is returned. The interface belonging to the possitive level-set subspace is returned if the "invert" argument is false.
The intersection is computed by considering the zero-levelset as a curved surface.
- Parameters
-
[in] id is the interface index [in] invert when false the part of the interface occupying the positive levelset area is returned [out] intersection If intersects, return the cutting segment. In case of a liner interface the intersection degenerates to a point which coincides with the begining and the ending of the segment [out] polygon is the polygon constructed by the interface intersection placed on the opposite subspace of the one pointed by the plane's normal
- Returns
- the level set status
Implements bitpit::LevelSetObject.
Reimplemented in bitpit::LevelSetSegmentationObject.
Definition at line 1840 of file levelSetSegmentationObject.cpp.
◆ addVTKOutputData()
|
overrideprotectedvirtual |
Add the VTK data associated with the specified field.
- Parameters
-
[in] field is the field [in] objectName is the name that will be associated with the object
Implements bitpit::LevelSetObject.
Definition at line 2175 of file levelSetSegmentationObject.cpp.
◆ createFieldCellCache()
|
overrideprotectedvirtual |
Create the cache that will be used for storing cell information of the specified field.
- Parameters
-
field is the field for which the caches will be registered cacheId is the id that will be associated with the cache, if a NULL_ID is specified the cache id will be assigned automatically
- Returns
- The id associated with the registered cache.
Implements bitpit::LevelSetObject.
Definition at line 1687 of file levelSetSegmentationObject.cpp.
◆ evalCellNormal()
std::array< double, 3 > bitpit::LevelSetSegmentationBaseObject::evalCellNormal | ( | long | id, |
bool | signedLevelSet ) const |
Evaluate the normal of the surface at the segment closest to the specified cell.
- Parameters
-
id is the id of the cell signedLevelSet controls if signed levelset function will be used
- Returns
- The normal of the surface at the segment closest to the specified cell.
Definition at line 1915 of file levelSetSegmentationObject.cpp.
◆ evalCellPart()
int bitpit::LevelSetSegmentationBaseObject::evalCellPart | ( | long | id | ) | const |
Evaluate the part associated with the segment closest to the specified cell.
- Parameters
-
id is the id of the cell
- Returns
- The part associated with the segment closest to the specified cell.
Definition at line 1751 of file levelSetSegmentationObject.cpp.
◆ evalCellSupport()
long bitpit::LevelSetSegmentationBaseObject::evalCellSupport | ( | long | id, |
double | searchRadius = AUTOMATIC_SEARCH_RADIUS ) const |
Evaluate the segment closest to the specified cell.
The result is cached only if there is a segment within the search range.
- Parameters
-
id is the id of the cell searchRadius all segments whose distance is greater than the search radius will not be considered for the evaluation of the support. If the search radius is set equal to the constant AUTOMATIC_SEARCH_RADIUS, the object will try to evaluate the optional search radius for the specified cell. The automatic evaluation of the search radius is possible only for a limited number of cases, when the automatic evaluation cannot be performed, an infinite search radius will be used.
- Returns
- The segment closest to the specified cell.
Definition at line 1963 of file levelSetSegmentationObject.cpp.
◆ evalCellSurface()
const SurfUnstructured & bitpit::LevelSetSegmentationBaseObject::evalCellSurface | ( | long | id | ) | const |
Evaluate the surface associated with the segment closest to the specified cell.
- Parameters
-
id is the id of the cell
- Returns
- The surface associated with the segment closest to the specified cell.
Definition at line 1740 of file levelSetSegmentationObject.cpp.
◆ evalNormal()
std::array< double, 3 > bitpit::LevelSetSegmentationBaseObject::evalNormal | ( | const std::array< double, 3 > & | point, |
bool | signedLevelSet ) const |
Evaluate the normal of the surface at the segment closest to the specified point.
- Parameters
-
point are the coordinates of the point signedLevelSet controls if signed levelset function will be used
- Returns
- The normal of the surface at the segment closest to the specified point.
Definition at line 2080 of file levelSetSegmentationObject.cpp.
◆ evalPart()
int bitpit::LevelSetSegmentationBaseObject::evalPart | ( | const std::array< double, 3 > & | point | ) | const |
Evaluate the part associated with the segment closest to the specified point.
- Parameters
-
point are the coordinates of the point
- Returns
- The part associated with the segment closest to the specified point.
Definition at line 2068 of file levelSetSegmentationObject.cpp.
◆ evalProjection()
void bitpit::LevelSetSegmentationBaseObject::evalProjection | ( | const std::array< double, 3 > & | point, |
bool | signedLevelSet, | ||
std::array< double, 3 > * | projectionPoint, | ||
std::array< double, 3 > * | projectionNormal ) const |
Evaluate the projection of the given point on the surface created based on the points representing the specified segment. The surface passes from these points and is verical to the normal vectors associated with them.
If the usage of an unsigned level set is requested, the orientation of the surface should be discarded in order to have a normal that is agnostic with respect to the two sides of the surface. If the sign is not cached, it should be evaluated from scratch and this will cause the projection evaluation to be performed twice.
- Parameters
-
[in] point are the coordinates of the given point [in] signedLevelSet controls if signed levelset function will be used [out] projectionPoint The coordinates of the projection point on the surface. [out] projectionNormal The coordinates of the norrmal to the surface vector on the surface projection point.
Definition at line 2131 of file levelSetSegmentationObject.cpp.
◆ evalSupport() [1/2]
long bitpit::LevelSetSegmentationBaseObject::evalSupport | ( | const std::array< double, 3 > & | point | ) | const |
Evaluate the closest segment to the specified point.
- Parameters
-
point are the coordinates of the point
- Returns
- The closest segment to the specified point.
Definition at line 2096 of file levelSetSegmentationObject.cpp.
◆ evalSupport() [2/2]
long bitpit::LevelSetSegmentationBaseObject::evalSupport | ( | const std::array< double, 3 > & | point, |
double | searchRadius ) const |
Evaluate the closest segment to the specified point.
- Parameters
-
point are the coordinates of the point searchRadius all segments whose distance is greater than the search radius will not be considered for the evaluation of the support
- Returns
- The closest segment to the specified point.
Definition at line 2109 of file levelSetSegmentationObject.cpp.
◆ evalSurface()
const SurfUnstructured & bitpit::LevelSetSegmentationBaseObject::evalSurface | ( | const std::array< double, 3 > & | point | ) | const |
Evaluate the surface associated with the segment closest to the specified point.
- Parameters
-
point are the coordinates of the point
- Returns
- The surface associated with the segment closest to the specified point.
Definition at line 2057 of file levelSetSegmentationObject.cpp.
◆ fillFieldCellCache() [1/3]
|
protected |
Fill the cache values associated with the given cell ids for the specified field.
- Parameters
-
field is the field whose cache will be filled cellIds are the ids of the cells whose values will be filled
Implements bitpit::LevelSetObject.
Definition at line 228 of file levelSetObject.cpp.
◆ fillFieldCellCache() [2/3]
|
overrideprotectedvirtual |
Fill the specified field cache of the given cell.
- Parameters
-
field is the field whose cache will be filled id is the id of the cell whose cache will be filled
Implements bitpit::LevelSetObject.
Definition at line 1720 of file levelSetSegmentationObject.cpp.
◆ fillFieldCellCache() [3/3]
|
protected |
Fill the cache value associated with the given cell ids for the specified field.
Depending on the cache mode and on the bulk evaluation mode the cached may not need to be filled for the specified cell. If the cache already contains a value for the specified cell, that value will be replaced with the given one.
- Parameters
-
[in] field is the field that should be evaluated [in] id is the id of the cell where the field should be evaluated [in] value is the value that will be added to the cell
Implements bitpit::LevelSetObject.
Definition at line 231 of file levelSetObject.tpp.
◆ flushVTKOutputData() [1/2]
|
overrideprotectedvirtual |
Write the specified field to the given stream.
- Parameters
-
[in] stream output stream [in] format is the format which must be used. Supported options are "ascii" or "appended". For "appended" type an unformatted binary stream must be used [in] field is the field that will be written
Implements bitpit::LevelSetObject.
Definition at line 2235 of file levelSetSegmentationObject.cpp.
◆ flushVTKOutputData() [2/2]
|
protected |
Write the VTK data associated with the specified field to the given stream.
Only data currently stored in the cache will be written, no new field data will be evaluated by the function.
- Parameters
-
[in] stream is the output stream [in] format is the format which must be used. Supported options are "ascii" or "appended". For "appended" type an unformatted binary stream must be used [in] field is the field [in] evaluator is the functor that should be used to evaluate the field [in] fallback is the functor that should be used to evaluate the field fallback value
Implements bitpit::LevelSetObject.
Definition at line 259 of file levelSetObject.tpp.
◆ getNormal() [1/2]
std::array< double, 3 > bitpit::LevelSetSegmentationBaseObject::getNormal | ( | const std::array< double, 3 > & | point | ) | const |
Get the normal of the surface at the segment closest to the specified point.
- Parameters
-
point are the coordinates of the point
- Returns
- The normal of the surface at the segment closest to the specified point.
Definition at line 2339 of file levelSetSegmentationObject.cpp.
◆ getNormal() [2/2]
std::array< double, 3 > bitpit::LevelSetSegmentationBaseObject::getNormal | ( | long | cellId | ) | const |
Get the normal of the surface at the segment closest to the specified cell.
- Parameters
-
cellId is the id of the cell
- Returns
- The normal of the surface at the segment closest to the specified cell.
Definition at line 2288 of file levelSetSegmentationObject.cpp.
◆ getPart() [1/2]
int bitpit::LevelSetSegmentationBaseObject::getPart | ( | const std::array< double, 3 > & | point | ) | const |
Get the part associated with the segment closest to the specified point.
- Parameters
-
point are the coordinates of the point
- Returns
- The part associated with the segment closest to the specified point.
Definition at line 2328 of file levelSetSegmentationObject.cpp.
◆ getPart() [2/2]
int bitpit::LevelSetSegmentationBaseObject::getPart | ( | long | cellId | ) | const |
Get the part associated with the segment closest to the specified cell.
- Parameters
-
cellId is the id of the cell
- Returns
- The part associated with the segment closest to the specified cell.
Definition at line 2277 of file levelSetSegmentationObject.cpp.
◆ getSupport() [1/2]
long bitpit::LevelSetSegmentationBaseObject::getSupport | ( | const std::array< double, 3 > & | point | ) | const |
Evaluate the closest segment to the specified point.
- Parameters
-
point are the coordinates of the point
- Returns
- The closest segment to the specified point.
Definition at line 2350 of file levelSetSegmentationObject.cpp.
◆ getSupport() [2/2]
long bitpit::LevelSetSegmentationBaseObject::getSupport | ( | long | cellId | ) | const |
Evaluate the segment closest to the specified cell.
- Parameters
-
cellId is the id of the cell
- Returns
- The segment closest to the specified cell.
Definition at line 2299 of file levelSetSegmentationObject.cpp.
◆ getSupportedFields()
|
overridevirtual |
Get the list of supported field.
- Returns
- The list of supported field.
Implements bitpit::LevelSetObject.
Definition at line 1704 of file levelSetSegmentationObject.cpp.
◆ getSurfaceFeatureSize() [1/2]
double bitpit::LevelSetSegmentationBaseObject::getSurfaceFeatureSize | ( | const std::array< double, 3 > & | point | ) | const |
Get the size of the segment closest to the specified point.
- Parameters
-
point are the coordinates of the point
- Returns
- The size of the segment closest to the specified point.
Definition at line 2361 of file levelSetSegmentationObject.cpp.
◆ getSurfaceFeatureSize() [2/2]
double bitpit::LevelSetSegmentationBaseObject::getSurfaceFeatureSize | ( | long | cellId | ) | const |
Get the size of the segment closest to the specified cell.
- Parameters
-
cellId is the id of the cell
- Returns
- The size of the segment closest to the specified cell.
Definition at line 2310 of file levelSetSegmentationObject.cpp.
◆ getVTKOutputFieldName()
|
overrideprotectedvirtual |
Get the name that will be used by the VTK writer for the specifed field.
- Parameters
-
[in] field is the field
- Returns
- The name that will be used by the VTK writer for the specifed field.
Implements bitpit::LevelSetObject.
Definition at line 2207 of file levelSetSegmentationObject.cpp.
◆ LevelSetObject() [1/3]
bitpit::LevelSetObject::LevelSetObject | ( | const LevelSetObject & | other | ) |
Copy constructor
- Parameters
-
[in] other is another object whose content is copied in this object
Implements bitpit::LevelSetObject.
Definition at line 149 of file levelSetObject.cpp.
◆ LevelSetObject() [2/3]
bitpit::LevelSetObject::LevelSetObject | ( | int | id | ) |
Constructor
- Parameters
-
[in] id id assigned to object
Implements bitpit::LevelSetObject.
Definition at line 148 of file levelSetObject.cpp.
◆ LevelSetObject() [3/3]
bitpit::LevelSetObject::LevelSetObject | ( | LevelSetObject && | other | ) |
Move constructor
- Parameters
-
[in] other is another object whose content is moved in this object
Implements bitpit::LevelSetObject.
Definition at line 150 of file levelSetObject.cpp.
Friends And Related Symbol Documentation
◆ LevelSetBooleanObject< LevelSetSegmentationBaseObject >
|
friend |
Definition at line 129 of file levelSetSegmentationObject.hpp.
Member Data Documentation
◆ AUTOMATIC_SEARCH_RADIUS
|
static |
If the search radius is set equal to the constant AUTOMATIC_SEARCH_RADIUS, the object will try to evaluate the optional search radius for the specified cell. The automatic evaluation of the search radius is possible only for a limited number of cases, when the automatic evaluation cannot be performed, an infinite search radius will be used.
Definition at line 129 of file levelSetSegmentationObject.hpp.
The documentation for this class was generated from the following files:
- src/levelset/levelSetSegmentationObject.hpp
- src/levelset/levelSetSegmentationObject.cpp
