TTK
|
This filter computes a signed distance field given a surface in input. More...
#include <ttkSignedDistanceField.h>
Public Types | |
typedef ttkAlgorithm | Superclass |
![]() | |
typedef vtkAlgorithm | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
virtual void | SetExpandBox (bool) |
virtual bool | GetExpandBox () |
virtual void | SetBackend (int) |
virtual int | GetBackend () |
virtual void | SetFastMarchingOrder (int) |
virtual int | GetFastMarchingOrder () |
vtkImageData * | GetOutput () |
virtual void | SetSamplingDimensions (int, int, int) |
virtual void | SetSamplingDimensions (int[3]) |
virtual int * | GetSamplingDimensions () |
virtual void | GetSamplingDimensions (int &, int &, int &) |
virtual void | GetSamplingDimensions (int[3]) |
![]() | |
void | UpdateThreadNumber () |
void | SetThreadNumber (int threadNumber) |
void | SetUseAllCores (bool useAllCores) |
void | SetDebugLevel (int debugLevel) |
void | SetCompactTriangulationCacheSize (float cacheSize) |
vtkDataArray * | GetOptionalArray (const bool &enforceArrayIndex, const int &arrayIndex, const std::string &arrayName, vtkDataSet *const inputData, const int &inputPort=0) |
vtkDataArray * | GetOrderArray (vtkDataSet *const inputData, const int scalarArrayIdx, ttk::Triangulation *triangulation, const bool getGlobalOrder=false, const int orderArrayIdx=0, const bool enforceOrderArrayIdx=false) |
vtkDataArray * | checkForGlobalAndComputeOrderArray (vtkDataSet *const inputData, vtkDataArray *scalarArray, const int scalarArrayIdx, const bool getGlobalOrder, vtkDataArray *orderArray, ttk::Triangulation *triangulation, const bool enforceOrderArrayIdx) |
vtkDataArray * | ComputeOrderArray (vtkDataSet *const inputData, vtkDataArray *scalarArray, const int scalarArrayIdx, const bool getGlobalOrder, vtkDataArray *oldOrderArray, ttk::Triangulation *triangulation) |
ttk::SimplexId * | GetIdentifierArrayPtr (const bool &enforceArrayIndex, const int &arrayIndex, const std::string &arrayName, vtkDataSet *const inputData, std::vector< ttk::SimplexId > &spareStorage, const int inputPort=0, const bool printErr=true) |
ttk::Triangulation * | GetTriangulation (vtkDataSet *dataSet) |
int | ProcessRequest (vtkInformation *request, vtkInformationVector **inputVectors, vtkInformationVector *outputVector) override |
vtkDataSet * | GetOutput () |
vtkDataSet * | GetOutput (int) |
void | SetInputData (vtkDataSet *) |
void | SetInputData (int, vtkDataSet *) |
void | AddInputData (vtkDataSet *) |
void | AddInputData (int, vtkDataSet *) |
template<typename inputType > | |
int | checkEmptyMPIInput (inputType *input) |
This method tests whether the input is a nullptr. If the computation is being done on multiple processes, it is possible that the domain of one process or more is empty, but not others, therefore in that particular case the rest of the filter will not be computed but an error message will not be sent. | |
![]() | |
Debug () | |
~Debug () override | |
virtual int | setDebugLevel (const int &debugLevel) |
int | setWrapper (const Wrapper *wrapper) override |
int | printMsg (const std::string &msg, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsg (const std::vector< std::string > &msgs, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printErr (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const |
int | printWrn (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const |
int | printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const double &memory, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const double &progress, const double &time, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const double &progress, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const double &progress, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsg (const std::vector< std::vector< std::string > > &rows, const debug::Priority &priority=debug::Priority::INFO, const bool hasHeader=true, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsg (const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const |
int | printMsg (const debug::Separator &separator, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsg (const std::string &msg, const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const |
void | setDebugMsgPrefix (const std::string &prefix) |
![]() | |
BaseClass () | |
virtual | ~BaseClass ()=default |
int | getThreadNumber () const |
virtual int | setThreadNumber (const int threadNumber) |
Static Public Member Functions | |
static ttkSignedDistanceField * | New () |
static int | IsTypeOf (const char *type) |
static ttkSignedDistanceField * | SafeDownCast (vtkObject *o) |
![]() | |
static ttkAlgorithm * | New () |
static int | IsTypeOf (const char *type) |
static ttkAlgorithm * | SafeDownCast (vtkObject *o) |
static std::string | GetOrderArrayName (vtkDataArray *const array) |
static vtkInformationIntegerKey * | SAME_DATA_TYPE_AS_INPUT_PORT () |
Protected Member Functions | |
ttkSignedDistanceField () | |
vtkTypeBool | ProcessRequest (vtkInformation *, vtkInformationVector **, vtkInformationVector *) override |
int | RequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override |
int | RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *) override |
int | RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *) override |
int | FillInputPortInformation (int, vtkInformation *) override |
int | FillOutputPortInformation (int, vtkInformation *) override |
void | computeOutputInformation (vtkInformationVector **inputVector) |
![]() | |
ttkAlgorithm () | |
~ttkAlgorithm () override | |
void | MPIGhostPipelinePreconditioning (vtkDataSet *input) |
void | MPIPipelinePreconditioning (vtkDataSet *input, std::vector< int > &neighbors, std::map< int, int > &neighToId, ttk::Triangulation *triangulation=nullptr) |
bool | checkGlobalIdValidity (ttk::LongSimplexId *globalIds, ttk::SimplexId simplexNumber, unsigned char *ghost, int *rankArray) |
int | GenerateGlobalIds (vtkDataSet *input, std::unordered_map< ttk::SimplexId, ttk::SimplexId > &vertGtoL, std::vector< int > &neighborRanks, std::map< int, int > &neighborsToId) |
void | MPITriangulationPreconditioning (ttk::Triangulation *triangulation, vtkDataSet *input) |
virtual int | RequestDataObject (vtkInformation *request, vtkInformationVector **inputVectors, vtkInformationVector *outputVector) |
virtual int | RequestInformation (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestUpdateTime (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestUpdateTimeDependentInformation (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestUpdateExtent (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestDataNotGenerated (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestData (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
int | FillInputPortInformation (int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override |
int | FillOutputPortInformation (int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override |
![]() | |
int | printMsgInternal (const std::string &msg, const std::string &right, const std::string &filler, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const |
int | printMsgInternal (const std::string &msg, const debug::Priority &priority, const debug::LineMode &lineMode, std::ostream &stream=std::cout) const |
int | welcomeMsg (std::ostream &stream) |
![]() | |
template<typename triangulationType > | |
void | findOutsideVertices (const SimplexId vertexId, triangulationType *const boundingTriangulation, const std::vector< bool > &vertexIntersection, int *const isInterior) const |
int | getNeighbor (unsigned int vertexId, unsigned int dim, int dir) const |
template<typename dataType > | |
void | fastMarching (std::vector< bool > &vertexIntersection, dataType *const distances, int *const isInterior) const |
template<typename dataType > | |
void | fastMarchingIterativeNode (std::vector< VertexMarchingType > &vertexType, dataType *const distances, int *const isInterior) const |
template<typename dataType > | |
void | fastMarchingIterativeBand (std::vector< VertexMarchingType > &vertexType, dataType *const distances, int *const isInterior) const |
template<typename dataType > | |
dataType | fastMarchingUpdatePoint (unsigned int vertexId, dataType *const distances, int *const isInterior, std::vector< VertexMarchingType > &vertexType) const |
template<typename dataType > | |
dataType | fastMarchingUpdatePointOrderTwo (unsigned int vertexId, dataType *const distances, int *const isInterior, std::vector< VertexMarchingType > &vertexType) const |
template<typename dataType > | |
dataType | fastMarchingUpdatePointOrderOne (unsigned int vertexId, dataType *const distances, int *const isInterior, std::vector< VertexMarchingType > &vertexType) const |
template<typename dataType > | |
bool | fastMarchingSolveQuadratic (unsigned int vertexId, dataType a, dataType b, dataType c, int *const isInterior, dataType &out) const |
SignedDistanceField () | |
template<typename triangulationType , typename triangulationType2 > | |
int | execute (float *const outputScalars, triangulationType *const triangulation, triangulationType2 *const boundingTriangulation, int *const edgeCrossing, int *const isInterior) const |
int | preconditionTriangulation (AbstractTriangulation *triangulation) const |
Protected Attributes | |
int | SamplingDimensions [3] |
bool | ExpandBox = true |
int | Backend = 0 |
int | FastMarchingOrder = 1 |
![]() | |
float | CompactTriangulationCacheSize {0.2f} |
![]() | |
int | debugLevel_ |
std::string | debugMsgPrefix_ |
std::string | debugMsgNamePrefix_ |
![]() | |
bool | lastObject_ |
int | threadNumber_ |
Wrapper * | wrapper_ |
![]() | |
unsigned int | xResolution_ {1} |
unsigned int | yResolution_ {1} |
unsigned int | zResolution_ {1} |
std::array< double, 3 > | spacing_ {1.0, 1.0, 1.0} |
std::array< double, 3 > | invSpacingSquared_ {1.0, 1.0, 1.0} |
bool | expandBox_ = true |
int | backend_ = 0 |
int | fastMarchingOrder_ = 1 |
Additional Inherited Members | |
![]() | |
enum class | VertexMarchingType { FAR , NARROW , FROZEN } |
![]() | |
static COMMON_EXPORTS debug::LineMode | lastLineMode = ttk::debug::LineMode::NEW |
This filter computes a signed distance field given a surface in input.
It implements three backends (accelerated with a BVH data structure):
J.A. Sethian. A Fast Marching Level Set Method for Monotonically Advancing Fronts, Proc. Natl. Acad. Sci., 93, 4, pp.1591–1595, 1996
Online examples:
Definition at line 48 of file ttkSignedDistanceField.h.
Definition at line 53 of file ttkSignedDistanceField.h.
|
protected |
Definition at line 17 of file ttkSignedDistanceField.cpp.
|
protected |
Definition at line 105 of file ttkSignedDistanceField.cpp.
|
overrideprotected |
Definition at line 85 of file ttkSignedDistanceField.cpp.
|
overrideprotected |
Definition at line 95 of file ttkSignedDistanceField.cpp.
|
virtual |
|
virtual |
Reimplemented from ttkAlgorithm.
|
virtual |
|
virtual |
vtkImageData * ttkSignedDistanceField::GetOutput | ( | ) |
Get the output data for this algorithm.
Definition at line 23 of file ttkSignedDistanceField.cpp.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Reimplemented from ttkAlgorithm.
|
static |
|
static |
|
overrideprotected |
Definition at line 29 of file ttkSignedDistanceField.cpp.
|
overrideprotected |
Definition at line 144 of file ttkSignedDistanceField.cpp.
|
overrideprotected |
Definition at line 51 of file ttkSignedDistanceField.cpp.
|
overrideprotected |
Definition at line 67 of file ttkSignedDistanceField.cpp.
|
static |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Set/Get sampling dimension along each axis. Default will be [10,10,10]
|
virtual |
|
protected |
Definition at line 100 of file ttkSignedDistanceField.h.
|
protected |
Definition at line 99 of file ttkSignedDistanceField.h.
|
protected |
Definition at line 101 of file ttkSignedDistanceField.h.
|
protected |
Definition at line 98 of file ttkSignedDistanceField.h.