TTK
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
ttkPlanarGraphLayout Class Reference

TTK VTK-filter that computes a planar graph layout. More...

#include <ttkPlanarGraphLayout.h>

Inheritance diagram for ttkPlanarGraphLayout:
ttkAlgorithm ttk::PlanarGraphLayout ttk::Debug ttk::Debug ttk::BaseClass ttk::BaseClass

Public Types

typedef ttkAlgorithm Superclass
 
- Public Types inherited from ttkAlgorithm
typedef vtkAlgorithm Superclass
 

Public Member Functions

virtual void SetUseSequences (bool)
 
virtual bool GetUseSequences ()
 
virtual void SetUseSizes (bool)
 
virtual bool GetUseSizes ()
 
virtual void SetUseBranches (bool)
 
virtual bool GetUseBranches ()
 
virtual void SetUseLevels (bool)
 
virtual bool GetUseLevels ()
 
virtual void SetOutputArrayName (const std::string &)
 
virtual std::string GetOutputArrayName ()
 
virtual void SetInputIsAMergeTree (bool)
 
virtual bool GetInputIsAMergeTree ()
 
virtual void SetBranchDecompositionPlanarLayout (bool)
 
virtual bool GetBranchDecompositionPlanarLayout ()
 
virtual void SetBranchSpacing (double)
 
virtual double GetBranchSpacing ()
 
virtual void SetImportantPairs (double)
 
virtual double GetImportantPairs ()
 
virtual void SetMaximumImportantPairs (int)
 
virtual int GetMaximumImportantPairs ()
 
virtual void SetMinimumImportantPairs (int)
 
virtual int GetMinimumImportantPairs ()
 
virtual void SetImportantPairsSpacing (double)
 
virtual double GetImportantPairsSpacing ()
 
virtual void SetNonImportantPairsSpacing (double)
 
virtual double GetNonImportantPairsSpacing ()
 
virtual void SetNonImportantPairsProximity (double)
 
virtual double GetNonImportantPairsProximity ()
 
virtual void SetExcludeImportantPairsLower (const std::string &)
 
virtual std::string GetExcludeImportantPairsLower ()
 
virtual void SetExcludeImportantPairsHigher (const std::string &)
 
virtual std::string GetExcludeImportantPairsHigher ()
 
virtual const char * GetClassName ()
 
virtual int IsA (const char *type)
 
- Public Member Functions inherited from ttkAlgorithm
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, const int orderArrayIdx=0, const bool enforceOrderArrayIdx=false)
 
ttk::SimplexIdGetIdentifierArrayPtr (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::TriangulationGetTriangulation (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.
 
- Public Member Functions inherited from ttk::Debug
 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)
 
- Public Member Functions inherited from ttk::BaseClass
 BaseClass ()
 
virtual ~BaseClass ()=default
 
int getThreadNumber () const
 
virtual int setThreadNumber (const int threadNumber)
 
virtual int setWrapper (const Wrapper *wrapper)
 

Static Public Member Functions

static ttkPlanarGraphLayoutNew ()
 
static int IsTypeOf (const char *type)
 
static ttkPlanarGraphLayoutSafeDownCast (vtkObject *o)
 
- Static Public Member Functions inherited from ttkAlgorithm
static ttkAlgorithmNew ()
 
static int IsTypeOf (const char *type)
 
static ttkAlgorithmSafeDownCast (vtkObject *o)
 
static std::string GetOrderArrayName (vtkDataArray *const array)
 
static vtkInformationIntegerKey * SAME_DATA_TYPE_AS_INPUT_PORT ()
 

Protected Member Functions

 ttkPlanarGraphLayout ()
 
 ~ttkPlanarGraphLayout () override
 
int FillInputPortInformation (int port, vtkInformation *info) override
 
int FillOutputPortInformation (int port, vtkInformation *info) override
 
int RequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
 
int planarGraphLayoutCall (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
 
int mergeTreePlanarLayoutCall (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
 
template<class dataType >
int mergeTreePlanarLayoutCallTemplate (vtkUnstructuredGrid *treeNodes, vtkUnstructuredGrid *treeArcs, vtkUnstructuredGrid *output)
 
- Protected Member Functions inherited from ttkAlgorithm
 ttkAlgorithm ()
 
 ~ttkAlgorithm () override
 
void MPIGhostPipelinePreconditioning (vtkDataSet *input)
 
void MPIPipelinePreconditioning (vtkDataSet *input, std::vector< int > &neighbors, 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)
 
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
 
- Protected Member Functions inherited from ttk::Debug
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)
 
- Protected Member Functions inherited from ttk::PlanarGraphLayout
 PlanarGraphLayout ()
 
 ~PlanarGraphLayout () override
 
template<typename ST , typename IT , typename CT >
int computeLayout (float *layout, const CT *connectivityList, const size_t &nPoints, const size_t &nEdges, const ST *pointSequences, const float *sizes, const IT *branches, const IT *levels) const
 
template<typename IT , typename CT >
int extractLevel (std::vector< size_t > &nodeIndices, std::vector< size_t > &edgeIndices, const CT *connectivityList, const size_t &nPoints, const size_t &nEdges, const IT &level, const IT *levels) const
 
template<typename ST , typename IT , typename CT >
int computeDotString (std::string &dotString, const CT *connectivityList, const ST *pointSequences, const float *sizes, const IT *branches, const std::vector< size_t > &nodeIndices, const std::vector< size_t > &edgeIndices, const std::map< ST, size_t > &sequenceValueToIndexMap) const
 
template<typename IT , typename CT >
int computeSlots (float *layout, const CT *connectivityList, const size_t &nPoints, const size_t &nEdges, const float *sizes, const IT *levels, const IT &nLevels) const
 
int computeDotLayout (float *layout, const std::vector< size_t > &nodeIndices, const std::string &dotString) const
 

Additional Inherited Members

- Protected Attributes inherited from ttkAlgorithm
float CompactTriangulationCacheSize {0.2f}
 
- Protected Attributes inherited from ttk::Debug
int debugLevel_
 
std::string debugMsgPrefix_
 
std::string debugMsgNamePrefix_
 
- Protected Attributes inherited from ttk::BaseClass
bool lastObject_
 
int threadNumber_
 
Wrapperwrapper_
 
- Static Protected Attributes inherited from ttk::Debug
static COMMON_EXPORTS debug::LineMode lastLineMode = ttk::debug::LineMode::NEW
 

Detailed Description

TTK VTK-filter that computes a planar graph layout.

Author
Jonas Lukasczyk (jl@jl.nosp@m.uk.d.nosp@m.e)
Date
01.12.2018

VTK wrapping code for the ttk::PlanarGraphLayout package.

This filter computes a planar graph layout of a vtkUnstructuredGrid. To improve the quality of the layout it is possible to pass additional field data to the algorithm:
1) Sequences: Points are positioned along the x-axis based on a sequence (e.g., time indices or scalar values). 1) Sizes: Points cover space on the y-axis based on their size. 1) Branches: Points with the same branch label are positioned on straight lines. 1) Levels: The layout of points with the same level label are computed individually and afterwards nested based on the level hierarchy. This makes it possible to draw nested graphs where each level is a layer of the resulting graph.

Related publication:
'Nested Tracking Graphs'. Jonas Lukasczyk, Gunther Weber, Ross Maciejewski, Christoph Garth, and Heike Leitte. Computer Graphics Forum (Special Issue, Proceedings Eurographics / IEEE Symposium on Visualization). Vol. 36. No. 3. 2017.

This filter can be used as any other VTK filter (for instance, by using the sequence of calls SetInputData(), Update(), GetOutput()).

See the related ParaView example state files for usage examples within a VTK pipeline.

Parameters
InputA vtkUnstructuredGrid that represents a graph.
OutputThe input vtkUnstructuredGrid with an additional point data field that records the computed layout. Note: to project the graph based on the comptued layout use either the ttkProjectFromField filter or the vtkCalculator.
See also
ttk::PlanarGraphLayout

Online examples:

Definition at line 62 of file ttkPlanarGraphLayout.h.

Member Typedef Documentation

◆ Superclass

Definition at line 145 of file ttkPlanarGraphLayout.h.

Constructor & Destructor Documentation

◆ ttkPlanarGraphLayout()

ttkPlanarGraphLayout::ttkPlanarGraphLayout ( )
protected

Definition at line 21 of file ttkPlanarGraphLayout.cpp.

◆ ~ttkPlanarGraphLayout()

ttkPlanarGraphLayout::~ttkPlanarGraphLayout ( )
overrideprotecteddefault

Member Function Documentation

◆ FillInputPortInformation()

int ttkPlanarGraphLayout::FillInputPortInformation ( int  port,
vtkInformation *  info 
)
overrideprotected

Definition at line 27 of file ttkPlanarGraphLayout.cpp.

◆ FillOutputPortInformation()

int ttkPlanarGraphLayout::FillOutputPortInformation ( int  port,
vtkInformation *  info 
)
overrideprotected

Definition at line 39 of file ttkPlanarGraphLayout.cpp.

◆ GetBranchDecompositionPlanarLayout()

virtual bool ttkPlanarGraphLayout::GetBranchDecompositionPlanarLayout ( )
virtual

◆ GetBranchSpacing()

virtual double ttkPlanarGraphLayout::GetBranchSpacing ( )
virtual

◆ GetClassName()

virtual const char * ttkPlanarGraphLayout::GetClassName ( )
virtual

Reimplemented from ttkAlgorithm.

◆ GetExcludeImportantPairsHigher()

virtual std::string ttkPlanarGraphLayout::GetExcludeImportantPairsHigher ( )
virtual

◆ GetExcludeImportantPairsLower()

virtual std::string ttkPlanarGraphLayout::GetExcludeImportantPairsLower ( )
virtual

◆ GetImportantPairs()

virtual double ttkPlanarGraphLayout::GetImportantPairs ( )
virtual

◆ GetImportantPairsSpacing()

virtual double ttkPlanarGraphLayout::GetImportantPairsSpacing ( )
virtual

◆ GetInputIsAMergeTree()

virtual bool ttkPlanarGraphLayout::GetInputIsAMergeTree ( )
virtual

◆ GetMaximumImportantPairs()

virtual int ttkPlanarGraphLayout::GetMaximumImportantPairs ( )
virtual

◆ GetMinimumImportantPairs()

virtual int ttkPlanarGraphLayout::GetMinimumImportantPairs ( )
virtual

◆ GetNonImportantPairsProximity()

virtual double ttkPlanarGraphLayout::GetNonImportantPairsProximity ( )
virtual

◆ GetNonImportantPairsSpacing()

virtual double ttkPlanarGraphLayout::GetNonImportantPairsSpacing ( )
virtual

◆ GetOutputArrayName()

virtual std::string ttkPlanarGraphLayout::GetOutputArrayName ( )
virtual

◆ GetUseBranches()

virtual bool ttkPlanarGraphLayout::GetUseBranches ( )
virtual

◆ GetUseLevels()

virtual bool ttkPlanarGraphLayout::GetUseLevels ( )
virtual

◆ GetUseSequences()

virtual bool ttkPlanarGraphLayout::GetUseSequences ( )
virtual

◆ GetUseSizes()

virtual bool ttkPlanarGraphLayout::GetUseSizes ( )
virtual

◆ IsA()

virtual int ttkPlanarGraphLayout::IsA ( const char *  type)
virtual

Reimplemented from ttkAlgorithm.

◆ IsTypeOf()

static int ttkPlanarGraphLayout::IsTypeOf ( const char *  type)
static

◆ mergeTreePlanarLayoutCall()

int ttkPlanarGraphLayout::mergeTreePlanarLayoutCall ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
protected

Definition at line 162 of file ttkPlanarGraphLayout.cpp.

◆ mergeTreePlanarLayoutCallTemplate()

template<class dataType >
int ttkPlanarGraphLayout::mergeTreePlanarLayoutCallTemplate ( vtkUnstructuredGrid *  treeNodes,
vtkUnstructuredGrid *  treeArcs,
vtkUnstructuredGrid *  output 
)
protected

Definition at line 124 of file ttkPlanarGraphLayout.cpp.

◆ New()

static ttkPlanarGraphLayout * ttkPlanarGraphLayout::New ( )
static

◆ planarGraphLayoutCall()

int ttkPlanarGraphLayout::planarGraphLayoutCall ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
protected

Definition at line 48 of file ttkPlanarGraphLayout.cpp.

◆ RequestData()

int ttkPlanarGraphLayout::RequestData ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
overrideprotected

Definition at line 176 of file ttkPlanarGraphLayout.cpp.

◆ SafeDownCast()

static ttkPlanarGraphLayout * ttkPlanarGraphLayout::SafeDownCast ( vtkObject *  o)
static

◆ SetBranchDecompositionPlanarLayout()

virtual void ttkPlanarGraphLayout::SetBranchDecompositionPlanarLayout ( bool  )
virtual

◆ SetBranchSpacing()

virtual void ttkPlanarGraphLayout::SetBranchSpacing ( double  )
virtual

◆ SetExcludeImportantPairsHigher()

virtual void ttkPlanarGraphLayout::SetExcludeImportantPairsHigher ( const std::string &  )
virtual

◆ SetExcludeImportantPairsLower()

virtual void ttkPlanarGraphLayout::SetExcludeImportantPairsLower ( const std::string &  )
virtual

◆ SetImportantPairs()

virtual void ttkPlanarGraphLayout::SetImportantPairs ( double  )
virtual

◆ SetImportantPairsSpacing()

virtual void ttkPlanarGraphLayout::SetImportantPairsSpacing ( double  )
virtual

◆ SetInputIsAMergeTree()

virtual void ttkPlanarGraphLayout::SetInputIsAMergeTree ( bool  )
virtual

◆ SetMaximumImportantPairs()

virtual void ttkPlanarGraphLayout::SetMaximumImportantPairs ( int  )
virtual

◆ SetMinimumImportantPairs()

virtual void ttkPlanarGraphLayout::SetMinimumImportantPairs ( int  )
virtual

◆ SetNonImportantPairsProximity()

virtual void ttkPlanarGraphLayout::SetNonImportantPairsProximity ( double  )
virtual

◆ SetNonImportantPairsSpacing()

virtual void ttkPlanarGraphLayout::SetNonImportantPairsSpacing ( double  )
virtual

◆ SetOutputArrayName()

virtual void ttkPlanarGraphLayout::SetOutputArrayName ( const std::string &  )
virtual

◆ SetUseBranches()

virtual void ttkPlanarGraphLayout::SetUseBranches ( bool  )
virtual

◆ SetUseLevels()

virtual void ttkPlanarGraphLayout::SetUseLevels ( bool  )
virtual

◆ SetUseSequences()

virtual void ttkPlanarGraphLayout::SetUseSequences ( bool  )
virtual

◆ SetUseSizes()

virtual void ttkPlanarGraphLayout::SetUseSizes ( bool  )
virtual

The documentation for this class was generated from the following files: