|
| 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) |
|
| 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) |
|
|
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 |
|
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) |
|
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
-
dataTypeU | Data type of the input first component field (char, float, etc.) |
dataTypeV | Data 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.