TTK
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ttk::FiberSurface Class Reference

TTK processing package that computes fiber surfaces. More...

#include <FiberSurface.h>

Inheritance diagram for ttk::FiberSurface:
ttk::Debug ttk::BaseClass ttkFiberSurface

Classes

struct  IntersectionTriangle
 
struct  Triangle
 
struct  Vertex
 

Public Member Functions

 FiberSurface ()
 
template<class dataTypeU , class dataTypeV , typename triangulationType >
int computeContour (const std::pair< double, double > &rangePoint0, const std::pair< double, double > &rangePoint1, const std::vector< SimplexId > &seedTetList, const triangulationType *const triangulation, const SimplexId &polygonEdgeId=0) const
 
template<class dataTypeU , class dataTypeV >
int computeContour (const std::vector< std::pair< std::pair< double, double >, std::pair< double, double > > > &edgeList, const std::vector< SimplexId > &seedTetList, const std::vector< SimplexId > *edgeIdList=nullptr) const
 
template<class dataTypeU , class dataTypeV , typename triangulationType >
int computeSurface (const std::pair< double, double > &rangePoint0, const std::pair< double, double > &rangePoint1, const triangulationType *const triangulation, const SimplexId &polygonEdgeId=0) const
 
template<class dataTypeU , class dataTypeV , typename triangulationType >
int computeSurface (const triangulationType *const triangulation)
 
template<class dataTypeU , class dataTypeV >
int finalize (const bool &mergeDuplicatedVertices=false, const bool &removeSmallEdges=false, const bool &edgeFlips=false, const bool &intersectionRemesh=false)
 
template<class dataTypeU , class dataTypeV , typename triangulationType >
int processTetrahedron (const SimplexId &tetId, const std::pair< double, double > &rangePoint0, const std::pair< double, double > &rangePoint1, const triangulationType *const triangulation, const SimplexId &polygonEdgeId=0) const
 
int setGlobalVertexList (std::vector< Vertex > *globalList)
 
int setInputField (const void *uField, const void *vField)
 
int setPointMerging (const bool &onOff)
 
int setPointMergingThreshold (const double &threshold)
 
int setPointNumber (const SimplexId &number)
 
int setPointSet (const float *pointSet)
 
int setPolygon (const std::vector< std::pair< std::pair< double, double >, std::pair< double, double > > > *polygon)
 
int setPolygonEdgeNumber (const SimplexId &polygonEdgeNumber)
 
int setTetList (const SimplexId *tetList)
 
int setTetNeighbors (const std::vector< std::vector< SimplexId > > *tetNeighbors)
 
int setTetNumber (const SimplexId &tetNumber)
 
int setTriangleList (const SimplexId &polygonEdgeId, std::vector< Triangle > *triangleList)
 
void preconditionTriangulation (AbstractTriangulation *triangulation)
 
int setVertexList (const SimplexId &polygonEdgeId, std::vector< Vertex > *vertexList)
 
- 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)
 

Protected Member Functions

template<class dataTypeU , class dataTypeV , typename triangulationType >
int computeBaseTriangle (const SimplexId &tetId, const SimplexId &localEdgeId0, const double &t0, const double &u0, const double &v0, const SimplexId &localEdgeId1, const double &t1, const double &u1, const double &v1, const SimplexId &localEdgeId2, const double &t2, const double &u2, const double &v2, std::array< std::array< double, 3 >, 3 > &basePoints, std::array< std::pair< double, double >, 3 > &basePointProjections, std::array< double, 3 > &basePointParameterization, std::array< std::pair< SimplexId, SimplexId >, 3 > &baseEdges, const triangulationType *const triangulation) const
 
template<class dataTypeU , class dataTYpeV , typename triangulationType >
int computeCase0 (const SimplexId &polygonEdgeId, const SimplexId &tetId, const SimplexId &localEdgeId0, const double &t0, const double &u0, const double &v0, const SimplexId &localEdgeId1, const double &t1, const double &u1, const double &v1, const SimplexId &localEdgeId2, const double &t2, const double &u2, const double &v2, const triangulationType *const triangulation) const
 
template<class dataTypeU , class dataTYpeV , typename triangulationType >
int computeCase1 (const SimplexId &polygonEdgeId, const SimplexId &tetId, const SimplexId &localEdgeId0, const double &t0, const double &u0, const double &v0, const SimplexId &localEdgeId1, const double &t1, const double &u1, const double &v1, const SimplexId &localEdgeId2, const double &t2, const double &u2, const double &v2, const triangulationType *const triangulation) const
 
template<class dataTypeU , class dataTYpeV , typename triangulationType >
int computeCase2 (const SimplexId &polygonEdgeId, const SimplexId &tetId, const SimplexId &localEdgeId0, const double &t0, const double &u0, const double &v0, const SimplexId &localEdgeId1, const double &t1, const double &u1, const double &v1, const SimplexId &localEdgeId2, const double &t2, const double &u2, const double &v2, const triangulationType *const triangulation) const
 
template<class dataTypeU , class dataTYpeV , typename triangulationType >
int computeCase3 (const SimplexId &polygonEdgeId, const SimplexId &tetId, const SimplexId &localEdgeId0, const double &t0, const double &u0, const double &v0, const SimplexId &localEdgeId1, const double &t1, const double &u1, const double &v1, const SimplexId &localEdgeId2, const double &t2, const double &u2, const double &v2, const triangulationType *const triangulation) const
 
template<class dataTypeU , class dataTYpeV , typename triangulationType >
int computeCase4 (const SimplexId &polygonEdgeId, const SimplexId &tetId, const SimplexId &localEdgeId0, const double &t0, const double &u0, const double &v0, const SimplexId &localEdgeId1, const double &t1, const double &u1, const double &v1, const SimplexId &localEdgeId2, const double &t2, const double &u2, const double &v2, const triangulationType *const triangulation) const
 
int computeTriangleFiber (const SimplexId &tetId, const SimplexId &triangleId, const std::pair< double, double > &intersection, const std::vector< std::vector< IntersectionTriangle > > &tetIntersections, std::array< double, 3 > &pA, std::array< double, 3 > &pB, SimplexId &pivotVertexId, bool &edgeFiber) const
 
int computeTriangleIntersection (const SimplexId &tetId, const SimplexId &triangleId0, const SimplexId &triangleId1, const SimplexId &polygonEdgeId0, const SimplexId &polygonEdgeId1, const std::pair< double, double > &intersection, SimplexId &newVertexNumber, SimplexId &newTriangleNumber, std::vector< std::vector< IntersectionTriangle > > &tetIntersections, std::vector< std::vector< Vertex > > &tetNewVertices) const
 
int computeTriangleIntersection (const SimplexId &tetId, const SimplexId &triangleId, const SimplexId &polygonEdgeId, const std::pair< double, double > &intersection, const std::array< double, 3 > &pA, const std::array< double, 3 > &pB, const SimplexId &pivotVertexId, SimplexId &newVertexNumber, SimplexId &newTriangleNumber, std::vector< std::vector< IntersectionTriangle > > &tetIntersections, std::vector< std::vector< Vertex > > &tetNewVertices) const
 
int createNewIntersectionTriangle (const SimplexId &tetId, const SimplexId &triangleId, const SimplexId &vertexId0, const SimplexId &vertexId1, const SimplexId &vertexId2, const std::vector< std::vector< Vertex > > &tetNewVertices, SimplexId &newTriangleNumber, std::vector< std::vector< IntersectionTriangle > > &tetIntersections, const std::pair< double, double > *intersection=nullptr) const
 
int flipEdges () const
 
int flipEdges (std::vector< std::pair< SimplexId, SimplexId > > &triangles) const
 
int getNumberOfCommonVertices (const SimplexId &tetId, const SimplexId &triangleId0, const SimplexId &triangleId1, const std::vector< std::vector< IntersectionTriangle > > &tetIntersections) const
 
int getTriangleRangeExtremities (const SimplexId &tetId, const SimplexId &triangleId, const std::vector< std::vector< IntersectionTriangle > > &tetIntersections, std::pair< double, double > &extremity0, std::pair< double, double > &extremity1) const
 
bool hasDuplicatedVertices (const double *p0, const double *p1, const double *p2) const
 
int interpolateBasePoints (const std::array< double, 3 > &p0, const std::pair< double, double > &uv0, const double &t0, const std::array< double, 3 > &p1, const std::pair< double, double > &uv1, const double &t1, const double &t, Vertex &v) const
 
bool isEdgeAngleCollapsible (const SimplexId &source, const SimplexId &destination, const SimplexId &pivotVertexId, const std::vector< std::pair< SimplexId, SimplexId > > &starNeighbors) const
 
bool isEdgeFlippable (const SimplexId &edgeVertexId0, const SimplexId &edgeVertexId1, const SimplexId &otherVertexId0, const SimplexId &otherVertexId1) const
 
bool isIntersectionTriangleColinear (const SimplexId &tetId, const SimplexId &triangleId, const std::vector< std::vector< IntersectionTriangle > > &tetIntersections, const std::vector< std::vector< Vertex > > &tetNewVertices, const SimplexId &vertexId0, const SimplexId &vertexId1, const SimplexId &vertexId2) const
 
int mergeEdges (const double &distanceThreshold) const
 
int mergeVertices (const double &distanceThreshold) const
 
template<class dataTypeU , class dataTypeV >
int remeshIntersections () const
 
int snapToBasePoint (const std::vector< std::vector< double > > &basePoints, const std::vector< std::pair< double, double > > &uv, const std::vector< double > &t, Vertex &v) const
 
int snapVertexBarycentrics () const
 
int snapVertexBarycentrics (const SimplexId &tetId, const std::vector< std::pair< SimplexId, SimplexId > > &triangles) const
 
- 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 Attributes

bool pointSnapping_ {false}
 
SimplexId pointNumber_ {}
 
SimplexId tetNumber_ {}
 
SimplexId polygonEdgeNumber_ {}
 
const void * uField_ {}
 
const void * vField_ {}
 
const float * pointSet_ {}
 
const SimplexIdtetList_ {}
 
const std::vector< std::vector< SimplexId > > * tetNeighbors_ {}
 
std::array< SimplexId, 12 > edgeImplicitEncoding_
 
double edgeCollapseThreshold_ {Geometry::powIntTen(-FLT_DIG + 2)}
 
double pointSnappingThreshold_ {Geometry::powIntTen(-FLT_DIG + 1)}
 
const std::vector< std::pair< std::pair< double, double >, std::pair< double, double > > > * polygon_ {}
 
std::vector< Vertex > * globalVertexList_ {}
 
std::vector< std::vector< Vertex > * > polygonEdgeVertexLists_ {}
 
std::vector< std::vector< Triangle > * > polygonEdgeTriangleLists_ {}
 
- Protected Attributes inherited from ttk::Debug
int debugLevel_
 
std::string debugMsgPrefix_
 
- Protected Attributes inherited from ttk::BaseClass
bool lastObject_
 
int threadNumber_
 
Wrapperwrapper_
 

Additional Inherited Members

- Static Protected Attributes inherited from ttk::Debug
static COMMON_EXPORTS debug::LineMode lastLineMode = ttk::debug::LineMode::NEW
 

Detailed Description

TTK processing package that computes fiber surfaces.

Author
Julien Tierny julie.nosp@m.n.ti.nosp@m.erny@.nosp@m.lip6.nosp@m..fr
Date
October 2015.

Fiber surfaces are defined as the pre-images of curves drawn in the range of bivariate volumetric functions, typically on top of the continuous scatterplot. Fiber surfaces generalize the segmentation features of isosurfaces to bivariate data. This TTK processing package implements an exact, parallel and fast algorithm for fiber surface computation on (explicit or implicit) tetrahedral meshes.

Related publication
"Fast and Exact Fiber Surface Extraction for Tetrahedral Meshes"
Pavol Klacansky, Julien Tierny, Hamish Carr, Zhao Geng
IEEE Transactions on Visualization and Computer Graphics, 2016.

Parameters
dataTypeUData type of the input first component field (char, float, etc.)
dataTypeVData type of the input second component field (char, float, etc.)
See also
ttkFiberSurface.cpp for a usage example.

Online examples:

Definition at line 49 of file FiberSurface.h.

Constructor & Destructor Documentation

◆ FiberSurface()

FiberSurface::FiberSurface ( )

Definition at line 11 of file FiberSurface.cpp.

Member Function Documentation

◆ computeBaseTriangle()

template<class dataTypeU , class dataTypeV , typename triangulationType >
int ttk::FiberSurface::computeBaseTriangle ( const SimplexId tetId,
const SimplexId localEdgeId0,
const double &  t0,
const double &  u0,
const double &  v0,
const SimplexId localEdgeId1,
const double &  t1,
const double &  u1,
const double &  v1,
const SimplexId localEdgeId2,
const double &  t2,
const double &  u2,
const double &  v2,
std::array< std::array< double, 3 >, 3 > &  basePoints,
std::array< std::pair< double, double >, 3 > &  basePointProjections,
std::array< double, 3 > &  basePointParameterization,
std::array< std::pair< SimplexId, SimplexId >, 3 > &  baseEdges,
const triangulationType *const  triangulation 
) const
inlineprotected

Definition at line 536 of file FiberSurface.h.

◆ computeCase0()

template<class dataTypeU , class dataTypeV , typename triangulationType >
int ttk::FiberSurface::computeCase0 ( const SimplexId polygonEdgeId,
const SimplexId tetId,
const SimplexId localEdgeId0,
const double &  t0,
const double &  u0,
const double &  v0,
const SimplexId localEdgeId1,
const double &  t1,
const double &  u1,
const double &  v1,
const SimplexId localEdgeId2,
const double &  t2,
const double &  u2,
const double &  v2,
const triangulationType *const  triangulation 
) const
inlineprotected

Definition at line 656 of file FiberSurface.h.

◆ computeCase1()

template<class dataTypeU , class dataTypeV , typename triangulationType >
int ttk::FiberSurface::computeCase1 ( const SimplexId polygonEdgeId,
const SimplexId tetId,
const SimplexId localEdgeId0,
const double &  t0,
const double &  u0,
const double &  v0,
const SimplexId localEdgeId1,
const double &  t1,
const double &  u1,
const double &  v1,
const SimplexId localEdgeId2,
const double &  t2,
const double &  u2,
const double &  v2,
const triangulationType *const  triangulation 
) const
inlineprotected

Definition at line 801 of file FiberSurface.h.

◆ computeCase2()

template<class dataTypeU , class dataTypeV , typename triangulationType >
int ttk::FiberSurface::computeCase2 ( const SimplexId polygonEdgeId,
const SimplexId tetId,
const SimplexId localEdgeId0,
const double &  t0,
const double &  u0,
const double &  v0,
const SimplexId localEdgeId1,
const double &  t1,
const double &  u1,
const double &  v1,
const SimplexId localEdgeId2,
const double &  t2,
const double &  u2,
const double &  v2,
const triangulationType *const  triangulation 
) const
inlineprotected

Definition at line 990 of file FiberSurface.h.

◆ computeCase3()

template<class dataTypeU , class dataTypeV , typename triangulationType >
int ttk::FiberSurface::computeCase3 ( const SimplexId polygonEdgeId,
const SimplexId tetId,
const SimplexId localEdgeId0,
const double &  t0,
const double &  u0,
const double &  v0,
const SimplexId localEdgeId1,
const double &  t1,
const double &  u1,
const double &  v1,
const SimplexId localEdgeId2,
const double &  t2,
const double &  u2,
const double &  v2,
const triangulationType *const  triangulation 
) const
inlineprotected

Definition at line 1163 of file FiberSurface.h.

◆ computeCase4()

template<class dataTypeU , class dataTypeV , typename triangulationType >
int ttk::FiberSurface::computeCase4 ( const SimplexId polygonEdgeId,
const SimplexId tetId,
const SimplexId localEdgeId0,
const double &  t0,
const double &  u0,
const double &  v0,
const SimplexId localEdgeId1,
const double &  t1,
const double &  u1,
const double &  v1,
const SimplexId localEdgeId2,
const double &  t2,
const double &  u2,
const double &  v2,
const triangulationType *const  triangulation 
) const
inlineprotected

Definition at line 1303 of file FiberSurface.h.

◆ computeContour() [1/2]

template<class dataTypeU , class dataTypeV , typename triangulationType >
int ttk::FiberSurface::computeContour ( const std::pair< double, double > &  rangePoint0,
const std::pair< double, double > &  rangePoint1,
const std::vector< SimplexId > &  seedTetList,
const triangulationType *const  triangulation,
const SimplexId polygonEdgeId = 0 
) const
inline

Definition at line 1473 of file FiberSurface.h.

◆ computeContour() [2/2]

template<class dataTypeU , class dataTypeV >
int ttk::FiberSurface::computeContour ( const std::vector< std::pair< std::pair< double, double >, std::pair< double, double > > > &  edgeList,
const std::vector< SimplexId > &  seedTetList,
const std::vector< SimplexId > *  edgeIdList = nullptr 
) const
inline

Definition at line 1537 of file FiberSurface.h.

◆ computeSurface() [1/2]

template<class dataTypeU , class dataTypeV , typename triangulationType >
int ttk::FiberSurface::computeSurface ( const std::pair< double, double > &  rangePoint0,
const std::pair< double, double > &  rangePoint1,
const triangulationType *const  triangulation,
const SimplexId polygonEdgeId = 0 
) const
inline

Definition at line 1620 of file FiberSurface.h.

◆ computeSurface() [2/2]

template<class dataTypeU , class dataTypeV , typename triangulationType >
int ttk::FiberSurface::computeSurface ( const triangulationType *const  triangulation)
inline

Definition at line 1662 of file FiberSurface.h.

◆ computeTriangleFiber()

int FiberSurface::computeTriangleFiber ( const SimplexId tetId,
const SimplexId triangleId,
const std::pair< double, double > &  intersection,
const std::vector< std::vector< IntersectionTriangle > > &  tetIntersections,
std::array< double, 3 > &  pA,
std::array< double, 3 > &  pB,
SimplexId pivotVertexId,
bool &  edgeFiber 
) const
protected

Definition at line 54 of file FiberSurface.cpp.

◆ computeTriangleIntersection() [1/2]

int FiberSurface::computeTriangleIntersection ( const SimplexId tetId,
const SimplexId triangleId,
const SimplexId polygonEdgeId,
const std::pair< double, double > &  intersection,
const std::array< double, 3 > &  pA,
const std::array< double, 3 > &  pB,
const SimplexId pivotVertexId,
SimplexId newVertexNumber,
SimplexId newTriangleNumber,
std::vector< std::vector< IntersectionTriangle > > &  tetIntersections,
std::vector< std::vector< Vertex > > &  tetNewVertices 
) const
protected

Definition at line 330 of file FiberSurface.cpp.

◆ computeTriangleIntersection() [2/2]

int FiberSurface::computeTriangleIntersection ( const SimplexId tetId,
const SimplexId triangleId0,
const SimplexId triangleId1,
const SimplexId polygonEdgeId0,
const SimplexId polygonEdgeId1,
const std::pair< double, double > &  intersection,
SimplexId newVertexNumber,
SimplexId newTriangleNumber,
std::vector< std::vector< IntersectionTriangle > > &  tetIntersections,
std::vector< std::vector< Vertex > > &  tetNewVertices 
) const
protected

Definition at line 189 of file FiberSurface.cpp.

◆ createNewIntersectionTriangle()

int FiberSurface::createNewIntersectionTriangle ( const SimplexId tetId,
const SimplexId triangleId,
const SimplexId vertexId0,
const SimplexId vertexId1,
const SimplexId vertexId2,
const std::vector< std::vector< Vertex > > &  tetNewVertices,
SimplexId newTriangleNumber,
std::vector< std::vector< IntersectionTriangle > > &  tetIntersections,
const std::pair< double, double > *  intersection = nullptr 
) const
protected

Definition at line 528 of file FiberSurface.cpp.

◆ finalize()

template<class dataTypeU , class dataTypeV >
int ttk::FiberSurface::finalize ( const bool &  mergeDuplicatedVertices = false,
const bool &  removeSmallEdges = false,
const bool &  edgeFlips = false,
const bool &  intersectionRemesh = false 
)
inline

Definition at line 1767 of file FiberSurface.h.

◆ flipEdges() [1/2]

int FiberSurface::flipEdges ( ) const
protected

Definition at line 600 of file FiberSurface.cpp.

◆ flipEdges() [2/2]

int FiberSurface::flipEdges ( std::vector< std::pair< SimplexId, SimplexId > > &  triangles) const
protected

Definition at line 642 of file FiberSurface.cpp.

◆ getNumberOfCommonVertices()

int FiberSurface::getNumberOfCommonVertices ( const SimplexId tetId,
const SimplexId triangleId0,
const SimplexId triangleId1,
const std::vector< std::vector< IntersectionTriangle > > &  tetIntersections 
) const
protected

Definition at line 15 of file FiberSurface.cpp.

◆ getTriangleRangeExtremities()

int FiberSurface::getTriangleRangeExtremities ( const SimplexId tetId,
const SimplexId triangleId,
const std::vector< std::vector< IntersectionTriangle > > &  tetIntersections,
std::pair< double, double > &  extremity0,
std::pair< double, double > &  extremity1 
) const
protected

Definition at line 874 of file FiberSurface.cpp.

◆ hasDuplicatedVertices()

bool FiberSurface::hasDuplicatedVertices ( const double *  p0,
const double *  p1,
const double *  p2 
) const
protected

Definition at line 945 of file FiberSurface.cpp.

◆ interpolateBasePoints()

int FiberSurface::interpolateBasePoints ( const std::array< double, 3 > &  p0,
const std::pair< double, double > &  uv0,
const double &  t0,
const std::array< double, 3 > &  p1,
const std::pair< double, double > &  uv1,
const double &  t1,
const double &  t,
Vertex v 
) const
protected

Definition at line 961 of file FiberSurface.cpp.

◆ isEdgeAngleCollapsible()

bool FiberSurface::isEdgeAngleCollapsible ( const SimplexId source,
const SimplexId destination,
const SimplexId pivotVertexId,
const std::vector< std::pair< SimplexId, SimplexId > > &  starNeighbors 
) const
protected

Definition at line 984 of file FiberSurface.cpp.

◆ isEdgeFlippable()

bool FiberSurface::isEdgeFlippable ( const SimplexId edgeVertexId0,
const SimplexId edgeVertexId1,
const SimplexId otherVertexId0,
const SimplexId otherVertexId1 
) const
protected

Definition at line 1030 of file FiberSurface.cpp.

◆ isIntersectionTriangleColinear()

bool ttk::FiberSurface::isIntersectionTriangleColinear ( const SimplexId tetId,
const SimplexId triangleId,
const std::vector< std::vector< IntersectionTriangle > > &  tetIntersections,
const std::vector< std::vector< Vertex > > &  tetNewVertices,
const SimplexId vertexId0,
const SimplexId vertexId1,
const SimplexId vertexId2 
) const
inlineprotected

Definition at line 430 of file FiberSurface.h.

◆ mergeEdges()

int FiberSurface::mergeEdges ( const double &  distanceThreshold) const
protected

Definition at line 1067 of file FiberSurface.cpp.

◆ mergeVertices()

int FiberSurface::mergeVertices ( const double &  distanceThreshold) const
protected

Definition at line 1275 of file FiberSurface.cpp.

◆ preconditionTriangulation()

void ttk::FiberSurface::preconditionTriangulation ( AbstractTriangulation triangulation)
inline

Definition at line 202 of file FiberSurface.h.

◆ processTetrahedron()

template<class dataTypeU , class dataTypeV , typename triangulationType >
int ttk::FiberSurface::processTetrahedron ( const SimplexId tetId,
const std::pair< double, double > &  rangePoint0,
const std::pair< double, double > &  rangePoint1,
const triangulationType *const  triangulation,
const SimplexId polygonEdgeId = 0 
) const
inline

Definition at line 1832 of file FiberSurface.h.

◆ remeshIntersections()

template<class dataTypeU , class dataTypeV >
int ttk::FiberSurface::remeshIntersections
inlineprotected

Definition at line 2344 of file FiberSurface.h.

◆ setGlobalVertexList()

int ttk::FiberSurface::setGlobalVertexList ( std::vector< Vertex > *  globalList)
inline

Definition at line 126 of file FiberSurface.h.

◆ setInputField()

int ttk::FiberSurface::setInputField ( const void *  uField,
const void *  vField 
)
inline

Definition at line 131 of file FiberSurface.h.

◆ setPointMerging()

int ttk::FiberSurface::setPointMerging ( const bool &  onOff)
inline

Definition at line 139 of file FiberSurface.h.

◆ setPointMergingThreshold()

int ttk::FiberSurface::setPointMergingThreshold ( const double &  threshold)
inline

Definition at line 144 of file FiberSurface.h.

◆ setPointNumber()

int ttk::FiberSurface::setPointNumber ( const SimplexId number)
inline

Definition at line 149 of file FiberSurface.h.

◆ setPointSet()

int ttk::FiberSurface::setPointSet ( const float *  pointSet)
inline

Definition at line 154 of file FiberSurface.h.

◆ setPolygon()

int ttk::FiberSurface::setPolygon ( const std::vector< std::pair< std::pair< double, double >, std::pair< double, double > > > *  polygon)
inline

Definition at line 159 of file FiberSurface.h.

◆ setPolygonEdgeNumber()

int ttk::FiberSurface::setPolygonEdgeNumber ( const SimplexId polygonEdgeNumber)
inline

Definition at line 166 of file FiberSurface.h.

◆ setTetList()

int ttk::FiberSurface::setTetList ( const SimplexId tetList)
inline

Definition at line 173 of file FiberSurface.h.

◆ setTetNeighbors()

int ttk::FiberSurface::setTetNeighbors ( const std::vector< std::vector< SimplexId > > *  tetNeighbors)
inline

Definition at line 179 of file FiberSurface.h.

◆ setTetNumber()

int ttk::FiberSurface::setTetNumber ( const SimplexId tetNumber)
inline

Definition at line 184 of file FiberSurface.h.

◆ setTriangleList()

int ttk::FiberSurface::setTriangleList ( const SimplexId polygonEdgeId,
std::vector< Triangle > *  triangleList 
)
inline

Definition at line 189 of file FiberSurface.h.

◆ setVertexList()

int ttk::FiberSurface::setVertexList ( const SimplexId polygonEdgeId,
std::vector< Vertex > *  vertexList 
)
inline

Definition at line 209 of file FiberSurface.h.

◆ snapToBasePoint()

int FiberSurface::snapToBasePoint ( const std::vector< std::vector< double > > &  basePoints,
const std::vector< std::pair< double, double > > &  uv,
const std::vector< double > &  t,
Vertex v 
) const
protected

Definition at line 1549 of file FiberSurface.cpp.

◆ snapVertexBarycentrics() [1/2]

int FiberSurface::snapVertexBarycentrics ( ) const
protected

Definition at line 1580 of file FiberSurface.cpp.

◆ snapVertexBarycentrics() [2/2]

int FiberSurface::snapVertexBarycentrics ( const SimplexId tetId,
const std::vector< std::pair< SimplexId, SimplexId > > &  triangles 
) const
protected

Definition at line 1614 of file FiberSurface.cpp.

Member Data Documentation

◆ edgeCollapseThreshold_

double ttk::FiberSurface::edgeCollapseThreshold_ {Geometry::powIntTen(-FLT_DIG + 2)}
protected

Definition at line 490 of file FiberSurface.h.

◆ edgeImplicitEncoding_

std::array<SimplexId, 12> ttk::FiberSurface::edgeImplicitEncoding_
protected
Initial value:
{
0, 1, 0, 2, 0, 3, 3, 1, 2, 1, 2, 3}

Definition at line 487 of file FiberSurface.h.

◆ globalVertexList_

std::vector<Vertex>* ttk::FiberSurface::globalVertexList_ {}
protected

Definition at line 496 of file FiberSurface.h.

◆ pointNumber_

SimplexId ttk::FiberSurface::pointNumber_ {}
protected

Definition at line 482 of file FiberSurface.h.

◆ pointSet_

const float* ttk::FiberSurface::pointSet_ {}
protected

Definition at line 484 of file FiberSurface.h.

◆ pointSnapping_

bool ttk::FiberSurface::pointSnapping_ {false}
protected

Definition at line 480 of file FiberSurface.h.

◆ pointSnappingThreshold_

double ttk::FiberSurface::pointSnappingThreshold_ {Geometry::powIntTen(-FLT_DIG + 1)}
protected

Definition at line 491 of file FiberSurface.h.

◆ polygon_

const std::vector<std::pair<std::pair<double, double>, std::pair<double, double> > >* ttk::FiberSurface::polygon_ {}
protected

Definition at line 494 of file FiberSurface.h.

◆ polygonEdgeNumber_

SimplexId ttk::FiberSurface::polygonEdgeNumber_ {}
protected

Definition at line 482 of file FiberSurface.h.

◆ polygonEdgeTriangleLists_

std::vector<std::vector<Triangle> *> ttk::FiberSurface::polygonEdgeTriangleLists_ {}
protected

Definition at line 498 of file FiberSurface.h.

◆ polygonEdgeVertexLists_

std::vector<std::vector<Vertex> *> ttk::FiberSurface::polygonEdgeVertexLists_ {}
protected

Definition at line 497 of file FiberSurface.h.

◆ tetList_

const SimplexId* ttk::FiberSurface::tetList_ {}
protected

Definition at line 485 of file FiberSurface.h.

◆ tetNeighbors_

const std::vector<std::vector<SimplexId> >* ttk::FiberSurface::tetNeighbors_ {}
protected

Definition at line 486 of file FiberSurface.h.

◆ tetNumber_

SimplexId ttk::FiberSurface::tetNumber_ {}
protected

Definition at line 482 of file FiberSurface.h.

◆ uField_

const void* ttk::FiberSurface::uField_ {}
protected

Definition at line 483 of file FiberSurface.h.

◆ vField_

const void * ttk::FiberSurface::vField_ {}
protected

Definition at line 483 of file FiberSurface.h.


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