TTK
|
TTK processing package that efficiently computes the Reeb space of bivariate volumetric data. More...
#include <ReebSpace.h>
Classes | |
struct | Sheet0 |
struct | Sheet1 |
struct | Sheet2 |
struct | Sheet3 |
Public Types | |
enum class | SimplificationCriterion { domainVolume , rangeArea , hyperVolume } |
Public Member Functions | |
ReebSpace () | |
bool | empty () const |
template<class dataTypeU , class dataTypeV , typename triangulationType > | |
int | execute (const dataTypeU *const uField, const dataTypeV *const vField, const triangulationType &triangulation) |
const Sheet0 * | get0sheet (const SimplexId &sheetId) const |
const Sheet1 * | get1sheet (const SimplexId &sheetId) const |
const Sheet2 * | get2sheet (const SimplexId &sheetId) const |
const Sheet3 * | get3sheet (const SimplexId &sheetId) const |
const std::vector< SimplexId > * | get0sheetSegmentation () const |
const std::vector< SimplexId > * | get1sheetSegmentation () const |
const std::vector< SimplexId > * | get3sheetVertexSegmentation () const |
const std::vector< SimplexId > * | get3sheetTetSegmentation () const |
const std::vector< char > * | getEdgeTypes () const |
const std::vector< FiberSurface::Vertex > * | getFiberSurfaceVertices () const |
int | getJacobi2Edge (const SimplexId &jacobiEdgeId) const |
SimplexId | getNumberOf2sheets () const |
template<class dataTypeU , class dataTypeV > | |
int | perturb (const dataTypeU *const uField, const dataTypeV *const vField, const dataTypeU &uEpsilon=Geometry::powIntTen(-DBL_DIG), const dataTypeV &vEpsilon=Geometry::powIntTen(-DBL_DIG)) |
void | setExpand3Sheets (const bool &onOff) |
bool | setRangeDrivenOctree (const bool &onOff) |
void | setSosOffsetsU (const SimplexId *const sosOffsetsU) |
void | setSosOffsetsV (const SimplexId *const sosOffsetsV) |
void | setTetNumber (const SimplexId &tetNumber) |
void | setVertexNumber (const SimplexId &vertexNumber) |
int | preconditionTriangulation (AbstractTriangulation *const triangulation) |
template<class dataTypeU , class dataTypeV , typename triangulationType > | |
int | simplify (const dataTypeU *const uField, const dataTypeV *const vField, const triangulationType &triangulation, const double &simplificationThreshold, const SimplificationCriterion &criterion=SimplificationCriterion::rangeArea) |
![]() | |
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) |
Protected Member Functions | |
template<typename triangulationType > | |
int | compute1sheetsOnly (const std::vector< std::pair< SimplexId, char > > &jacobiSet, std::vector< std::pair< SimplexId, SimplexId > > &jacobiSetClassification, const triangulationType &triangulation) |
template<typename triangulationType > | |
int | compute1sheets (const std::vector< std::pair< SimplexId, char > > &jacobiSet, std::vector< std::pair< SimplexId, SimplexId > > &jacobiSetClassification, const triangulationType &triangulation) |
template<class dataTypeU , class dataTypeV , typename triangulationType > | |
int | compute2sheets (const std::vector< std::pair< SimplexId, SimplexId > > &jacobiEdges, const dataTypeU *const uField, const dataTypeV *const vField, const triangulationType &triangulation) |
template<class dataTypeU , class dataTypeV , typename triangulationType > | |
int | compute2sheetChambers (const dataTypeU *const uField, const dataTypeV *const vField, const triangulationType &triangulation) |
template<typename triangulationType > | |
int | compute3sheet (const SimplexId &vertexId, const std::vector< std::vector< std::array< SimplexId, 3 > > > &tetTriangles, const triangulationType &triangulation) |
template<typename triangulationType > | |
int | compute3sheets (std::vector< std::vector< std::array< SimplexId, 3 > > > &tetTriangles, const triangulationType &triangulation) |
template<class dataTypeU , class dataTypeV , typename triangulationType > | |
int | computeGeometricalMeasures (Sheet3 &sheet, const dataTypeU *const uField, const dataTypeV *const vField, const triangulationType &triangulation) |
int | connect3sheetTo0sheet (ReebSpaceData &data, const SimplexId &sheet3Id, const SimplexId &sheet0Id) |
int | connect3sheetTo1sheet (ReebSpaceData &data, const SimplexId &sheet3Id, const SimplexId &sheet1Id) |
int | connect3sheetTo2sheet (ReebSpaceData &data, const SimplexId &sheet3Id, const SimplexId &sheet2Id) |
int | connect3sheetTo3sheet (ReebSpaceData &data, const SimplexId &sheet3Id, const SimplexId &otherSheet3Id) |
template<typename triangulationType > | |
int | connectSheets (const triangulationType &triangulation) |
int | disconnect1sheetFrom0sheet (ReebSpaceData &data, const SimplexId &sheet1Id, const SimplexId &sheet0Id, const SimplexId &biggerId) |
int | disconnect3sheetFrom0sheet (ReebSpaceData &data, const SimplexId &sheet3Id, const SimplexId &sheet0Id) |
template<typename triangulationType > | |
int | disconnect3sheetFrom1sheet (ReebSpaceData &data, const SimplexId &sheet3Id, const SimplexId &sheet1Id, const SimplexId &biggerId, const triangulationType &triangulation) |
int | disconnect3sheetFrom2sheet (ReebSpaceData &data, const SimplexId &sheet3Id, const SimplexId &sheet2Id) |
int | disconnect3sheetFrom3sheet (ReebSpaceData &data, const SimplexId &sheet3Id, const SimplexId &other3SheetId) |
template<typename triangulationType > | |
int | flush (const triangulationType &triangulation) |
template<typename triangulationType > | |
int | mergeSheets (const SimplexId &smallerId, const SimplexId &biggerId, const triangulationType &triangulation) |
int | preMergeSheets (const SimplexId &sheetId0, const SimplexId &sheetId1) |
int | prepareSimplification () |
int | printConnectivity (const ReebSpaceData &data) const |
template<typename triangulationType > | |
int | simplifySheets (const double &simplificationThreshold, const SimplificationCriterion &simplificationCriterion, const triangulationType &triangulation) |
template<typename triangulationType > | |
int | simplifySheet (const SimplexId &sheetId, const SimplificationCriterion &simplificationCriterion, const triangulationType &triangulation) |
![]() | |
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 Attributes | |
SimplexId | vertexNumber_ {0} |
SimplexId | edgeNumber_ {0} |
SimplexId | tetNumber_ {0} |
double | totalArea_ {-1} |
double | totalVolume_ {-1} |
double | totalHyperVolume_ {-1} |
const SimplexId * | sosOffsetsU_ {} |
const SimplexId * | sosOffsetsV_ {} |
bool | hasConnectedSheets_ {false} |
bool | expand3sheets_ {true} |
bool | withRangeDrivenOctree_ {true} |
ReebSpaceData | originalData_ {} |
ReebSpaceData | currentData_ {} |
std::vector< std::pair< SimplexId, char > > | jacobiSetEdges_ {} |
std::vector< SimplexId > | jacobi2edges_ {} |
FiberSurface | fiberSurface_ {} |
JacobiSet | jacobiSet_ {} |
std::vector< FiberSurface::Vertex > | fiberSurfaceVertexList_ {} |
![]() | |
int | debugLevel_ |
std::string | debugMsgPrefix_ |
std::string | debugMsgNamePrefix_ |
![]() | |
bool | lastObject_ |
int | threadNumber_ |
Wrapper * | wrapper_ |
Additional Inherited Members | |
![]() | |
static COMMON_EXPORTS debug::LineMode | lastLineMode = ttk::debug::LineMode::NEW |
TTK processing package that efficiently computes the Reeb space of bivariate volumetric data.
The Reeb space is a useful topological abstraction of bivariate scalar fields for data segmentation purposes. Intuitively, it allows the automatic separation of volumetric regions that project to the same areas in the range. This class also implements a simplification heuristic for progressive coarsening. Used in conjunction with continuous scatterplots, this class enables continuous scattterplot peeling for instance.
dataTypeU | Data type of the input first component field (char, float, etc.) |
dataTypeV | Data type of the input second component field (char, float, etc.) |
Related publication
"Jacobi Fiber Surfaces for Bivariate Reeb Space Computation"
Julien Tierny, Hamish Carr
Proc. of IEEE VIS 2016.
IEEE Transactions on Visualization and Computer Graphics, 2016.
Definition at line 42 of file ReebSpace.h.
|
strong |
Enumerator | |
---|---|
domainVolume | |
rangeArea | |
hyperVolume |
Definition at line 44 of file ReebSpace.h.
ttk::ReebSpace::ReebSpace | ( | ) |
Definition at line 3 of file ReebSpace.cpp.
|
protected |
Definition at line 1008 of file ReebSpace.h.
|
protected |
Definition at line 869 of file ReebSpace.h.
|
inlineprotected |
Definition at line 673 of file ReebSpace.h.
|
inlineprotected |
Definition at line 507 of file ReebSpace.h.
|
protected |
Definition at line 1208 of file ReebSpace.h.
|
protected |
Definition at line 1319 of file ReebSpace.h.
|
inlineprotected |
Definition at line 744 of file ReebSpace.h.
|
protected |
Definition at line 7 of file ReebSpace.cpp.
|
protected |
Definition at line 32 of file ReebSpace.cpp.
|
protected |
Definition at line 57 of file ReebSpace.cpp.
|
protected |
Definition at line 82 of file ReebSpace.cpp.
|
protected |
Definition at line 1575 of file ReebSpace.h.
|
protected |
Definition at line 111 of file ReebSpace.cpp.
|
protected |
Definition at line 135 of file ReebSpace.cpp.
|
protected |
Definition at line 1654 of file ReebSpace.h.
|
protected |
Definition at line 152 of file ReebSpace.cpp.
|
protected |
Definition at line 169 of file ReebSpace.cpp.
|
inline |
Definition at line 96 of file ReebSpace.h.
|
inline |
Definition at line 439 of file ReebSpace.h.
|
protected |
Definition at line 1705 of file ReebSpace.h.
Definition at line 105 of file ReebSpace.h.
|
inline |
Definition at line 147 of file ReebSpace.h.
Definition at line 116 of file ReebSpace.h.
|
inline |
Definition at line 151 of file ReebSpace.h.
Definition at line 127 of file ReebSpace.h.
Definition at line 137 of file ReebSpace.h.
|
inline |
Definition at line 159 of file ReebSpace.h.
|
inline |
Definition at line 155 of file ReebSpace.h.
|
inline |
Definition at line 163 of file ReebSpace.h.
|
inline |
Definition at line 168 of file ReebSpace.h.
|
inline |
Definition at line 172 of file ReebSpace.h.
|
inline |
Definition at line 179 of file ReebSpace.h.
|
protected |
Definition at line 1740 of file ReebSpace.h.
|
inline |
Definition at line 795 of file ReebSpace.h.
|
inline |
Definition at line 250 of file ReebSpace.h.
|
protected |
Definition at line 187 of file ReebSpace.cpp.
|
protected |
Definition at line 220 of file ReebSpace.cpp.
|
protected |
Definition at line 276 of file ReebSpace.cpp.
|
inline |
Definition at line 198 of file ReebSpace.h.
|
inline |
Definition at line 202 of file ReebSpace.h.
|
inline |
sosOffsetsU
buffer prior to any computation (the VTK wrapper already includes a mechanism to automatically generate such a preconditioned buffer). Definition at line 220 of file ReebSpace.h.
|
inline |
sosOffsetsV
buffer prior to any computation (the VTK wrapper already includes a mechanism to automatically generate such a preconditioned buffer). Definition at line 232 of file ReebSpace.h.
|
inline |
Definition at line 236 of file ReebSpace.h.
|
inline |
Set the number of vertices in the scalar field.
vertexNumber | Number of vertices in the data-set. |
Definition at line 243 of file ReebSpace.h.
|
inline |
Definition at line 807 of file ReebSpace.h.
|
protected |
Definition at line 1848 of file ReebSpace.h.
|
protected |
Definition at line 1973 of file ReebSpace.h.
|
protected |
Definition at line 423 of file ReebSpace.h.
|
protected |
Definition at line 416 of file ReebSpace.h.
|
protected |
Definition at line 421 of file ReebSpace.h.
|
protected |
Definition at line 429 of file ReebSpace.h.
|
protected |
Definition at line 431 of file ReebSpace.h.
|
protected |
Definition at line 421 of file ReebSpace.h.
|
protected |
Definition at line 427 of file ReebSpace.h.
|
protected |
Definition at line 430 of file ReebSpace.h.
|
protected |
Definition at line 426 of file ReebSpace.h.
|
protected |
Definition at line 423 of file ReebSpace.h.
|
protected |
Definition at line 419 of file ReebSpace.h.
|
protected |
Definition at line 419 of file ReebSpace.h.
|
protected |
Definition at line 416 of file ReebSpace.h.
|
protected |
Definition at line 417 of file ReebSpace.h.
|
protected |
Definition at line 417 of file ReebSpace.h.
|
protected |
Definition at line 417 of file ReebSpace.h.
|
protected |
Definition at line 416 of file ReebSpace.h.
|
protected |
Definition at line 422 of file ReebSpace.h.