|
void | SetEpsilon1UseFarthestSaddle (bool epsilon1UseFarthestSaddle) |
|
bool | GetEpsilon1UseFarthestSaddle () |
|
void | SetEpsilonTree1 (double epsilonTree1) |
|
double | SetEpsilonTree1 () |
|
void | SetEpsilon2Tree1 (double epsilon2Tree1) |
|
double | SetEpsilon2Tree1 () |
|
void | SetEpsilon3Tree1 (double epsilon3Tree1) |
|
double | SetEpsilon3Tree1 () |
|
void | SetPersistenceThreshold (double persistenceThreshold) |
|
double | SetPersistenceThreshold () |
|
void | SetUseMinMaxPair (bool useMinMaxPair) |
|
bool | SetUseMinMaxPair () |
|
void | SetDeleteMultiPersPairs (bool doDelete) |
|
bool | SetDeleteMultiPersPairs () |
|
void | SetAssignmentSolver (int assignmentSolver) |
|
int | GetAssignmentSolver () |
|
void | SetRemovalPercentage (double removePerc) |
|
double | GetRemovalPercentage () |
|
void | SetUseL2Distance (double useL2) |
|
double | GetUseL2Distance () |
|
void | SetUseCustomTimeVariable (bool useCustomTime) |
|
bool | GetUseCustomTimeVariable () |
|
void | SetTimeVariableName (int idx, int port, int connection, int fieldAssociation, const char *name) |
|
virtual std::string | GetTimeVariableName () |
|
virtual const char * | GetClassName () |
|
virtual int | IsA (const char *type) |
|
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) |
|
|
| ttkMergeTreeTemporalReduction () |
|
| ~ttkMergeTreeTemporalReduction () override |
|
int | FillInputPortInformation (int port, vtkInformation *info) override |
|
int | FillOutputPortInformation (int port, vtkInformation *info) override |
|
int | RequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override |
|
template<class dataType > |
int | run (vtkInformationVector *outputVector, std::vector< vtkSmartPointer< vtkMultiBlockDataSet > > &inputTrees) |
|
template<class dataType > |
int | runCompute (std::vector< vtkSmartPointer< vtkMultiBlockDataSet > > &inputTrees) |
|
template<class dataType > |
int | runOutput (vtkInformationVector *outputVector, std::vector< vtkSmartPointer< vtkMultiBlockDataSet > > &inputTrees) |
|
| 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) |
|
| MergeTreeTemporalReduction () |
|
void | setRemovalPercentage (double rs) |
|
void | setUseL2Distance (bool useL2) |
|
template<class dataType > |
dataType | computeL2Distance (std::vector< dataType > &img1, std::vector< dataType > &img2, bool emptyFieldDistance=false) |
|
template<class dataType > |
std::vector< dataType > | computeL2Barycenter (std::vector< dataType > &img1, std::vector< dataType > &img2, double alpha) |
|
template<class dataType > |
dataType | computeDistance (ftm::MergeTree< dataType > &mTree1, ftm::MergeTree< dataType > &mTree2, bool emptyTreeDistance=false) |
|
template<class dataType > |
ftm::MergeTree< dataType > | computeBarycenter (ftm::MergeTree< dataType > &mTree1, ftm::MergeTree< dataType > &mTree2, double alpha) |
|
double | computeAlpha (int index1, int middleIndex, int index2) |
|
template<class dataType > |
void | temporalSubsampling (std::vector< ftm::MergeTree< dataType > > &mTrees, std::vector< int > &removed, std::vector< ftm::MergeTree< dataType > > &barycenters, std::vector< std::vector< dataType > > &barycentersL2) |
|
template<class dataType > |
std::vector< int > | execute (std::vector< ftm::MergeTree< dataType > > &mTrees, std::vector< double > &emptyTreeDistances, std::vector< ftm::MergeTree< dataType > > &allMT) |
|
| MergeTreeBase () |
|
void | setAssignmentSolver (int assignmentSolver) |
|
void | setEpsilon1UseFarthestSaddle (bool b) |
|
void | setEpsilonTree1 (double epsilon) |
|
void | setEpsilonTree2 (double epsilon) |
|
void | setEpsilon2Tree1 (double epsilon) |
|
void | setEpsilon2Tree2 (double epsilon) |
|
void | setEpsilon3Tree1 (double epsilon) |
|
void | setEpsilon3Tree2 (double epsilon) |
|
void | setPersistenceThreshold (double pt) |
|
void | setParallelize (bool para) |
|
void | setNodePerTask (int npt) |
|
void | setBranchDecomposition (bool useBD) |
|
void | setNormalizedWasserstein (bool normalizedWasserstein) |
|
void | setKeepSubtree (bool keepSubtree) |
|
void | setNonMatchingWeight (double weight) |
|
void | setBarycenterMergeTree (bool imt) |
|
void | setDistanceSquaredRoot (bool distanceSquaredRoot) |
|
void | setUseMinMaxPair (bool useMinMaxPair) |
|
void | setDeleteMultiPersPairs (bool deleteMultiPersPairsT) |
|
void | setCleanTree (bool clean) |
|
void | setIsPersistenceDiagram (bool isPD) |
|
std::vector< std::vector< int > > | getTreesNodeCorr () |
|
double | mixDistancesMinMaxPairWeight (bool isFirstInput) |
|
double | mixDistancesWeight (bool isFirstInput) |
|
template<class dataType > |
double | mixDistances (dataType distance1, dataType distance2) |
|
template<class dataType > |
void | mixDistancesMatrix (std::vector< std::vector< dataType > > &distanceMatrix, std::vector< std::vector< dataType > > &distanceMatrix2) |
|
template<class dataType > |
void | mergeSaddle (ftm::FTMTree_MT *tree, double epsilon, std::vector< std::vector< ftm::idNode > > &treeNodeMerged, bool mergeByPersistence=false) |
|
template<class dataType > |
void | persistenceMerging (ftm::FTMTree_MT *tree, double epsilon2, double epsilon3=100) |
|
template<class dataType > |
void | keepMostImportantPairs (ftm::FTMTree_MT *tree, int n, bool useBD) |
|
template<class dataType > |
void | persistenceThresholding (ftm::FTMTree_MT *tree, double persistenceThresholdT, std::vector< ftm::idNode > &deletedNodes) |
|
template<class dataType > |
void | persistenceThresholding (ftm::FTMTree_MT *tree, std::vector< ftm::idNode > &deletedNodes) |
|
template<class dataType > |
void | persistenceThresholding (ftm::FTMTree_MT *tree, double persistenceThresholdT) |
|
template<class dataType > |
void | persistenceThresholding (ftm::FTMTree_MT *tree) |
|
template<class dataType > |
void | verifyOrigins (ftm::FTMTree_MT *tree) |
|
template<class dataType > |
void | preprocessTree (ftm::FTMTree_MT *tree, bool deleteInconsistentNodes=true) |
|
template<class dataType > |
ftm::FTMTree_MT * | computeBranchDecomposition (ftm::FTMTree_MT *tree, std::vector< std::vector< ftm::idNode > > &treeNodeMerged) |
|
template<class dataType > |
void | dontUseMinMaxPair (ftm::FTMTree_MT *tree) |
|
void | verifyPairsTree (ftm::FTMTree_MT *tree) |
|
template<class dataType > |
void | deleteMultiPersPairs (ftm::FTMTree_MT *tree, bool useBD) |
|
template<class dataType > |
void | preprocessingPipeline (ftm::MergeTree< dataType > &mTree, double epsilonTree, double epsilon2Tree, double epsilon3Tree, bool branchDecompositionT, bool useMinMaxPairT, bool cleanTreeT, double persistenceThreshold, std::vector< int > &nodeCorr, bool deleteInconsistentNodes=true) |
|
template<class dataType > |
void | preprocessingPipeline (ftm::MergeTree< dataType > &mTree, double epsilonTree, double epsilon2Tree, double epsilon3Tree, bool branchDecompositionT, bool useMinMaxPairT, bool cleanTreeT, std::vector< int > &nodeCorr, bool deleteInconsistentNodes=true) |
|
void | reverseNodeCorr (ftm::FTMTree_MT *tree, std::vector< int > &nodeCorr) |
|
template<class dataType > |
void | mtFlattening (ftm::MergeTree< dataType > &mt) |
|
template<class dataType > |
void | mtsFlattening (std::vector< ftm::MergeTree< dataType > > &mts) |
|
double | getSizeLimitMetric (std::vector< ftm::FTMTree_MT * > &trees) |
|
template<class dataType > |
void | copyMinMaxPair (ftm::MergeTree< dataType > &mTree1, ftm::MergeTree< dataType > &mTree2, bool setOrigins=false) |
|
template<class dataType > |
std::tuple< int, dataType > | fixMergedRootOrigin (ftm::FTMTree_MT *tree) |
|
template<class dataType > |
void | branchDecompositionToTree (ftm::FTMTree_MT *tree) |
|
template<class dataType > |
void | putBackMergedNodes (ftm::FTMTree_MT *tree) |
|
template<class dataType > |
void | postprocessingPipeline (ftm::FTMTree_MT *tree) |
|
template<class dataType > |
void | convertBranchDecompositionMatching (ftm::FTMTree_MT *tree1, ftm::FTMTree_MT *tree2, std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > &outputMatching) |
|
template<class dataType > |
void | convertBranchDecompositionMatching (ftm::FTMTree_MT *tree1, ftm::FTMTree_MT *tree2, std::vector< std::tuple< ftm::idNode, ftm::idNode > > &outputMatching) |
|
template<class dataType > |
void | identifyRealMatching (ftm::FTMTree_MT *tree1, ftm::FTMTree_MT *tree2, std::vector< std::tuple< ftm::idNode, ftm::idNode > > &outputMatching, std::vector< std::tuple< ftm::idNode, ftm::idNode, bool > > &realMatching) |
|
template<class dataType > |
dataType | computeDistance (dataType x1, dataType x2, dataType y1, dataType y2, double power=2) |
|
template<class dataType > |
dataType | deleteCost (ftm::FTMTree_MT *tree, ftm::idNode nodeId) |
|
template<class dataType > |
dataType | insertCost (ftm::FTMTree_MT *tree, ftm::idNode nodeId) |
|
template<class dataType > |
dataType | relabelCostOnly (ftm::FTMTree_MT *tree1, ftm::idNode nodeId1, ftm::FTMTree_MT *tree2, ftm::idNode nodeId2) |
|
template<class dataType > |
dataType | relabelCost (ftm::FTMTree_MT *tree1, ftm::idNode nodeId1, ftm::FTMTree_MT *tree2, ftm::idNode nodeId2) |
|
void | getParamNames (std::vector< std::string > ¶mNames) |
|
double | getParamValueFromName (std::string ¶mName) |
|
void | setParamValueFromName (std::string ¶mName, double value) |
|
void | getTreesStats (std::vector< ftm::FTMTree_MT * > &trees, std::array< double, 3 > &stats) |
|
void | printTreesStats (std::vector< ftm::FTMTree_MT * > &trees) |
|
template<class dataType > |
void | printTreesStats (std::vector< ftm::MergeTree< dataType > > &trees) |
|
template<class dataType > |
void | printTableVector (std::vector< std::vector< dataType > > &table) |
|
template<class dataType > |
void | printTable (dataType *table, int nRows, int nCols) |
|
void | printMatching (std::vector< MatchingType > &matchings) |
|
void | printMatching (std::vector< std::tuple< ftm::idNode, ftm::idNode, double > > &matchings) |
|
void | printMatching (std::vector< std::tuple< ftm::idNode, ftm::idNode > > &matchings) |
|
template<class dataType > |
void | printPairs (std::vector< std::tuple< SimplexId, SimplexId, dataType > > &treePairs) |
|
template<class dataType > |
void | printOutputMatching (std::vector< std::tuple< ftm::idNode, ftm::idNode > > &outputMatching, ftm::FTMTree_MT *tree1, ftm::FTMTree_MT *tree2, bool computeCosts=true) |
|
TTK VTK-filter that wraps the ttk::MergeTreeTemporalReduction module.
- Author
- Mathieu Pont (mathi.nosp@m.eu.p.nosp@m.ont@l.nosp@m.ip6..nosp@m.fr)
- Date
- 2021.
This VTK filter uses the ttk::MergeTreeTemporalReduction module to compute a temporal reduction of a sequence of merge trees.
- Parameters
-
Input | vtkMultiBlockDataSet Input trees |
Output | vtkMultiBlockDataSet Key frames. |
Output | vtkTable Interpolation coefficients. |
This filter can be used as any other VTK filter (for instance, by using the sequence of calls SetInputData(), Update(), GetOutputDataObject()).
See the related ParaView example state files for usage examples within a VTK pipeline.
- See also
- ttk::MergeTreeTemporalReduction
-
ttkAlgorithm
Related publication
"Wasserstein Distances, Geodesics and Barycenters of Merge Trees"
Mathieu Pont, Jules Vidal, Julie Delon, Julien Tierny.
Proc. of IEEE VIS 2021.
IEEE Transactions on Visualization and Computer Graphics, 2021
Online examples:
Definition at line 50 of file ttkMergeTreeTemporalReduction.h.