TTK
Loading...
Searching...
No Matches
ttkJacobiSet.h
Go to the documentation of this file.
1
54
55#pragma once
56
57// VTK Module
58#include <ttkJacobiSetModule.h>
59
60// ttk code includes
61#include <JacobiSet.h>
62#include <ttkAlgorithm.h>
63
64class TTKJACOBISET_EXPORT ttkJacobiSet : public ttkAlgorithm,
65 protected ttk::JacobiSet {
66public:
67 static ttkJacobiSet *New();
68 vtkTypeMacro(ttkJacobiSet, ttkAlgorithm);
69
70 vtkGetMacro(ForceInputOffsetScalarField, bool);
71 vtkSetMacro(ForceInputOffsetScalarField, bool);
72
73 vtkSetMacro(EdgeIds, bool);
74 vtkGetMacro(EdgeIds, bool);
75
76 vtkSetMacro(VertexScalars, bool);
77 vtkGetMacro(VertexScalars, bool);
78
79protected:
81
82 int FillInputPortInformation(int port, vtkInformation *info) override;
83 int FillOutputPortInformation(int port, vtkInformation *info) override;
84 int RequestData(vtkInformation *request,
85 vtkInformationVector **inputVector,
86 vtkInformationVector *outputVector) override;
87
88 template <class dataTypeU, class dataTypeV>
89 int dispatch(const dataTypeU *const uField,
90 const dataTypeV *const vField,
91 ttk::Triangulation *const triangulation);
92
93private:
94 bool ForceInputOffsetScalarField{false};
95 bool EdgeIds{false}, VertexScalars{false};
96 std::vector<std::pair<ttk::SimplexId, ttk::SimplexId>> edgeList_{};
97 // for each edge, one skeleton of its triangle fan
98 std::vector<std::vector<std::pair<ttk::SimplexId, ttk::SimplexId>>>
99 edgeFanLinkEdgeList_{};
100 // for each edge, the one skeleton of its triangle fan
101 std::vector<std::vector<ttk::SimplexId>> edgeFans_{};
102 std::vector<std::pair<ttk::SimplexId, char>> jacobiSet_{};
103 std::vector<char> isPareto_{};
104};
Baseclass of all VTK filters that wrap ttk modules.
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
TTK VTK-filter that computes the Jacobi set of a bivariate volumetric data-set.
static ttkJacobiSet * New()
TTK processing package for the computation of the Jacobi set of bivariate volumetric data.
Definition JacobiSet.h:39
Triangulation is a class that provides time and memory efficient traversal methods on triangulations ...