WTFIT
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
wtfit::FiberSurface Class Reference

FiberSurface processing package. More...

#include <FiberSurface.h>

Inheritance diagram for wtfit::FiberSurface:
wtfit::Debug

Classes

struct  _intersectionTriangle
 
class  Triangle
 
class  Vertex
 

Public Member Functions

 FiberSurface ()
 
 ~FiberSurface ()
 
template<class dataTypeU , class dataTypeV >
int computeContour (const pair< double, double > &rangePoint0, const pair< double, double > &rangePoint1, const vector< int > &seedTetList, const int &polygonEdgeId=0) const
 
template<class dataTypeU , class dataTypeV >
int computeContour (const vector< pair< pair< double, double >, pair< double, double > > > &edgeList, const vector< int > &seedTetList, const vector< int > *edgeIdList=NULL) const
 
template<class dataTypeU , class dataTypeV >
int computeSurface (const pair< double, double > &rangePoint0, const pair< double, double > &rangePoint1, const int &polygonEdgeId=0) const
 
template<class dataTypeU , class dataTypeV >
int computeSurface ()
 
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 >
int processTetrahedron (const int &tetId, const pair< double, double > &rangePoint0, const pair< double, double > &rangePoint1, const int &polygonEdgeId=0) const
 
int setGlobalVertexList (vector< Vertex > *globalList)
 
int setInputField (const void *uField, const void *vField)
 
int setPointMerging (const bool &onOff)
 
int setPointMergingThreshold (const double &threshold)
 
int setPointNumber (const int &number)
 
int setPointSet (const float *pointSet)
 
int setPolygon (const vector< pair< pair< double, double >, pair< double, double > > > *polygon)
 
int setPolygonEdgeNumber (const int &polygonEdgeNumber)
 
int setTetList (const long long int *tetList)
 
int setTetNeighbors (const vector< vector< int > > *tetNeighbors)
 
int setTetNumber (const int &tetNumber)
 
int setTriangleList (const int &polygonEdgeId, vector< Triangle > *triangleList)
 
int setVertexList (const int &polygonEdgeId, vector< Vertex > *vertexList)
 
- Public Member Functions inherited from wtfit::Debug
 Debug ()
 
virtual ~Debug ()
 
virtual const int dMsg (ostream &stream, string msg, const int &debugLevel=infoMsg) const
 
const int err (const string msg, const int &debugLevel=infoMsg) const
 
const int msg (const char *msg, const int &debugLevel=infoMsg) const
 
virtual const int setDebugLevel (const int &debugLevel)
 
int setThreadNumber (const int threadNumber)
 
int setWrapper (const Wrapper *wrapper)
 

Protected Types

typedef struct wtfit::FiberSurface::_intersectionTriangle IntersectionTriangle
 

Protected Member Functions

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

Protected Attributes

bool pointSnapping_
 
int pointNumber_
 
int tetNumber_
 
int polygonEdgeNumber_
 
const void * uField_
 
const void * vField_
 
const float * pointSet_
 
const long long int * tetList_
 
const vector< vector< int > > * tetNeighbors_
 
int edgeImplicitEncoding_ [12]
 
double edgeCollapseThreshold_
 
double pointSnappingThreshold_
 
const vector< pair< pair< double, double >, pair< double, double > > > * polygon_
 
vector< Vertex > * globalVertexList_
 
vector< vector< Vertex > * > polygonEdgeVertexLists_
 
vector< vector< Triangle > * > polygonEdgeTriangleLists_
 
- Protected Attributes inherited from wtfit::Debug
bool lastObject_
 
int debugLevel_
 
int threadNumber_
 
Wrapperwrapper_
 

Additional Inherited Members

- Public Types inherited from wtfit::Debug
enum  debugPriority {
  fatalMsg, timeMsg, memoryMsg, infoMsg,
  detailedInfoMsg, advancedInfoMsg
}
 

Detailed Description

FiberSurface processing package.

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

FiberSurface is a processing package that computes pre-images of curves for bivariate scalar data.

Parameters
dataTypeUData type of the input first component field (char, float, etc.)
dataTypeVData type of the input second component field (char, float, etc.)

Member Typedef Documentation

Constructor & Destructor Documentation

FiberSurface::FiberSurface ( )
FiberSurface::~FiberSurface ( )

Member Function Documentation

template<class dataTypeU , class dataTypeV >
int FiberSurface::computeBaseTriangle ( const int &  tetId,
const int &  localEdgeId0,
const double &  t0,
const double &  u0,
const double &  v0,
const int &  localEdgeId1,
const double &  t1,
const double &  u1,
const double &  v1,
const int &  localEdgeId2,
const double &  t2,
const double &  u2,
const double &  v2,
vector< vector< double > > &  basePoints,
vector< pair< double, double > > &  basePointProections,
vector< double > &  basePointParameterization,
vector< pair< int, int > > &  baseEdges 
) const
inlineprotected
template<class dataTypeU , class dataTypeV >
int FiberSurface::computeCase0 ( const int &  polygonEdgeId,
const int &  tetId,
const int &  localEdgeId0,
const double &  t0,
const double &  u0,
const double &  v0,
const int &  localEdgeId1,
const double &  t1,
const double &  u1,
const double &  v1,
const int &  localEdgeId2,
const double &  t2,
const double &  u2,
const double &  v2 
) const
inlineprotected
template<class dataTypeU , class dataTypeV >
int FiberSurface::computeCase1 ( const int &  polygonEdgeId,
const int &  tetId,
const int &  localEdgeId0,
const double &  t0,
const double &  u0,
const double &  v0,
const int &  localEdgeId1,
const double &  t1,
const double &  u1,
const double &  v1,
const int &  localEdgeId2,
const double &  t2,
const double &  u2,
const double &  v2 
) const
inlineprotected
template<class dataTypeU , class dataTypeV >
int FiberSurface::computeCase2 ( const int &  polygonEdgeId,
const int &  tetId,
const int &  localEdgeId0,
const double &  t0,
const double &  u0,
const double &  v0,
const int &  localEdgeId1,
const double &  t1,
const double &  u1,
const double &  v1,
const int &  localEdgeId2,
const double &  t2,
const double &  u2,
const double &  v2 
) const
inlineprotected
template<class dataTypeU , class dataTypeV >
int FiberSurface::computeCase3 ( const int &  polygonEdgeId,
const int &  tetId,
const int &  localEdgeId0,
const double &  t0,
const double &  u0,
const double &  v0,
const int &  localEdgeId1,
const double &  t1,
const double &  u1,
const double &  v1,
const int &  localEdgeId2,
const double &  t2,
const double &  u2,
const double &  v2 
) const
inlineprotected
template<class dataTypeU , class dataTypeV >
int FiberSurface::computeCase4 ( const int &  polygonEdgeId,
const int &  tetId,
const int &  localEdgeId0,
const double &  t0,
const double &  u0,
const double &  v0,
const int &  localEdgeId1,
const double &  t1,
const double &  u1,
const double &  v1,
const int &  localEdgeId2,
const double &  t2,
const double &  u2,
const double &  v2 
) const
inlineprotected
template<class dataTypeU , class dataTypeV >
int FiberSurface::computeContour ( const pair< double, double > &  rangePoint0,
const pair< double, double > &  rangePoint1,
const vector< int > &  seedTetList,
const int &  polygonEdgeId = 0 
) const
inline
template<class dataTypeU , class dataTypeV >
int FiberSurface::computeContour ( const vector< pair< pair< double, double >, pair< double, double > > > &  edgeList,
const vector< int > &  seedTetList,
const vector< int > *  edgeIdList = NULL 
) const
inline
template<class dataTypeU , class dataTypeV >
int FiberSurface::computeSurface ( const pair< double, double > &  rangePoint0,
const pair< double, double > &  rangePoint1,
const int &  polygonEdgeId = 0 
) const
inline
template<class dataTypeU , class dataTypeV >
int FiberSurface::computeSurface ( )
inline
int FiberSurface::computeTriangleFiber ( const int &  tetId,
const int &  triangleId,
const pair< double, double > &  intersection,
const vector< vector< IntersectionTriangle > > &  tetIntersections,
vector< double > &  pA,
vector< double > &  pB,
int &  pivotVertexId,
bool &  edgeFiber 
) const
protected
int FiberSurface::computeTriangleIntersection ( const int &  tetId,
const int &  triangleId0,
const int &  triangleId1,
const int &  polygonEdgeId0,
const int &  polygonEdgeId1,
const pair< double, double > &  intersection,
int &  newVertexNumber,
int &  newTriangleNumber,
vector< vector< IntersectionTriangle > > &  tetIntersections,
vector< vector< Vertex > > &  tetNewVertices 
) const
protected
int FiberSurface::computeTriangleIntersection ( const int &  tetId,
const int &  triangleId,
const int &  polygonEdgeId,
const pair< double, double > &  intersection,
const vector< double > &  pA,
const vector< double > &  pB,
const int &  pivotVertexId,
int &  newVertexNumber,
int &  newTriangleNumber,
vector< vector< IntersectionTriangle > > &  tetIntersections,
vector< vector< Vertex > > &  tetNewVertices 
) const
protected
int FiberSurface::createNewIntersectionTriangle ( const int &  tetId,
const int &  triangleId,
const int &  vertexId0,
const int &  vertexId1,
const int &  vertexId2,
const vector< vector< Vertex > > &  tetNewVertices,
int &  newTriangleNumber,
vector< vector< IntersectionTriangle > > &  tetIntersections,
const pair< double, double > *  intersection = NULL 
) const
protected
template<class dataTypeU , class dataTypeV >
int FiberSurface::finalize ( const bool &  mergeDuplicatedVertices = false,
const bool &  removeSmallEdges = false,
const bool &  edgeFlips = false,
const bool &  intersectionRemesh = false 
)
inline
int FiberSurface::flipEdges ( ) const
protected
int FiberSurface::flipEdges ( vector< pair< int, int > > &  triangles) const
protected
int FiberSurface::getNumberOfCommonVertices ( const int &  tetId,
const int &  triangleId0,
const int &  triangleId1,
const vector< vector< IntersectionTriangle > > &  tetIntersections 
) const
protected
int FiberSurface::getTriangleRangeExtremities ( const int &  tetId,
const int &  triangleId,
const vector< vector< IntersectionTriangle > > &  tetIntersections,
pair< double, double > &  extremity0,
pair< double, double > &  extremity1 
) const
protected
bool FiberSurface::hasDuplicatedVertices ( const double *  p0,
const double *  p1,
const double *  p2 
) const
protected
int FiberSurface::interpolateBasePoints ( const vector< double > &  p0,
const pair< double, double > &  uv0,
const double &  t0,
const vector< double > &  p1,
const pair< double, double > &  uv1,
const double &  t1,
const double &  t,
Vertex v 
) const
protected
bool FiberSurface::isEdgeAngleCollapsible ( const int &  source,
const int &  destination,
const int &  pivotVertexId,
const vector< pair< int, int > > &  starNeighbors 
) const
protected
bool FiberSurface::isEdgeFlippable ( const int &  edgeVertexId0,
const int &  edgeVertexId1,
const int &  otherVertexId0,
const int &  otherVertexId1 
) const
protected
bool wtfit::FiberSurface::isIntersectionTriangleColinear ( const int &  tetId,
const int &  triangleId,
const vector< vector< IntersectionTriangle > > &  tetIntersections,
const vector< vector< Vertex > > &  tetNewVertices,
const int &  vertexId0,
const int &  vertexId1,
const int &  vertexId2 
) const
inlineprotected
int FiberSurface::mergeEdges ( const double &  distanceThreshold) const
protected
int FiberSurface::mergeVertices ( const double &  distanceThreshold) const
protected
template<class dataTypeU , class dataTypeV >
int FiberSurface::processTetrahedron ( const int &  tetId,
const pair< double, double > &  rangePoint0,
const pair< double, double > &  rangePoint1,
const int &  polygonEdgeId = 0 
) const
inline
template<class dataTypeU , class dataTypeV >
int FiberSurface::remeshIntersections ( ) const
inlineprotected
int wtfit::FiberSurface::setGlobalVertexList ( vector< Vertex > *  globalList)
inline
int wtfit::FiberSurface::setInputField ( const void *  uField,
const void *  vField 
)
inline
int wtfit::FiberSurface::setPointMerging ( const bool &  onOff)
inline
int wtfit::FiberSurface::setPointMergingThreshold ( const double &  threshold)
inline
int wtfit::FiberSurface::setPointNumber ( const int &  number)
inline
int wtfit::FiberSurface::setPointSet ( const float *  pointSet)
inline
int wtfit::FiberSurface::setPolygon ( const vector< pair< pair< double, double >, pair< double, double > > > *  polygon)
inline
int wtfit::FiberSurface::setPolygonEdgeNumber ( const int &  polygonEdgeNumber)
inline
int wtfit::FiberSurface::setTetList ( const long long int *  tetList)
inline
int wtfit::FiberSurface::setTetNeighbors ( const vector< vector< int > > *  tetNeighbors)
inline
int wtfit::FiberSurface::setTetNumber ( const int &  tetNumber)
inline
int wtfit::FiberSurface::setTriangleList ( const int &  polygonEdgeId,
vector< Triangle > *  triangleList 
)
inline
int wtfit::FiberSurface::setVertexList ( const int &  polygonEdgeId,
vector< Vertex > *  vertexList 
)
inline
int FiberSurface::snapToBasePoint ( const vector< vector< double > > &  basePoints,
const vector< pair< double, double > > &  uv,
const vector< double > &  t,
Vertex v 
) const
protected
int FiberSurface::snapVertexBarycentrics ( const double &  distanceThreshold) const
protected
int FiberSurface::snapVertexBarycentrics ( const int &  tetId,
const vector< pair< int, int > > &  triangles,
const double &  distanceThreshold 
) const
protected

Member Data Documentation

double wtfit::FiberSurface::edgeCollapseThreshold_
protected
int wtfit::FiberSurface::edgeImplicitEncoding_[12]
protected
vector<Vertex>* wtfit::FiberSurface::globalVertexList_
protected
int wtfit::FiberSurface::pointNumber_
protected
const float* wtfit::FiberSurface::pointSet_
protected
bool wtfit::FiberSurface::pointSnapping_
protected
double wtfit::FiberSurface::pointSnappingThreshold_
protected
const vector<pair<pair<double, double>, pair<double, double> > >* wtfit::FiberSurface::polygon_
protected
int wtfit::FiberSurface::polygonEdgeNumber_
protected
vector<vector<Triangle> *> wtfit::FiberSurface::polygonEdgeTriangleLists_
protected
vector<vector<Vertex> *> wtfit::FiberSurface::polygonEdgeVertexLists_
protected
const long long int* wtfit::FiberSurface::tetList_
protected
const vector<vector<int> >* wtfit::FiberSurface::tetNeighbors_
protected
int wtfit::FiberSurface::tetNumber_
protected
const void* wtfit::FiberSurface::uField_
protected
const void * wtfit::FiberSurface::vField_
protected

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