Public Types | Public Member Functions | Static Public Member Functions
vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType > Class Template Reference

#include <tri_edge_collapse_quadric.h>

Inheritance diagram for vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef TriMeshType::CoordType CoordType
typedef TriMeshType::FaceIterator FaceIterator
typedef TriMeshType::FaceType FaceType
typedef TriEdgeCollapse
< TriMeshType, VertexPair,
MYTYPE >::HeapElem 
HeapElem
typedef TriEdgeCollapse
< TriMeshType, VertexPair,
MYTYPE >::HeapType 
HeapType
typedef HelperType QH
typedef
TriEdgeCollapseQuadricParameter 
QParameter
typedef math::Quadric< double > QuadricType
typedef TriMeshType::ScalarType ScalarType
typedef
vcg::tri::TriEdgeCollapse
< TriMeshType, VertexPair,
MYTYPE > 
TEC
typedef TriMeshType::VertexIterator VertexIterator
typedef TriMeshType::VertexType VertexType
typedef vcg::face::VFIterator
< FaceType
VFIterator

Public Member Functions

void AddCollapseToHeap (HeapType &h_ret, VertexType *v0, VertexType *v1, BaseParameterClass *_pp)
CoordType ComputeMinimal ()
CoordType ComputePosition (BaseParameterClass *_pp)
ScalarType ComputePriority (BaseParameterClass *_pp)
void Execute (TriMeshType &m, BaseParameterClass *_pp)
bool IsFeasible (BaseParameterClass *_pp)
 return true if no constraint disallow this operation to be performed (ex: change of topology in edge collapses)
 TriEdgeCollapseQuadric ()
 TriEdgeCollapseQuadric (const VertexPair &p, int i, BaseParameterClass *pp)
void UpdateHeap (HeapType &h_ret, BaseParameterClass *_pp)
 Update the heap as a consequence of this operation.

Static Public Member Functions

static void Finalize (TriMeshType &m, HeapType &, BaseParameterClass *_pp)
static float HeapSimplexRatio (BaseParameterClass *_pp)
static void Init (TriMeshType &m, HeapType &h_ret, BaseParameterClass *_pp)
static void InitQuadric (TriMeshType &m, BaseParameterClass *_pp)
static bool IsSymmetric (BaseParameterClass *_pp)
static bool IsVertexStable (BaseParameterClass *_pp)
static std::vector< typename
TriMeshType::VertexPointer > & 
WV ()

Detailed Description

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
class vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >

Definition at line 136 of file tri_edge_collapse_quadric.h.


Member Typedef Documentation

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
typedef TriMeshType::CoordType vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::CoordType
template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
typedef TriMeshType::FaceIterator vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::FaceIterator

Definition at line 147 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
typedef TriMeshType::FaceType vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::FaceType
template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
typedef TriEdgeCollapse<TriMeshType, VertexPair, MYTYPE>::HeapElem vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::HeapElem
template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
typedef TriEdgeCollapse<TriMeshType, VertexPair, MYTYPE>::HeapType vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::HeapType
template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
typedef HelperType vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::QH

Definition at line 151 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
typedef TriEdgeCollapseQuadricParameter vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::QParameter

Definition at line 150 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
typedef math::Quadric< double > vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::QuadricType

Definition at line 149 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
typedef TriMeshType::ScalarType vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::ScalarType
template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
typedef vcg::tri::TriEdgeCollapse< TriMeshType, VertexPair, MYTYPE > vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::TEC

Definition at line 139 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
typedef TriMeshType::VertexIterator vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::VertexIterator

Definition at line 146 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
typedef TriMeshType::VertexType vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::VertexType
template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
typedef vcg::face::VFIterator<FaceType> vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::VFIterator

Definition at line 148 of file tri_edge_collapse_quadric.h.


Constructor & Destructor Documentation

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::TriEdgeCollapseQuadric ( ) [inline]

Definition at line 159 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::TriEdgeCollapseQuadric ( const VertexPair p,
int  i,
BaseParameterClass pp 
) [inline]

Definition at line 161 of file tri_edge_collapse_quadric.h.


Member Function Documentation

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
void vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::AddCollapseToHeap ( HeapType h_ret,
VertexType v0,
VertexType v1,
BaseParameterClass _pp 
) [inline]

Definition at line 414 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
CoordType vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::ComputeMinimal ( ) [inline]

Definition at line 536 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
CoordType vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::ComputePosition ( BaseParameterClass _pp) [inline]

Definition at line 178 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
ScalarType vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::ComputePriority ( BaseParameterClass _pp) [inline, virtual]

Evaluate the priority (error) for an edge collapse

It simulate the collapse and compute the quadric error generated by this collapse. This error is weighted with

  • aspect ratio of involved triangles
  • normal variation

Reimplemented from vcg::tri::TriEdgeCollapse< TriMeshType, VertexPair, MYTYPE >.

Definition at line 315 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
void vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::Execute ( TriMeshType &  m,
BaseParameterClass _pp 
) [inline]
template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
static void vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::Finalize ( TriMeshType &  m,
HeapType ,
BaseParameterClass _pp 
) [inline, static]

Definition at line 200 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
static float vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::HeapSimplexRatio ( BaseParameterClass ) [inline, static]

An approximation of the size of the heap with respect of the number of simplex of the mesh. When this number is exceeded a clear heap purging is performed. so it is should be reasonably larger than the minimum expected size to avoid too frequent clear heap For example for symmetric edge collapse a 5 is a good guess. while for non symmetric edge collapse a larger number like 9 is a better choice

Reimplemented from vcg::LocalModification< MeshType >.

Definition at line 303 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
static void vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::Init ( TriMeshType &  m,
HeapType h_ret,
BaseParameterClass _pp 
) [inline, static]
template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
static void vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::InitQuadric ( TriMeshType &  m,
BaseParameterClass _pp 
) [inline, static]

Definition at line 456 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
bool vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::IsFeasible ( BaseParameterClass pp) [inline, virtual]

return true if no constraint disallow this operation to be performed (ex: change of topology in edge collapses)

Reimplemented from vcg::tri::TriEdgeCollapse< TriMeshType, VertexPair, MYTYPE >.

Definition at line 169 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
static bool vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::IsSymmetric ( BaseParameterClass _pp) [inline, static]
template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
static bool vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::IsVertexStable ( BaseParameterClass _pp) [inline, static]

Definition at line 305 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
void vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::UpdateHeap ( HeapType ,
BaseParameterClass pp 
) [inline, virtual]

Update the heap as a consequence of this operation.

Reimplemented from vcg::tri::TriEdgeCollapse< TriMeshType, VertexPair, MYTYPE >.

Definition at line 425 of file tri_edge_collapse_quadric.h.

template<class TriMeshType, class VertexPair, class MYTYPE, class HelperType = QInfoStandard<typename TriMeshType::VertexType>>
static std::vector<typename TriMeshType::VertexPointer>& vcg::tri::TriEdgeCollapseQuadric< TriMeshType, VertexPair, MYTYPE, HelperType >::WV ( ) [inline, static]

Definition at line 155 of file tri_edge_collapse_quadric.h.


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


shape_reconstruction
Author(s): Roberto Martín-Martín
autogenerated on Sat Jun 8 2019 18:43:10