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

ReebSpace processing package. More...

#include <ReebSpace.h>

Inheritance diagram for wtfit::ReebSpace:
wtfit::Debug

Classes

class  ReebSpaceData
 
class  Sheet0
 
class  Sheet1
 
class  Sheet2
 
class  Sheet3
 

Public Types

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

Public Member Functions

 ReebSpace ()
 
 ~ReebSpace ()
 
template<class dataTypeU , class dataTypeV >
int connectivityPreprocessing (const vector< vector< int > > &edgeStarList, vector< vector< pair< int, int > > > &edgeFanLinkEdgeLists, vector< vector< long long int > > &edgeFans, vector< int > &sosOffsets) const
 
bool empty () const
 
template<class dataTypeU , class dataTypeV >
int execute ()
 
const Sheet0get0sheet (const int &sheetId) const
 
const Sheet1get1sheet (const int &sheetId) const
 
const Sheet2get2sheet (const int &sheetId) const
 
const Sheet3get3sheet (const int &sheetId) const
 
const vector< int > * get0sheetSegmentation () const
 
const vector< int > * get1sheetSegmentation () const
 
const vector< int > * get3sheetVertexSegmentation () const
 
const vector< int > * get3sheetTetSegmentation () const
 
const vector< int > * getEdgeTypes () const
 
const vector< FiberSurface::Vertex > * getFiberSurfaceVertices () const
 
int getJacobi2Edge (const int &jacobiEdgeId) const
 
const int getNumberOf2sheets () const
 
template<class dataTypeU , class dataTypeV >
int perturbate (const dataTypeU &uEpsilon=pow(10,-DBL_DIG), const dataTypeV &vEpsilon=pow(10,-DBL_DIG)) const
 
int setEdgeFans (const vector< vector< long long int > > *edgeFans)
 
int setEdgeFanLinkEdgeList (const vector< vector< pair< int, int > > > *edgeFanLinkEdgeLists)
 
int setEdgeList (const vector< pair< int, int > > *edgeList)
 
int setEdgeStars (const vector< vector< int > > *edgeStars)
 
int setExpand3Sheets (const bool &onOff)
 
int setInputField (const void *uField, const void *vField)
 
int setPointSet (const float *pointSet)
 
int setSosOffsets (vector< int > *sosOffsets)
 
int setTetList (const long long int *tetList)
 
int setTetNeighbors (const vector< vector< int > > *tetNeighbors)
 
int setTetNumber (const int &tetNumber)
 
int setVertexEdgeList (const vector< vector< int > > *vertexEdgeList)
 
int setVertexNumber (const int &vertexNumber)
 
int setVertexStars (const vector< vector< int > > *vertexStars)
 
template<class dataTypeU , class dataTypeV >
int simplify (const double &simplificationThreshold, const SimplificationCriterion &criterion=rangeArea)
 
- 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 Member Functions

int compute1sheetsOnly (const vector< pair< int, char > > &jacobiSet, vector< pair< int, int > > &jacobiSetClassification)
 
int compute1sheets (const vector< pair< int, char > > &jacobiSet, vector< pair< int, int > > &jacobiSetClassification)
 
template<class dataTypeU , class dataTypeV >
int compute2sheets (const vector< pair< int, int > > &jacobiEdges)
 
template<class dataTypeU , class dataTypeV >
int compute2sheetChambers ()
 
int compute3sheet (const int &vertexId, const vector< vector< vector< int > > > &tetTriangles)
 
int compute3sheets (vector< vector< vector< int > > > &tetTriangles)
 
template<class dataTypeU , class dataTypeV >
int computeGeometricalMeasures (Sheet3 &sheet)
 
int connect3sheetTo0sheet (ReebSpaceData &data, const int &sheet3Id, const int &sheet0Id)
 
int connect3sheetTo1sheet (ReebSpaceData &data, const int &sheet3Id, const int &sheet1Id)
 
int connect3sheetTo2sheet (ReebSpaceData &data, const int &sheet3Id, const int &sheet2Id)
 
int connect3sheetTo3sheet (ReebSpaceData &data, const int &sheet3Id, const int &otherSheet3Id)
 
int connectSheets ()
 
int disconnect1sheetFrom0sheet (ReebSpaceData &data, const int &sheet1Id, const int &sheet0Id, const int &biggerId)
 
int disconnect3sheetFrom0sheet (ReebSpaceData &data, const int &sheet3Id, const int &sheet0Id)
 
int disconnect3sheetFrom1sheet (ReebSpaceData &data, const int &sheet3Id, const int &sheet1Id, const int &biggerId)
 
int disconnect3sheetFrom2sheet (ReebSpaceData &data, const int &sheet3Id, const int &sheet2Id)
 
int disconnect3sheetFrom3sheet (ReebSpaceData &data, const int &sheet3Id, const int &other3SheetId)
 
int flush ()
 
int mergeSheets (const int &smallerId, const int &biggerId)
 
int preMergeSheets (const int &sheetId0, const int &sheetId1)
 
int prepareSimplification ()
 
int printConnectivity (ostream &stream, const ReebSpaceData &data) const
 
int simplifySheets (const double &simplificationThreshold, const SimplificationCriterion &simplificationCriterion)
 
int simplifySheet (const int &sheetId, const SimplificationCriterion &simplificationCriterion)
 

Protected Attributes

int vertexNumber_
 
int tetNumber_
 
double totalArea_
 
double totalVolume_
 
double totalHyperVolume_
 
const void * uField_
 
const void * vField_
 
const vector< pair< int, int > > * edgeList_
 
const vector< vector< int > > * edgeStars_
 
const vector< vector< long long int > > * edgeFans_
 
const vector< vector< pair< int, int > > > * edgeFanLinkEdgeLists_
 
const float * pointSet_
 
vector< int > * sosOffsets_
 
const long long int * tetList_
 
const vector< vector< int > > * tetNeighbors_
 
const vector< vector< int > > * vertexEdgeList_
 
const vector< vector< int > > * vertexStars_
 
bool hasConnectedSheets_
 
bool expand3sheets_
 
ReebSpaceData originalData_
 
ReebSpaceData currentData_
 
vector< pair< int, char > > jacobiSetEdges_
 
vector< int > jacobi2edges_
 
FiberSurface fiberSurface_
 
vector< FiberSurface::VertexfiberSurfaceVertexList_
 
- Protected Attributes inherited from wtfit::Debug
bool lastObject_
 
int debugLevel_
 
int threadNumber_
 
Wrapperwrapper_
 

Detailed Description

ReebSpace processing package.

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

ReebSpace is a processing package that computes the Reeb space of a bivariate scalar function.

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
vtkReebSpace

Member Enumeration Documentation

Enumerator
domainVolume 
rangeArea 
hyperVolume 

Constructor & Destructor Documentation

ReebSpace::ReebSpace ( )
ReebSpace::~ReebSpace ( )

Member Function Documentation

int ReebSpace::compute1sheets ( const vector< pair< int, char > > &  jacobiSet,
vector< pair< int, int > > &  jacobiSetClassification 
)
protected
int ReebSpace::compute1sheetsOnly ( const vector< pair< int, char > > &  jacobiSet,
vector< pair< int, int > > &  jacobiSetClassification 
)
protected
template<class dataTypeU , class dataTypeV >
int ReebSpace::compute2sheetChambers ( )
inlineprotected
template<class dataTypeU , class dataTypeV >
int ReebSpace::compute2sheets ( const vector< pair< int, int > > &  jacobiEdges)
inlineprotected
int ReebSpace::compute3sheet ( const int &  vertexId,
const vector< vector< vector< int > > > &  tetTriangles 
)
protected
int ReebSpace::compute3sheets ( vector< vector< vector< int > > > &  tetTriangles)
protected
template<class dataTypeU , class dataTypeV >
int ReebSpace::computeGeometricalMeasures ( Sheet3 sheet)
inlineprotected
int ReebSpace::connect3sheetTo0sheet ( ReebSpaceData data,
const int &  sheet3Id,
const int &  sheet0Id 
)
protected
int ReebSpace::connect3sheetTo1sheet ( ReebSpaceData data,
const int &  sheet3Id,
const int &  sheet1Id 
)
protected
int ReebSpace::connect3sheetTo2sheet ( ReebSpaceData data,
const int &  sheet3Id,
const int &  sheet2Id 
)
protected
int ReebSpace::connect3sheetTo3sheet ( ReebSpaceData data,
const int &  sheet3Id,
const int &  otherSheet3Id 
)
protected
template<class dataTypeU , class dataTypeV >
int ReebSpace::connectivityPreprocessing ( const vector< vector< int > > &  edgeStarList,
vector< vector< pair< int, int > > > &  edgeFanLinkEdgeLists,
vector< vector< long long int > > &  edgeFans,
vector< int > &  sosOffsets 
) const
inline
int ReebSpace::connectSheets ( )
protected
int ReebSpace::disconnect1sheetFrom0sheet ( ReebSpaceData data,
const int &  sheet1Id,
const int &  sheet0Id,
const int &  biggerId 
)
protected
int ReebSpace::disconnect3sheetFrom0sheet ( ReebSpaceData data,
const int &  sheet3Id,
const int &  sheet0Id 
)
protected
int ReebSpace::disconnect3sheetFrom1sheet ( ReebSpaceData data,
const int &  sheet3Id,
const int &  sheet1Id,
const int &  biggerId 
)
protected
int ReebSpace::disconnect3sheetFrom2sheet ( ReebSpaceData data,
const int &  sheet3Id,
const int &  sheet2Id 
)
protected
int ReebSpace::disconnect3sheetFrom3sheet ( ReebSpaceData data,
const int &  sheet3Id,
const int &  other3SheetId 
)
protected
bool wtfit::ReebSpace::empty ( ) const
inline
template<class dataTypeU , class dataTypeV >
int ReebSpace::execute ( )
inline
int ReebSpace::flush ( )
protected
const Sheet0* wtfit::ReebSpace::get0sheet ( const int &  sheetId) const
inline
const vector<int>* wtfit::ReebSpace::get0sheetSegmentation ( ) const
inline
const Sheet1* wtfit::ReebSpace::get1sheet ( const int &  sheetId) const
inline
const vector<int>* wtfit::ReebSpace::get1sheetSegmentation ( ) const
inline
const Sheet2* wtfit::ReebSpace::get2sheet ( const int &  sheetId) const
inline
const Sheet3* wtfit::ReebSpace::get3sheet ( const int &  sheetId) const
inline
const vector<int>* wtfit::ReebSpace::get3sheetTetSegmentation ( ) const
inline
const vector<int>* wtfit::ReebSpace::get3sheetVertexSegmentation ( ) const
inline
const vector<int>* wtfit::ReebSpace::getEdgeTypes ( ) const
inline
const vector<FiberSurface::Vertex>* wtfit::ReebSpace::getFiberSurfaceVertices ( ) const
inline
int wtfit::ReebSpace::getJacobi2Edge ( const int &  jacobiEdgeId) const
inline
const int wtfit::ReebSpace::getNumberOf2sheets ( ) const
inline
int ReebSpace::mergeSheets ( const int &  smallerId,
const int &  biggerId 
)
protected
template<class dataTypeU , class dataTypeV >
int ReebSpace::perturbate ( const dataTypeU &  uEpsilon = pow(10, -DBL_DIG),
const dataTypeV &  vEpsilon = pow(10, -DBL_DIG) 
) const
inline
int ReebSpace::preMergeSheets ( const int &  sheetId0,
const int &  sheetId1 
)
protected
int ReebSpace::prepareSimplification ( )
protected
int ReebSpace::printConnectivity ( ostream &  stream,
const ReebSpaceData data 
) const
protected
int wtfit::ReebSpace::setEdgeFanLinkEdgeList ( const vector< vector< pair< int, int > > > *  edgeFanLinkEdgeLists)
inline
int wtfit::ReebSpace::setEdgeFans ( const vector< vector< long long int > > *  edgeFans)
inline
int wtfit::ReebSpace::setEdgeList ( const vector< pair< int, int > > *  edgeList)
inline
int wtfit::ReebSpace::setEdgeStars ( const vector< vector< int > > *  edgeStars)
inline
int wtfit::ReebSpace::setExpand3Sheets ( const bool &  onOff)
inline
int wtfit::ReebSpace::setInputField ( const void *  uField,
const void *  vField 
)
inline
int wtfit::ReebSpace::setPointSet ( const float *  pointSet)
inline
int wtfit::ReebSpace::setSosOffsets ( vector< int > *  sosOffsets)
inline
int wtfit::ReebSpace::setTetList ( const long long int *  tetList)
inline
int wtfit::ReebSpace::setTetNeighbors ( const vector< vector< int > > *  tetNeighbors)
inline
int wtfit::ReebSpace::setTetNumber ( const int &  tetNumber)
inline
int wtfit::ReebSpace::setVertexEdgeList ( const vector< vector< int > > *  vertexEdgeList)
inline
int wtfit::ReebSpace::setVertexNumber ( const int &  vertexNumber)
inline

Set the number of vertices in the scalar field.

Parameters
vertexNumberNumber of vertices in the data-set.
Returns
Returns 0 upon success, negative values otherwise.
int wtfit::ReebSpace::setVertexStars ( const vector< vector< int > > *  vertexStars)
inline
template<class dataTypeU , class dataTypeV >
int ReebSpace::simplify ( const double &  simplificationThreshold,
const SimplificationCriterion criterion = rangeArea 
)
inline
int ReebSpace::simplifySheet ( const int &  sheetId,
const SimplificationCriterion simplificationCriterion 
)
protected
int ReebSpace::simplifySheets ( const double &  simplificationThreshold,
const SimplificationCriterion simplificationCriterion 
)
protected

Member Data Documentation

ReebSpaceData wtfit::ReebSpace::currentData_
protected
const vector<vector<pair<int, int> > >* wtfit::ReebSpace::edgeFanLinkEdgeLists_
protected
const vector<vector<long long int> >* wtfit::ReebSpace::edgeFans_
protected
const vector<pair<int, int> >* wtfit::ReebSpace::edgeList_
protected
const vector<vector<int> >* wtfit::ReebSpace::edgeStars_
protected
bool wtfit::ReebSpace::expand3sheets_
protected
FiberSurface wtfit::ReebSpace::fiberSurface_
protected
vector<FiberSurface::Vertex> wtfit::ReebSpace::fiberSurfaceVertexList_
protected
bool wtfit::ReebSpace::hasConnectedSheets_
protected
vector<int> wtfit::ReebSpace::jacobi2edges_
protected
vector<pair<int, char> > wtfit::ReebSpace::jacobiSetEdges_
protected
ReebSpaceData wtfit::ReebSpace::originalData_
protected
const float* wtfit::ReebSpace::pointSet_
protected
vector<int>* wtfit::ReebSpace::sosOffsets_
protected
const long long int* wtfit::ReebSpace::tetList_
protected
const vector<vector<int> >* wtfit::ReebSpace::tetNeighbors_
protected
int wtfit::ReebSpace::tetNumber_
protected
double wtfit::ReebSpace::totalArea_
protected
double wtfit::ReebSpace::totalHyperVolume_
protected
double wtfit::ReebSpace::totalVolume_
protected
const void* wtfit::ReebSpace::uField_
protected
const vector<vector<int> >* wtfit::ReebSpace::vertexEdgeList_
protected
int wtfit::ReebSpace::vertexNumber_
protected
const vector<vector<int> >* wtfit::ReebSpace::vertexStars_
protected
const void * wtfit::ReebSpace::vField_
protected

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