

Public Member Functions | |
LevelSetComplementObject (int id, const LevelSetSegmentationBaseObject *source) | |
LevelSetComplementObject< LevelSetSegmentationBaseObject > * | clone () const override |
![]() | |
bool | empty () const override |
const LevelSetSegmentationBaseObject * | getCellReferenceObject (long id) const override |
const LevelSetSegmentationBaseObject * | getReferenceObject (const std::array< double, 3 > &point) const override |
virtual const LevelSetSegmentationBaseObject * | getSourceObject () const |
std::vector< const LevelSetSegmentationBaseObject * > | getSourceObjects () const override |
![]() | |
int | getCellReferenceObjectId (long id) const override |
virtual const LevelSetSegmentationBaseObject * | getCellReferencePrimaryObject (long id) const |
int | getCellReferencePrimaryObjectId (long id) const override |
int | getPrimaryObjectId (long) const |
std::vector< int > | getPrimarySourceObjectIds () const override |
virtual std::vector< const LevelSetSegmentationBaseObject * > | getPrimarySourceObjects () const |
int | getReferenceObjectId (const std::array< double, 3 > &point) const override |
virtual const LevelSetSegmentationBaseObject * | getReferencePrimaryObject (const std::array< double, 3 > &point) const |
int | getReferencePrimaryObjectId (const std::array< double, 3 > &point) const override |
std::vector< int > | getSourceObjectIds () const override |
bool | isCellInNarrowBand (long id) const override |
bool | isInNarrowBand (const std::array< double, 3 > &point) const override |
bool | isPrimary () const override |
![]() | |
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) | |
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) |
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 |
LevelSetIntersectionStatus | isCellIntersected (long id, LevelSetIntersectionMode=LevelSetIntersectionMode::FAST_FUZZY) 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 |
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 |
Protected Member Functions | |
std::array< double, 3 > | _evalCellNormal (long id, bool signedLevelSet) const override |
int | _evalCellPart (long id) const override |
long | _evalCellSupport (long id, double searchRadius=AUTOMATIC_SEARCH_RADIUS) const override |
const SurfUnstructured & | _evalCellSurface (long id) const override |
int | _evalPart (const std::array< double, 3 > &point) const override |
void | _evalProjection (const std::array< double, 3 > &point, bool signedLevelSet, std::array< double, 3 > *projectionPoint, std::array< double, 3 > *projectionNormal) const override |
long | _evalSupport (const std::array< double, 3 > &point) const override |
long | _evalSupport (const std::array< double, 3 > &point, double searchRadius) const override |
const SurfUnstructured & | _evalSurface (const std::array< double, 3 > &point) const override |
![]() | |
LevelSetComplementBaseObject (int id, const LevelSetSegmentationBaseObject *source) | |
std::array< double, 3 > | _evalCellGradient (long id, bool signedLevelSet) const override |
short | _evalCellSign (long id) const override |
double | _evalCellValue (long id, bool signedLevelSet) const override |
std::array< double, 3 > | _evalGradient (const std::array< double, 3 > &point, bool signedLevelSet) const override |
short | _evalSign (const std::array< double, 3 > &point) const override |
double | _evalValue (const std::array< double, 3 > &point, bool signedLevelSet) const override |
void | fillCellPropagatedSignCache () override |
void | replaceSourceObject (const LevelSetSegmentationBaseObject *current, const LevelSetSegmentationBaseObject *updated) override |
![]() | |
LevelSetProxyObject (int) | |
void | fillCellLocationCache () override |
void | fillCellLocationCache (const std::vector< adaption::Info > &adaptionData) override |
virtual void | replaceSourceObject (const LevelSetSegmentationBaseObject *current, const LevelSetSegmentationBaseObject *updated)=0 |
![]() | |
LevelSetSegmentationBaseObject (int, const LevelSetSegmentationSurfaceInfo *surfaceInfo) | |
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 |
![]() | |
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) |
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) |
Additional Inherited Members | |
![]() | |
typedef LevelSetCachedKernel::CellCacheCollection | CellCacheCollection |
![]() | |
static BITPIT_PUBLIC_API const double | AUTOMATIC_SEARCH_RADIUS = -1 |
![]() | |
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
Definition at line 274 of file levelSetSegmentationObject.hpp.
Constructor & Destructor Documentation
◆ LevelSetComplementObject()
bitpit::LevelSetComplementObject< LevelSetSegmentationBaseObject >::LevelSetComplementObject | ( | int | id, |
const LevelSetSegmentationBaseObject * | source ) |
Constructor.
- Parameters
-
[in] id identifier of object [in] source pointer to source object
Definition at line 3535 of file levelSetSegmentationObject.cpp.
Member Function Documentation
◆ _evalCellNormal()
|
overrideprotectedvirtual |
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.
Implements bitpit::LevelSetSegmentationBaseObject.
Definition at line 3594 of file levelSetSegmentationObject.cpp.
◆ _evalCellPart()
|
overrideprotectedvirtual |
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 from bitpit::LevelSetSegmentationBaseObject.
Definition at line 3582 of file levelSetSegmentationObject.cpp.
◆ _evalCellSupport()
|
overrideprotectedvirtual |
Evaluate the segment closest to the specified cell.
- 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.
Implements bitpit::LevelSetSegmentationBaseObject.
Definition at line 3571 of file levelSetSegmentationObject.cpp.
◆ _evalCellSurface()
|
overrideprotectedvirtual |
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.
Implements bitpit::LevelSetSegmentationBaseObject.
Definition at line 3554 of file levelSetSegmentationObject.cpp.
◆ _evalPart()
|
overrideprotectedvirtual |
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 from bitpit::LevelSetSegmentationBaseObject.
Definition at line 3645 of file levelSetSegmentationObject.cpp.
◆ _evalProjection()
|
overrideprotectedvirtual |
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.
Implements bitpit::LevelSetSegmentationBaseObject.
Definition at line 3667 of file levelSetSegmentationObject.cpp.
◆ _evalSupport() [1/2]
|
overrideprotectedvirtual |
Evaluate the closest segment to the specified point.
- Parameters
-
point are the coordinates of the point
- Returns
- The closest segment to the specified point.
Implements bitpit::LevelSetSegmentationBaseObject.
Definition at line 3621 of file levelSetSegmentationObject.cpp.
◆ _evalSupport() [2/2]
|
overrideprotectedvirtual |
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.
Implements bitpit::LevelSetSegmentationBaseObject.
Definition at line 3634 of file levelSetSegmentationObject.cpp.
◆ _evalSurface()
|
overrideprotectedvirtual |
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.
Implements bitpit::LevelSetSegmentationBaseObject.
Definition at line 3610 of file levelSetSegmentationObject.cpp.
◆ clone()
|
overridevirtual |
Clones the object
- Returns
- pointer to cloned object
Implements bitpit::LevelSetObject.
Definition at line 3544 of file levelSetSegmentationObject.cpp.
The documentation for this class was generated from the following files:
- src/levelset/levelSetSegmentationObject.hpp
- src/levelset/levelSetSegmentationObject.cpp
