Tetramesh

Classes

class  vcg::tetra::Allocator< TM_TYPE >
struct  vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::Edge
class  vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >
 This Class is used for the edge collapse. More...
class  vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >
 This Class is used for split the edges. More...
struct  vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::Face
struct  vcg::LocalOptimization< MeshType >::HeapElem
 the element of the heap More...
struct  vcg::tetra::InsertedVT< I_TETRAMESH_TYPE >
class  vcg::LocalModification< MeshType >
 This abstract class define which functions a local modification to be used in the LocalOptimization. More...
class  vcg::LocalOptimization< MeshType >
class  vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >
class  vcg::tetra::Tetramesh< STL_VERT_CONT, STL_TETRA_CONT >
struct  vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets
class  vcg::tetra::UpdateBounding< ComputeMeshType >
 Management, updating and computation of bonding box on a tetrahedral mesh. More...
class  vcg::tetra::UpdateNormals< ComputeMeshType >
class  vcg::tetra::UpdateTopology< TetraMeshType >
class  vcg::tetra::UpdateTopologyBase< STL_VERT_CONT, STL_TETRA_CONT >

Typedefs

typedef
TetraType::VertexType::CoordType 
vcg::tetra::EdgeSplit::CoordType
 The coordinate type.
typedef
TetraType::VertexType::CoordType 
vcg::tetra::EdgeCollapse::CoordType
 The coordinate type.
typedef
TetraType::VertexType::CoordType 
vcg::tetra::TetraEdgeCollapse::CoordType
 The coordinate type.
typedef pair< int, int > vcg::tetra::EdgeCollapse::FacePair
typedef vcg::Face< VertexType,
vcg::DUMMYEDGETYPE,
vcg::DUMMYFACETYPE > 
vcg::tetra::UpdateNormals::FaceTemp
typedef LocalOptimization
< TETRA_MESH_TYPE >::HeapElem 
vcg::tetra::TetraEdgeCollapse::HeapElem
 definition of the heap element
typedef std::vector< HeapElem > vcg::LocalOptimization::HeapType
typedef LocalModification
< MeshType > * 
vcg::LocalOptimization::LocModPtrType
typedef LocalModification
< MeshType > 
vcg::LocalOptimization::LocModType
typedef VertexType::NormalType vcg::tetra::UpdateNormals::NormalType
typedef PosLoop< TetraType > vcg::tetra::EdgeCollapse::PosLType
 The HEdgePos Loop type.
typedef PosLoop< TetraType > vcg::tetra::TetraEdgeCollapse::PosLType
 The HEdgePos Loop type.
typedef PosLoop< TetraType > vcg::tetra::EdgeSplit::PosType
 The HEdgePos type.
typedef Pos< TetraType > vcg::tetra::EdgeCollapse::PosType
 The HEdgePos type.
typedef Pos< TetraType > vcg::tetra::TetraEdgeCollapse::PosType
 The HEdgePos type.
typedef
TetraMeshType::VertexType::ScalarType 
vcg::tetra::EdgeCollapse::ScalarType
 The scalar type.
typedef MeshType::ScalarType vcg::LocalOptimization::ScalarType
typedef MeshType::ScalarType vcg::LocalModification::ScalarType
typedef
TETRA_MESH_TYPE::VertexType::ScalarType 
vcg::tetra::TetraEdgeCollapse::ScalarType
 The scalar type.
typedef vcg::tetra::Allocator
< TetraMeshType > 
vcg::tetra::EdgeSplit::TetraAllocator
 The allocator type.
typedef
TetraMeshType::TetraContainer 
vcg::tetra::EdgeSplit::TetraContainer
 the container of tetrahedron type
typedef
TetraMeshType::TetraContainer 
vcg::tetra::EdgeCollapse::TetraContainer
 the container of tetrahedron type
typedef
TetraMeshType::TetraIterator 
vcg::tetra::UpdateNormals::TetraIterator
typedef MeshType::TetraIterator vcg::tetra::UpdateBounding::TetraIterator
typedef
TetraMeshType::TetraIterator 
vcg::tetra::EdgeSplit::TetraIterator
 The tetra iterator type.
typedef
TetraMeshType::TetraIterator 
vcg::tetra::EdgeCollapse::TetraIterator
 The tetra iterator type.
typedef TetraMeshType::TetraPointer vcg::tetra::UpdateNormals::TetraPointer
typedef MeshType::TetraPointer vcg::tetra::UpdateBounding::TetraPointer
typedef TetraMeshType::TetraType vcg::tetra::UpdateNormals::TetraType
typedef MeshType::TetraType vcg::tetra::UpdateBounding::TetraType
typedef TetraMeshType::TetraType vcg::tetra::EdgeSplit::TetraType
 The tetrahedron type.
typedef TetraMeshType::TetraType vcg::tetra::EdgeCollapse::TetraType
 The tetrahedron type.
typedef
vcg::tetra::UpdateTetraTopology
< VertexContainer,
TetraContainer > 
vcg::tetra::EdgeSplit::Topology
 The topology updater type.
typedef
vcg::tetra::UpdateTetraTopology
< VertexContainer,
TetraContainer > 
vcg::tetra::EdgeCollapse::Topology
 The topology updater type.
typedef vcg::tri::TriMesh
< std::vector< VertexType >
, std::vector< FaceTemp > > 
vcg::tetra::UpdateNormals::TriMeshTemp
typedef
vcg::tetra::UpdateNormals
< TetraMeshType > 
vcg::tetra::EdgeCollapse::UpdateNormals
 the normal updater type
typedef
TetraMeshType::VertexContainer 
vcg::tetra::EdgeSplit::VertexContainer
 the container of vertex type
typedef
TetraMeshType::VertexContainer 
vcg::tetra::EdgeCollapse::VertexContainer
 the container of vertex type
typedef
TetraMeshType::VertexIterator 
vcg::tetra::UpdateNormals::VertexIterator
typedef MeshType::VertexIterator vcg::tetra::UpdateBounding::VertexIterator
typedef
TetraMeshType::VertexIterator 
vcg::tetra::EdgeSplit::VertexIterator
 The vertex iterator type.
typedef
TetraMeshType::VertexIterator 
vcg::tetra::EdgeCollapse::VertexIterator
 The vertex iterator type.
typedef
TetraMeshType::VertexPointer 
vcg::tetra::UpdateNormals::VertexPointer
typedef MeshType::VertexPointer vcg::tetra::UpdateBounding::VertexPointer
typedef TetraMeshType::VertexType vcg::tetra::UpdateNormals::VertexType
typedef MeshType::VertexType vcg::tetra::UpdateBounding::VertexType
typedef TetraType::VertexType vcg::tetra::EdgeSplit::VertexType
 The vertex type.
typedef TetraType::VertexType vcg::tetra::EdgeCollapse::VertexType
 The vertex type.
typedef TetraType::VertexType vcg::tetra::TetraEdgeCollapse::VertexType
 The vertex type.

Enumerations

enum  vcg::LocalOptimization::LOTermination {
  vcg::LocalOptimization::LOnSimplices = 0x01, vcg::LocalOptimization::LOnVertices = 0x02, vcg::LocalOptimization::LOnOps = 0x04, vcg::LocalOptimization::LOMetric = 0x08,
  vcg::LocalOptimization::LOTime = 0x10
}
 

termination conditions

More...

Functions

void vcg::tetra::EdgeSplit::_AddNewTetrahedrons (TetraMeshType &tm, PosType pos, VertexType *vnew)
VertexType * vcg::tetra::EdgeSplit::_AddVertexEdge (TetraMeshType &tm, const TetraType &t, const int &edge, const double &alfa)
 add a vertex into the edge at distance alfa ( 0<alfa<1) to the first vertex of the edge
ScalarType vcg::tetra::TetraEdgeCollapse::_AspectRatioMedia (PosType p)
void vcg::tetra::EdgeSplit::_AssertOrder (TetraType *t, VertexType *v0, VertexType *v1, VertexType *v2, VertexType *v3)
 Assert the right order of vertex that compose the tetrahedron.
static void vcg::tetra::UpdateNormals::_ClearNormal (TetraMeshType &m)
static int vcg::tetra::EdgeCollapse::_Collapse (PosType p, CoordType NewP)
 collpse de edge specified by pos (the first vertex on edge remain)
void vcg::tetra::EdgeSplit::_ConnectTTTopology (TetraType *t0, int i0, TetraType *t1, int i1)
 Connect trought Tetrahedron-Tetrahedron Topology t0 and t1 with faces i0 and i1.
void vcg::tetra::EdgeSplit::_ControlConnection (TetraType *oldtp0, TetraType *newtp0)
 control if the connections between tetrahedron created have the right shared vertices
void vcg::tetra::EdgeSplit::_DeleteOldTetra ()
 Mark as deleted the tetrahedron that must be substituted.
void vcg::tetra::EdgeSplit::_Divide (PosType pos, VertexType *vnew, TetraType *newtp0, TetraType *newtp1, bool invert)
 Divide the tetrahadron in pos in two tetrahedrons using the new vertex vnew.
static VertexType & vcg::tetra::EdgeCollapse::_DummyV ()
static map< Edge, char > & vcg::tetra::EdgeCollapse::_EdgeMark ()
static map< Face, char > & vcg::tetra::EdgeCollapse::_FaceMark ()
static FacePair vcg::tetra::EdgeCollapse::_FindNoEdgeFace (TetraType *t, int edge)
 select the 2 faces that does not share the edge
PosType vcg::tetra::EdgeSplit::_FindPos (TetraType *t, int edge)
 Built an Half edge on tetrahedron t using edge edge.
static bool vcg::tetra::EdgeCollapse::_FlipCondition (PosType pos, CoordType NewP)
 verify the flip condition
static int vcg::tetra::EdgeSplit::_GetDirRot (int indexE, int indexF)
static int vcg::tetra::EdgeSplit::_GetMapFaceEdgeRot (const int &indexE, const int &indexF)
static int vcg::tetra::EdgeSplit::_GetMapVertEdgeRot (const int &indexE, const int &indexV)
static int & vcg::tetra::TetraEdgeCollapse::_Imark ()
 mark for up_dating
static void vcg::tetra::EdgeCollapse::_InitTetrahedronValues (VertexType *v)
 update the normal of the modified tetrahedrons ond the normal of the vertex that remain after collapse
bool vcg::tetra::EdgeSplit::_InvertRotation (PosType pos)
static bool vcg::tetra::EdgeCollapse::_LinkConditionsE (PosType pos)
 verify the link conditions on edges
static bool vcg::tetra::EdgeCollapse::_LinkConditionsF (PosType pos)
 verify the link conditions on faces
static bool vcg::tetra::EdgeCollapse::_LinkConditionsV ()
 verify the link conditions on vertices
static bool vcg::tetra::EdgeCollapse::_QuickConditions (PosType pos)
void vcg::tetra::EdgeSplit::_SetDefaultTTExtern (TetraType *t)
 set as extern the 4 faces of the tetrahedron
void vcg::tetra::EdgeSplit::_SetDefultVTTopology (TetraType *t)
 set the default v-t topology
static TetraSets & vcg::tetra::EdgeCollapse::_Sets ()
void vcg::tetra::EdgeSplit::_SubstituteTTTopology (TetraType *old_t, TetraType *new_t, int edgerot, int face)
void vcg::tetra::EdgeSplit::_SubstituteVTTopology (TetraType *told, TetraType *newtp0, TetraType *newtp1)
 substitute the told tetrahedon on VT topology with newtp0 and newtp1 as created
ScalarType vcg::tetra::TetraEdgeCollapse::_VolumePreservingError (PosType &pos, CoordType &new_point, int nsteps)
 Modify pos and alfa to obtain the collapse that minimize the error.
static ScalarType vcg::tetra::EdgeCollapse::AspectRatioCollapsed (PosType p)
static void vcg::tetra::UpdateBounding::Box (ComputeMeshType &m)
 Calculates the limits of bounding box of tetrahedral mesh.
static bool vcg::tetra::EdgeCollapse::CheckPreconditions (PosType pos, CoordType NewP)
 check the topologycal preserving conditions for the collapse indicated by pos
void vcg::tetra::EdgeCollapse::TetraSets::clear ()
void vcg::LocalOptimization::ClearHeap ()
void vcg::LocalOptimization::ClearHeapOld ()
 erase from the heap the operations that are out of date
void vcg::LocalOptimization::ClearTermination ()
void vcg::LocalOptimization::ClearTerminationFlag (int v)
template<class TetraPtrContainer >
void vcg::tetra::Component (TetraPtrContainer &src, TetraPtrContainer &conn_com)
 assumes TTTopology has been computed
ScalarType vcg::tetra::TetraEdgeCollapse::ComputeError ()
virtual ScalarType vcg::LocalModification::ComputePriority ()=0
 Compute the priority to be used in the heap.
ScalarType vcg::tetra::TetraEdgeCollapse::ComputePriority ()
 Compute the priority to be used in the heap.
static int vcg::tetra::EdgeCollapse::DoCollapse (PosType p, CoordType newP)
 do the collapse on the edge in postype p
bool vcg::LocalOptimization::DoOptimization ()
 main cycle of optimization
VertexType * vcg::tetra::EdgeSplit::DoSplit (TetraMeshType &tm, TetraType *t, int edge, double alfa)
 vcg::tetra::EdgeCollapse::Edge::Edge (VertexType *a, VertexType *b)
 vcg::tetra::EdgeCollapse::EdgeCollapse ()
 Default Constructor.
 vcg::tetra::EdgeSplit::EdgeSplit ()
 Default Constructor.
virtual void vcg::LocalModification::Execute (MeshType &m)=0
 Perform the operation and return the variation in the number of simplicies (>0 is refinement, <0 is simplification).
void vcg::tetra::TetraEdgeCollapse::Execute (TETRA_MESH_TYPE &tm)
 vcg::tetra::EdgeCollapse::Face::Face (VertexType *a, VertexType *b, VertexType *c)
template<class LocalModificationType >
void vcg::LocalOptimization::Finalize ()
static void vcg::tetra::EdgeCollapse::FindSets (vcg::tetra::Pos< TetraType > pos)
 finds sets used for all test in edge collapse
bool vcg::LocalOptimization::GoalReached ()
 vcg::LocalOptimization::HeapElem::HeapElem (LocModPtrType _locModPtr)
static float vcg::LocalModification::HeapSimplexRatio ()
virtual const char * vcg::LocalModification::Info (MeshType &)
virtual const char * vcg::tetra::TetraEdgeCollapse::Info (TETRA_MESH_TYPE &m)
template<class LocalModificationType >
void vcg::LocalOptimization::Init ()
static void vcg::LocalModification::Init (MeshType &m, HeapType &)
 perform initialization
static void vcg::tetra::TetraEdgeCollapse::Init (TETRA_MESH_TYPE &m, typename LocalOptimization< TETRA_MESH_TYPE >::HeapType &h_ret)
 perform initialization
virtual bool vcg::LocalModification::IsFeasible ()=0
 return true if no constraint disallow this operation to be performed (ex: change of topology in edge collapses)
bool vcg::tetra::TetraEdgeCollapse::IsFeasible ()
 return true if no constraint disallow this operation to be performed (ex: change of topology in edge collapses)
static bool vcg::tetra::EdgeCollapse::isMarkedE (Edge E, char M)
static bool vcg::tetra::EdgeCollapse::isMarkedF (Face F, char M)
virtual ModifierType vcg::LocalModification::IsOfType ()=0
 return the type of operation
ModifierType vcg::tetra::TetraEdgeCollapse::IsOfType ()
 return the type of operation
bool vcg::LocalOptimization::IsTerminationFlag (int v)
bool vcg::LocalOptimization::HeapElem::IsUpToDate ()
virtual bool vcg::LocalModification::IsUpToDate ()=0
 return true if the data have not changed since it was created
bool vcg::tetra::TetraEdgeCollapse::IsUpToDate ()
 return true if the data have not changed since it was created
 vcg::LocalModification::LocalModification ()
const bool vcg::tetra::EdgeCollapse::Edge::operator< (const Edge &e) const
const bool vcg::tetra::EdgeCollapse::Face::operator< (const Face &f) const
const bool vcg::LocalOptimization::HeapElem::operator< (const HeapElem &h) const
const bool vcg::tetra::EdgeCollapse::Edge::operator== (const Edge &e) const
const bool vcg::tetra::EdgeCollapse::Face::operator== (const Face &f) const
static void vcg::tetra::EdgeCollapse::orMarkE (Edge E, char M)
static void vcg::tetra::EdgeCollapse::orMarkF (Face F, char M)
static void vcg::tetra::UpdateNormals::PerTetraFace (TetraMeshType &m)
 Calculates the vertex normal (if stored in the current face type).
static void vcg::tetra::UpdateNormals::PerVertex (TetraMeshType &m)
static void vcg::tetra::UpdateNormals::PerVertex (VertexType *v)
 Calculates the vertex normal of a vertex.
virtual ScalarType vcg::LocalModification::Priority () const =0
 Return the priority to be used in the heap (implement static priority).
virtual ScalarType vcg::tetra::TetraEdgeCollapse::Priority () const
 Return the priority to be used in the heap (implement static priority).
static void vcg::tetra::EdgeCollapse::Reset ()
 clean everything
void vcg::LocalOptimization::SetTargetMetric (ScalarType tm)
void vcg::LocalOptimization::SetTargetOperations (int to)
void vcg::LocalOptimization::SetTargetSimplices (int ts)
void vcg::LocalOptimization::SetTargetVertices (int tv)
void vcg::LocalOptimization::SetTerminationFlag (int v)
void vcg::LocalOptimization::SetTimeBudget (float tb)
template<class S_TETRAMESH_TYPE , class STL_CONT >
void vcg::tetra::SubSet (S_TETRAMESH_TYPE &m, STL_CONT &subSet)
 vcg::tetra::TetraEdgeCollapse::TetraEdgeCollapse (PosType p, int mark)
 Constructor with postype.
 vcg::tetra::TetraEdgeCollapse::TetraEdgeCollapse ()
 Default Constructor.
virtual void vcg::LocalModification::UpdateHeap (HeapType &)=0
 Update the heap as a consequence of this operation.
void vcg::tetra::TetraEdgeCollapse::UpdateHeap (typename LocalOptimization< TETRA_MESH_TYPE >::HeapType &h_ret)
static ScalarType vcg::tetra::EdgeCollapse::VolumeOriginal ()
 return the sum of volumes of the union of stars on vertices (the original volume of tetrahedrons)
static ScalarType vcg::tetra::EdgeCollapse::VolumeSimulateCollapse (PosType Pos, CoordType &newP)
 Calculate the volume on the vertex resulting after collapse...
 vcg::tetra::EdgeCollapse::~EdgeCollapse ()
 vcg::tetra::EdgeSplit::~EdgeSplit ()
 vcg::LocalOptimization::HeapElem::~HeapElem ()
virtual vcg::LocalModification::~LocalModification ()
 vcg::LocalOptimization::~LocalOptimization ()
 Default distructor.
 vcg::tetra::TetraEdgeCollapse::~TetraEdgeCollapse ()

Variables

vcg::tetra::EdgeCollapse
< TETRA_MESH_TYPE > 
vcg::tetra::TetraEdgeCollapse::_EC
 the pointer to edge collapser method
Point3< ScalarTypevcg::tetra::TetraEdgeCollapse::_NewPoint
 the new point that substitute the edge
int vcg::tetra::EdgeSplit::_nT
 The number of tetrahedrons that are substituted.
ScalarType vcg::tetra::TetraEdgeCollapse::_priority
 priority in the heap
TetraType * vcg::tetra::EdgeSplit::_toDel [30]
 the tetrahedron that must mark as Deleted after substitution
Topology vcg::tetra::EdgeSplit::_Topo
ScalarType vcg::LocalOptimization::currMetric
std::vector< TetraType * > vcg::tetra::EdgeCollapse::TetraSets::E
double vcg::LocalOptimization::e
HeapType vcg::LocalOptimization::h
 the heap of operations
float vcg::LocalOptimization::HeapSimplexRatio
std::vector< char > vcg::tetra::EdgeCollapse::TetraSets::indexE
std::vector< char > vcg::tetra::EdgeCollapse::TetraSets::indexv0
std::vector< char > vcg::tetra::EdgeCollapse::TetraSets::indexv1
LocModPtrType vcg::LocalOptimization::HeapElem::locModPtr
 pointer to instance of local modifier
MeshType & vcg::LocalOptimization::m
 the mesh to optimize
std::vector< TetraType * > vcg::tetra::EdgeCollapse::TetraSets::no_E
int vcg::LocalOptimization::nPerfmormedOps
int vcg::LocalOptimization::nTargetOps
int vcg::LocalOptimization::nTargetSimplices
int vcg::LocalOptimization::nTargetVertices
PosType vcg::tetra::TetraEdgeCollapse::pos
 the pos of collapse
float vcg::LocalOptimization::HeapElem::pri
int vcg::LocalOptimization::start
ScalarType vcg::LocalOptimization::targetMetric
int vcg::LocalOptimization::tf
float vcg::LocalOptimization::timeBudget
std::vector< TetraType * > vcg::tetra::EdgeCollapse::TetraSets::v0_U_v1
std::vector< TetraType * > vcg::tetra::EdgeCollapse::TetraSets::v1
VertexType * vcg::tetra::EdgeCollapse::Edge::v1
VertexType * vcg::tetra::TetraEdgeCollapse::vrem
 pointer to vertex that remain

Detailed Description


Typedef Documentation

template<class TETRA_MESH_TYPE >
typedef TetraType::VertexType::CoordType vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::CoordType [inherited]

The coordinate type.

Definition at line 56 of file edge_split.h.

template<class TETRA_MESH_TYPE >
typedef TetraType::VertexType::CoordType vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::CoordType [inherited]

The coordinate type.

Definition at line 57 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
typedef TetraType::VertexType::CoordType vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::CoordType [private, inherited]

The coordinate type.

Definition at line 67 of file tetra_edge_collapse.h.

template<class TETRA_MESH_TYPE >
typedef pair<int,int> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::FacePair [private, inherited]

Definition at line 81 of file tetramesh/edge_collapse.h.

template<class ComputeMeshType >
typedef vcg::Face<VertexType,vcg::DUMMYEDGETYPE,vcg::DUMMYFACETYPE> vcg::tetra::UpdateNormals< ComputeMeshType >::FaceTemp [inherited]

Definition at line 88 of file tetramesh/update/normal.h.

template<class TETRA_MESH_TYPE >
typedef LocalOptimization<TETRA_MESH_TYPE>::HeapElem vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::HeapElem [private, inherited]

definition of the heap element

Definition at line 77 of file tetra_edge_collapse.h.

template<class MeshType>
typedef std::vector<HeapElem> vcg::LocalOptimization< MeshType >::HeapType [inherited]

Definition at line 172 of file local_optimization.h.

template<class MeshType>
typedef LocalModification<MeshType>* vcg::LocalOptimization< MeshType >::LocModPtrType [inherited]

Definition at line 176 of file local_optimization.h.

template<class MeshType>
typedef LocalModification<MeshType> vcg::LocalOptimization< MeshType >::LocModType [inherited]

Definition at line 174 of file local_optimization.h.

template<class ComputeMeshType >
typedef VertexType::NormalType vcg::tetra::UpdateNormals< ComputeMeshType >::NormalType [inherited]

Definition at line 86 of file tetramesh/update/normal.h.

template<class TETRA_MESH_TYPE >
typedef PosLoop<TetraType> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::PosLType [inherited]

The HEdgePos Loop type.

Definition at line 67 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
typedef PosLoop<TetraType> vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::PosLType [private, inherited]

The HEdgePos Loop type.

Definition at line 75 of file tetra_edge_collapse.h.

template<class TETRA_MESH_TYPE >
typedef PosLoop<TetraType> vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::PosType [inherited]

The HEdgePos type.

Definition at line 62 of file edge_split.h.

template<class TETRA_MESH_TYPE >
typedef Pos<TetraType> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::PosType [inherited]

The HEdgePos type.

Definition at line 65 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
typedef Pos<TetraType> vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::PosType [private, inherited]

The HEdgePos type.

Definition at line 73 of file tetra_edge_collapse.h.

template<class TETRA_MESH_TYPE >
typedef TetraMeshType::VertexType::ScalarType vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::ScalarType [inherited]

The scalar type.

Definition at line 59 of file tetramesh/edge_collapse.h.

template<class MeshType>
typedef MeshType::ScalarType vcg::LocalOptimization< MeshType >::ScalarType [inherited]

Definition at line 168 of file local_optimization.h.

template<class MeshType >
typedef MeshType::ScalarType vcg::LocalModification< MeshType >::ScalarType [inherited]
template<class TETRA_MESH_TYPE >
typedef TETRA_MESH_TYPE::VertexType::ScalarType vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::ScalarType [private, inherited]

The scalar type.

Reimplemented from vcg::LocalModification< MeshType >.

Definition at line 69 of file tetra_edge_collapse.h.

template<class TETRA_MESH_TYPE >
typedef vcg::tetra::Allocator<TetraMeshType> vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::TetraAllocator [inherited]

The allocator type.

Definition at line 66 of file edge_split.h.

template<class TETRA_MESH_TYPE >
typedef TetraMeshType::TetraContainer vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::TetraContainer [inherited]

the container of tetrahedron type

Definition at line 58 of file edge_split.h.

template<class TETRA_MESH_TYPE >
typedef TetraMeshType::TetraContainer vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraContainer [inherited]

the container of tetrahedron type

Definition at line 61 of file tetramesh/edge_collapse.h.

template<class ComputeMeshType >
typedef TetraMeshType::TetraIterator vcg::tetra::UpdateNormals< ComputeMeshType >::TetraIterator [inherited]

Definition at line 85 of file tetramesh/update/normal.h.

template<class ComputeMeshType >
typedef MeshType::TetraIterator vcg::tetra::UpdateBounding< ComputeMeshType >::TetraIterator [inherited]

Definition at line 54 of file tetramesh/update/bounding.h.

template<class TETRA_MESH_TYPE >
typedef TetraMeshType::TetraIterator vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::TetraIterator [inherited]

The tetra iterator type.

Definition at line 54 of file edge_split.h.

template<class TETRA_MESH_TYPE >
typedef TetraMeshType::TetraIterator vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraIterator [inherited]

The tetra iterator type.

Definition at line 55 of file tetramesh/edge_collapse.h.

template<class ComputeMeshType >
typedef TetraMeshType::TetraPointer vcg::tetra::UpdateNormals< ComputeMeshType >::TetraPointer [inherited]

Definition at line 84 of file tetramesh/update/normal.h.

template<class ComputeMeshType >
typedef MeshType::TetraPointer vcg::tetra::UpdateBounding< ComputeMeshType >::TetraPointer [inherited]

Definition at line 53 of file tetramesh/update/bounding.h.

template<class ComputeMeshType >
typedef TetraMeshType::TetraType vcg::tetra::UpdateNormals< ComputeMeshType >::TetraType [inherited]

Definition at line 83 of file tetramesh/update/normal.h.

template<class ComputeMeshType >
typedef MeshType::TetraType vcg::tetra::UpdateBounding< ComputeMeshType >::TetraType [inherited]

Definition at line 52 of file tetramesh/update/bounding.h.

template<class TETRA_MESH_TYPE >
typedef TetraMeshType::TetraType vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::TetraType [inherited]

The tetrahedron type.

Definition at line 48 of file edge_split.h.

template<class TETRA_MESH_TYPE >
typedef TetraMeshType::TetraType vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraType [inherited]

The tetrahedron type.

Definition at line 49 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
typedef vcg::tetra::UpdateTetraTopology<VertexContainer,TetraContainer> vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::Topology [inherited]

The topology updater type.

Definition at line 64 of file edge_split.h.

template<class TETRA_MESH_TYPE >
typedef vcg::tetra::UpdateTetraTopology<VertexContainer,TetraContainer> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::Topology [inherited]

The topology updater type.

Definition at line 69 of file tetramesh/edge_collapse.h.

template<class ComputeMeshType >
typedef vcg::tri::TriMesh< std::vector<VertexType>,std::vector<FaceTemp> > vcg::tetra::UpdateNormals< ComputeMeshType >::TriMeshTemp [inherited]

Definition at line 89 of file tetramesh/update/normal.h.

template<class TETRA_MESH_TYPE >
typedef vcg::tetra::UpdateNormals<TetraMeshType> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::UpdateNormals [inherited]

the normal updater type

Definition at line 71 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
typedef TetraMeshType::VertexContainer vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::VertexContainer [inherited]

the container of vertex type

Definition at line 60 of file edge_split.h.

template<class TETRA_MESH_TYPE >
typedef TetraMeshType::VertexContainer vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::VertexContainer [inherited]

the container of vertex type

Definition at line 63 of file tetramesh/edge_collapse.h.

template<class ComputeMeshType >
typedef TetraMeshType::VertexIterator vcg::tetra::UpdateNormals< ComputeMeshType >::VertexIterator [inherited]

Definition at line 82 of file tetramesh/update/normal.h.

template<class ComputeMeshType >
typedef MeshType::VertexIterator vcg::tetra::UpdateBounding< ComputeMeshType >::VertexIterator [inherited]

Definition at line 51 of file tetramesh/update/bounding.h.

template<class TETRA_MESH_TYPE >
typedef TetraMeshType::VertexIterator vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::VertexIterator [inherited]

The vertex iterator type.

Definition at line 52 of file edge_split.h.

template<class TETRA_MESH_TYPE >
typedef TetraMeshType::VertexIterator vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::VertexIterator [inherited]

The vertex iterator type.

Definition at line 53 of file tetramesh/edge_collapse.h.

template<class ComputeMeshType >
typedef TetraMeshType::VertexPointer vcg::tetra::UpdateNormals< ComputeMeshType >::VertexPointer [inherited]

Definition at line 81 of file tetramesh/update/normal.h.

template<class ComputeMeshType >
typedef MeshType::VertexPointer vcg::tetra::UpdateBounding< ComputeMeshType >::VertexPointer [inherited]

Definition at line 50 of file tetramesh/update/bounding.h.

template<class ComputeMeshType >
typedef TetraMeshType::VertexType vcg::tetra::UpdateNormals< ComputeMeshType >::VertexType [inherited]

Definition at line 80 of file tetramesh/update/normal.h.

template<class ComputeMeshType >
typedef MeshType::VertexType vcg::tetra::UpdateBounding< ComputeMeshType >::VertexType [inherited]

Definition at line 49 of file tetramesh/update/bounding.h.

template<class TETRA_MESH_TYPE >
typedef TetraType::VertexType vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::VertexType [inherited]

The vertex type.

Definition at line 50 of file edge_split.h.

template<class TETRA_MESH_TYPE >
typedef TetraType::VertexType vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::VertexType [inherited]

The vertex type.

Definition at line 51 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
typedef TetraType::VertexType vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::VertexType [private, inherited]

The vertex type.

Definition at line 65 of file tetra_edge_collapse.h.


Enumeration Type Documentation

template<class MeshType>
enum vcg::LocalOptimization::LOTermination [inherited]

termination conditions

Enumerator:
LOnSimplices 
LOnVertices 
LOnOps 
LOMetric 
LOTime 

Definition at line 181 of file local_optimization.h.


Function Documentation

template<class TETRA_MESH_TYPE >
void vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_AddNewTetrahedrons ( TetraMeshType tm,
PosType  pos,
VertexType vnew 
) [inline, private, inherited]

sobstitute the old tetrahedrons that share the edge in pos with new ones that share the vertex vnew that divide the old edge

Definition at line 323 of file edge_split.h.

template<class TETRA_MESH_TYPE >
VertexType* vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_AddVertexEdge ( TetraMeshType tm,
const TetraType t,
const int &  edge,
const double &  alfa 
) [inline, private, inherited]

add a vertex into the edge at distance alfa ( 0<alfa<1) to the first vertex of the edge

Definition at line 86 of file edge_split.h.

template<class TETRA_MESH_TYPE >
ScalarType vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::_AspectRatioMedia ( PosType  p  )  [inline, private, inherited]

Return the aspect Ratio media of the tetrahedrons that share the adge to collapse

Definition at line 113 of file tetra_edge_collapse.h.

template<class TETRA_MESH_TYPE >
void vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_AssertOrder ( TetraType t,
VertexType v0,
VertexType v1,
VertexType v2,
VertexType v3 
) [inline, private, inherited]

Assert the right order of vertex that compose the tetrahedron.

Definition at line 190 of file edge_split.h.

template<class ComputeMeshType >
static void vcg::tetra::UpdateNormals< ComputeMeshType >::_ClearNormal ( TetraMeshType m  )  [inline, static, private, inherited]

Definition at line 141 of file tetramesh/update/normal.h.

template<class TETRA_MESH_TYPE >
static int vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::_Collapse ( PosType  p,
CoordType  NewP 
) [inline, static, private, inherited]

collpse de edge specified by pos (the first vertex on edge remain)

Definition at line 211 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
void vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_ConnectTTTopology ( TetraType t0,
int  i0,
TetraType t1,
int  i1 
) [inline, private, inherited]

Connect trought Tetrahedron-Tetrahedron Topology t0 and t1 with faces i0 and i1.

Definition at line 199 of file edge_split.h.

template<class TETRA_MESH_TYPE >
void vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_ControlConnection ( TetraType oldtp0,
TetraType newtp0 
) [inline, private, inherited]

control if the connections between tetrahedron created have the right shared vertices

Definition at line 273 of file edge_split.h.

template<class TETRA_MESH_TYPE >
void vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_DeleteOldTetra (  )  [inline, private, inherited]

Mark as deleted the tetrahedron that must be substituted.

Definition at line 450 of file edge_split.h.

template<class TETRA_MESH_TYPE >
void vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_Divide ( PosType  pos,
VertexType vnew,
TetraType newtp0,
TetraType newtp1,
bool  invert 
) [inline, private, inherited]

Divide the tetrahadron in pos in two tetrahedrons using the new vertex vnew.

Definition at line 213 of file edge_split.h.

template<class TETRA_MESH_TYPE >
static VertexType& vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::_DummyV (  )  [inline, static, private, inherited]

Definition at line 168 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
static map<Edge,char>& vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::_EdgeMark (  )  [inline, static, private, inherited]

Definition at line 158 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
static map<Face,char>& vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::_FaceMark (  )  [inline, static, private, inherited]

Definition at line 163 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
static FacePair vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::_FindNoEdgeFace ( TetraType t,
int  edge 
) [inline, static, private, inherited]

select the 2 faces that does not share the edge

Definition at line 181 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
PosType vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_FindPos ( TetraType t,
int  edge 
) [inline, private, inherited]

Built an Half edge on tetrahedron t using edge edge.

Definition at line 181 of file edge_split.h.

template<class TETRA_MESH_TYPE >
static bool vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::_FlipCondition ( PosType  pos,
CoordType  NewP 
) [inline, static, private, inherited]

verify the flip condition

Definition at line 700 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
static int vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_GetDirRot ( int  indexE,
int  indexF 
) [inline, static, private, inherited]

Returns the rotation sense during the loop on the edge to divide according to rotation of the tetraedron that trasform it in the basic case

Definition at line 158 of file edge_split.h.

template<class TETRA_MESH_TYPE >
static int vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_GetMapFaceEdgeRot ( const int &  indexE,
const int &  indexF 
) [inline, static, private, inherited]

Transform the face index according to rotation of the tetraedron that trasform it in the basic case

Definition at line 135 of file edge_split.h.

template<class TETRA_MESH_TYPE >
static int vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_GetMapVertEdgeRot ( const int &  indexE,
const int &  indexV 
) [inline, static, private, inherited]

Transform the vertex index according to rotation of the tetraedron that trasform it in the basic case

Definition at line 112 of file edge_split.h.

template<class TETRA_MESH_TYPE >
static int& vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::_Imark (  )  [inline, static, private, inherited]

mark for up_dating

Definition at line 85 of file tetra_edge_collapse.h.

template<class TETRA_MESH_TYPE >
static void vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::_InitTetrahedronValues ( VertexType v  )  [inline, static, private, inherited]

update the normal of the modified tetrahedrons ond the normal of the vertex that remain after collapse

Definition at line 741 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
bool vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_InvertRotation ( PosType  pos  )  [inline, private, inherited]

Definition at line 253 of file edge_split.h.

template<class TETRA_MESH_TYPE >
static bool vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::_LinkConditionsE ( PosType  pos  )  [inline, static, private, inherited]

verify the link conditions on edges

Definition at line 439 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
static bool vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::_LinkConditionsF ( PosType  pos  )  [inline, static, private, inherited]

verify the link conditions on faces

Definition at line 349 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
static bool vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::_LinkConditionsV (  )  [inline, static, private, inherited]

verify the link conditions on vertices

Definition at line 574 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
static bool vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::_QuickConditions ( PosType  pos  )  [inline, static, private, inherited]

look if the 2 other faces that don't share the vertex are external on not

Definition at line 524 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
void vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_SetDefaultTTExtern ( TetraType t  )  [inline, private, inherited]

set as extern the 4 faces of the tetrahedron

Definition at line 290 of file edge_split.h.

template<class TETRA_MESH_TYPE >
void vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_SetDefultVTTopology ( TetraType t  )  [inline, private, inherited]

set the default v-t topology

Definition at line 100 of file edge_split.h.

template<class TETRA_MESH_TYPE >
static TetraSets& vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::_Sets (  )  [inline, static, private, inherited]

Definition at line 173 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
void vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_SubstituteTTTopology ( TetraType old_t,
TetraType new_t,
int  edgerot,
int  face 
) [inline, private, inherited]

substitute in Tetra Tetra Topology the tetrahedron old_t with new_t in according to face and edge

Definition at line 302 of file edge_split.h.

template<class TETRA_MESH_TYPE >
void vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_SubstituteVTTopology ( TetraType told,
TetraType newtp0,
TetraType newtp1 
) [inline, private, inherited]

substitute the told tetrahedon on VT topology with newtp0 and newtp1 as created

Definition at line 259 of file edge_split.h.

template<class TETRA_MESH_TYPE >
ScalarType vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::_VolumePreservingError ( PosType pos,
CoordType new_point,
int  nsteps 
) [inline, private, inherited]

Modify pos and alfa to obtain the collapse that minimize the error.

Definition at line 131 of file tetra_edge_collapse.h.

template<class TETRA_MESH_TYPE >
static ScalarType vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::AspectRatioCollapsed ( PosType  p  )  [inline, static, inherited]

Return the aspect Ratio media of the tetrahedrons that share the adge to collapse

Definition at line 789 of file tetramesh/edge_collapse.h.

template<class ComputeMeshType >
static void vcg::tetra::UpdateBounding< ComputeMeshType >::Box ( ComputeMeshType &  m  )  [inline, static, inherited]

Calculates the limits of bounding box of tetrahedral mesh.

Definition at line 57 of file tetramesh/update/bounding.h.

template<class TETRA_MESH_TYPE >
static bool vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::CheckPreconditions ( PosType  pos,
CoordType  NewP 
) [inline, static, inherited]

check the topologycal preserving conditions for the collapse indicated by pos

Definition at line 808 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
void vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets::clear (  )  [inline, inherited]

Definition at line 141 of file tetramesh/edge_collapse.h.

template<class MeshType>
void vcg::LocalOptimization< MeshType >::ClearHeap (  )  [inline, inherited]

Definition at line 313 of file local_optimization.h.

template<class MeshType>
void vcg::LocalOptimization< MeshType >::ClearHeapOld (  )  [inline, inherited]

erase from the heap the operations that are out of date

Definition at line 380 of file local_optimization.h.

template<class MeshType>
void vcg::LocalOptimization< MeshType >::ClearTermination (  )  [inline, inherited]

Definition at line 217 of file local_optimization.h.

template<class MeshType>
void vcg::LocalOptimization< MeshType >::ClearTerminationFlag ( int  v  )  [inline, inherited]

Definition at line 207 of file local_optimization.h.

template<class TetraPtrContainer >
void vcg::tetra::Component ( TetraPtrContainer &  src,
TetraPtrContainer &  conn_com 
) [inline]

assumes TTTopology has been computed

Definition at line 48 of file visit.h.

template<class TETRA_MESH_TYPE >
ScalarType vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::ComputeError (  )  [inline, inherited]

Definition at line 195 of file tetra_edge_collapse.h.

template<class MeshType >
virtual ScalarType vcg::LocalModification< MeshType >::ComputePriority (  )  [pure virtual, inherited]
template<class TETRA_MESH_TYPE >
ScalarType vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::ComputePriority (  )  [inline, virtual, inherited]

Compute the priority to be used in the heap.

Implements vcg::LocalModification< MeshType >.

Definition at line 190 of file tetra_edge_collapse.h.

template<class TETRA_MESH_TYPE >
static int vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::DoCollapse ( PosType  p,
CoordType  newP 
) [inline, static, inherited]

do the collapse on the edge in postype p

Definition at line 960 of file tetramesh/edge_collapse.h.

template<class MeshType>
bool vcg::LocalOptimization< MeshType >::DoOptimization (  )  [inline, inherited]

main cycle of optimization

Definition at line 281 of file local_optimization.h.

template<class TETRA_MESH_TYPE >
VertexType* vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::DoSplit ( TetraMeshType tm,
TetraType t,
int  edge,
double  alfa 
) [inline, inherited]

Split the edge with local remeshing Tetrahedron-Tetrahedron topology is required

Definition at line 462 of file edge_split.h.

template<class TETRA_MESH_TYPE >
vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::Edge::Edge ( VertexType a,
VertexType b 
) [inline, inherited]

Definition at line 113 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::EdgeCollapse (  )  [inline, inherited]

Default Constructor.

Definition at line 75 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::EdgeSplit (  )  [inline, inherited]

Default Constructor.

Definition at line 68 of file edge_split.h.

template<class MeshType >
virtual void vcg::LocalModification< MeshType >::Execute ( MeshType &  m  )  [pure virtual, inherited]

Perform the operation and return the variation in the number of simplicies (>0 is refinement, <0 is simplification).

template<class TETRA_MESH_TYPE >
void vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::Execute ( TETRA_MESH_TYPE &  tm  )  [inline, inherited]

Definition at line 201 of file tetra_edge_collapse.h.

template<class TETRA_MESH_TYPE >
vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::Face::Face ( VertexType a,
VertexType b,
VertexType c 
) [inline, inherited]

Definition at line 90 of file tetramesh/edge_collapse.h.

template<class MeshType>
template<class LocalModificationType >
void vcg::LocalOptimization< MeshType >::Finalize (  )  [inline, inherited]

Definition at line 354 of file local_optimization.h.

template<class TETRA_MESH_TYPE >
static void vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::FindSets ( vcg::tetra::Pos< TetraType pos  )  [inline, static, inherited]

finds sets used for all test in edge collapse

Definition at line 891 of file tetramesh/edge_collapse.h.

template<class MeshType>
bool vcg::LocalOptimization< MeshType >::GoalReached (  )  [inline, inherited]

say if the process is to end or not: the process ends when any of the termination conditions is verified override this function to implemetn other tests

Definition at line 362 of file local_optimization.h.

template<class MeshType>
vcg::LocalOptimization< MeshType >::HeapElem::HeapElem ( LocModPtrType  _locModPtr  )  [inline, inherited]

Definition at line 249 of file local_optimization.h.

template<class MeshType >
static float vcg::LocalModification< MeshType >::HeapSimplexRatio (  )  [inline, static, inherited]

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 in vcg::tri::TriEdgeCollapseQuadric< TriMeshType, MYTYPE, HelperType >, and vcg::tri::TriEdgeCollapseQuadric< MyMesh, MyTriEdgeCollapse, QInfoStandard< MyVertex > >.

Definition at line 147 of file local_optimization.h.

template<class MeshType >
virtual const char* vcg::LocalModification< MeshType >::Info ( MeshType &   )  [inline, virtual, inherited]

Definition at line 149 of file local_optimization.h.

template<class TETRA_MESH_TYPE >
virtual const char* vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::Info ( TETRA_MESH_TYPE &  m  )  [inline, virtual, inherited]

Definition at line 184 of file tetra_edge_collapse.h.

template<class MeshType>
template<class LocalModificationType >
void vcg::LocalOptimization< MeshType >::Init (  )  [inline, inherited]

initialize for all vertex the temporary mark must call only at the start of decimation by default it takes the first element in the heap and calls Init (static funcion) of that type of local modification.

Definition at line 341 of file local_optimization.h.

template<class MeshType >
static void vcg::LocalModification< MeshType >::Init ( MeshType &  m,
HeapType  
) [static, inherited]

perform initialization

template<class TETRA_MESH_TYPE >
static void vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::Init ( TETRA_MESH_TYPE &  m,
typename LocalOptimization< TETRA_MESH_TYPE >::HeapType h_ret 
) [inline, static, inherited]

perform initialization

Definition at line 269 of file tetra_edge_collapse.h.

template<class MeshType >
virtual bool vcg::LocalModification< MeshType >::IsFeasible (  )  [pure virtual, inherited]
template<class TETRA_MESH_TYPE >
bool vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::IsFeasible (  )  [inline, virtual, inherited]

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

Implements vcg::LocalModification< MeshType >.

Definition at line 236 of file tetra_edge_collapse.h.

template<class TETRA_MESH_TYPE >
static bool vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::isMarkedE ( Edge  E,
char  M 
) [inline, static, private, inherited]

Definition at line 319 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
static bool vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::isMarkedF ( Face  F,
char  M 
) [inline, static, private, inherited]

Definition at line 338 of file tetramesh/edge_collapse.h.

template<class MeshType >
virtual ModifierType vcg::LocalModification< MeshType >::IsOfType (  )  [pure virtual, inherited]
template<class TETRA_MESH_TYPE >
ModifierType vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::IsOfType (  )  [inline, virtual, inherited]

return the type of operation

Implements vcg::LocalModification< MeshType >.

Definition at line 234 of file tetra_edge_collapse.h.

template<class MeshType>
bool vcg::LocalOptimization< MeshType >::IsTerminationFlag ( int  v  )  [inline, inherited]

Definition at line 208 of file local_optimization.h.

template<class MeshType>
bool vcg::LocalOptimization< MeshType >::HeapElem::IsUpToDate (  )  [inline, inherited]

Definition at line 263 of file local_optimization.h.

template<class MeshType >
virtual bool vcg::LocalModification< MeshType >::IsUpToDate (  )  [pure virtual, inherited]
template<class TETRA_MESH_TYPE >
bool vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::IsUpToDate (  )  [inline, virtual, inherited]

return true if the data have not changed since it was created

Implements vcg::LocalModification< MeshType >.

Definition at line 243 of file tetra_edge_collapse.h.

template<class MeshType >
vcg::LocalModification< MeshType >::LocalModification (  )  [inline, inherited]

Definition at line 118 of file local_optimization.h.

template<class TETRA_MESH_TYPE >
const bool vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::Edge::operator< ( const Edge e  )  const [inline, inherited]

Definition at line 121 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
const bool vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::Face::operator< ( const Face f  )  const [inline, inherited]

Definition at line 99 of file tetramesh/edge_collapse.h.

template<class MeshType>
const bool vcg::LocalOptimization< MeshType >::HeapElem::operator< ( const HeapElem h  )  const [inline, inherited]

STL heap has the largest element as the first one. usually we mean priority as an error so we should invert the comparison

Definition at line 257 of file local_optimization.h.

template<class TETRA_MESH_TYPE >
const bool vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::Edge::operator== ( const Edge e  )  const [inline, inherited]

Definition at line 125 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
const bool vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::Face::operator== ( const Face f  )  const [inline, inherited]

Definition at line 104 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
static void vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::orMarkE ( Edge  E,
char  M 
) [inline, static, private, inherited]

Definition at line 309 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
static void vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::orMarkF ( Face  F,
char  M 
) [inline, static, private, inherited]

Definition at line 328 of file tetramesh/edge_collapse.h.

template<class ComputeMeshType >
static void vcg::tetra::UpdateNormals< ComputeMeshType >::PerTetraFace ( TetraMeshType m  )  [inline, static, inherited]

Calculates the vertex normal (if stored in the current face type).

Definition at line 92 of file tetramesh/update/normal.h.

template<class ComputeMeshType >
static void vcg::tetra::UpdateNormals< ComputeMeshType >::PerVertex ( TetraMeshType m  )  [inline, static, inherited]

Calculates the vertex normal. Without exploiting or touching face normals The normal of a vertex v is the weigthed average of the normals of the faces incident on v.

Definition at line 129 of file tetramesh/update/normal.h.

template<class ComputeMeshType >
static void vcg::tetra::UpdateNormals< ComputeMeshType >::PerVertex ( VertexType v  )  [inline, static, inherited]

Calculates the vertex normal of a vertex.

Definition at line 101 of file tetramesh/update/normal.h.

template<class MeshType >
virtual ScalarType vcg::LocalModification< MeshType >::Priority (  )  const [pure virtual, inherited]
template<class TETRA_MESH_TYPE >
virtual ScalarType vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::Priority (  )  const [inline, virtual, inherited]

Return the priority to be used in the heap (implement static priority).

Implements vcg::LocalModification< MeshType >.

Definition at line 264 of file tetra_edge_collapse.h.

template<class TETRA_MESH_TYPE >
static void vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::Reset (  )  [inline, static, inherited]

clean everything

Definition at line 781 of file tetramesh/edge_collapse.h.

template<class MeshType>
void vcg::LocalOptimization< MeshType >::SetTargetMetric ( ScalarType  tm  )  [inline, inherited]

Definition at line 214 of file local_optimization.h.

template<class MeshType>
void vcg::LocalOptimization< MeshType >::SetTargetOperations ( int  to  )  [inline, inherited]

Definition at line 212 of file local_optimization.h.

template<class MeshType>
void vcg::LocalOptimization< MeshType >::SetTargetSimplices ( int  ts  )  [inline, inherited]

Definition at line 210 of file local_optimization.h.

template<class MeshType>
void vcg::LocalOptimization< MeshType >::SetTargetVertices ( int  tv  )  [inline, inherited]

Definition at line 211 of file local_optimization.h.

template<class MeshType>
void vcg::LocalOptimization< MeshType >::SetTerminationFlag ( int  v  )  [inline, inherited]

Definition at line 206 of file local_optimization.h.

template<class MeshType>
void vcg::LocalOptimization< MeshType >::SetTimeBudget ( float  tb  )  [inline, inherited]

Definition at line 215 of file local_optimization.h.

template<class S_TETRAMESH_TYPE , class STL_CONT >
void vcg::tetra::SubSet ( S_TETRAMESH_TYPE &  m,
STL_CONT &  subSet 
) [inline]

Create a copy of the mesh with tetrahedron that are into the templated container

Parameters:
ST_CONT (Template Parameter) Specifies the type of the container of tetrahedron.
subSet Container of tetrahedron pointers !!!
m destination mesh.

Definition at line 95 of file tetramesh/subset.h.

template<class TETRA_MESH_TYPE >
vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::TetraEdgeCollapse ( PosType  p,
int  mark 
) [inline, inherited]

Constructor with postype.

Definition at line 99 of file tetra_edge_collapse.h.

template<class TETRA_MESH_TYPE >
vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::TetraEdgeCollapse (  )  [inline, inherited]

Default Constructor.

Definition at line 95 of file tetra_edge_collapse.h.

template<class MeshType >
virtual void vcg::LocalModification< MeshType >::UpdateHeap ( HeapType  )  [pure virtual, inherited]
template<class TETRA_MESH_TYPE >
void vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::UpdateHeap ( typename LocalOptimization< TETRA_MESH_TYPE >::HeapType h_ret  )  [inline, inherited]

Definition at line 210 of file tetra_edge_collapse.h.

template<class TETRA_MESH_TYPE >
static ScalarType vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::VolumeOriginal (  )  [inline, static, inherited]

return the sum of volumes of the union of stars on vertices (the original volume of tetrahedrons)

Definition at line 843 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
static ScalarType vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::VolumeSimulateCollapse ( PosType  Pos,
CoordType newP 
) [inline, static, inherited]

Calculate the volume on the vertex resulting after collapse...

Definition at line 856 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::~EdgeCollapse (  )  [inline, inherited]

Definition at line 79 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::~EdgeSplit (  )  [inline, inherited]

Definition at line 72 of file edge_split.h.

template<class MeshType>
vcg::LocalOptimization< MeshType >::HeapElem::~HeapElem (  )  [inline, inherited]

Definition at line 242 of file local_optimization.h.

template<class MeshType >
virtual vcg::LocalModification< MeshType >::~LocalModification (  )  [inline, virtual, inherited]

Definition at line 119 of file local_optimization.h.

template<class MeshType>
vcg::LocalOptimization< MeshType >::~LocalOptimization (  )  [inline, inherited]

Default distructor.

Definition at line 272 of file local_optimization.h.

template<class TETRA_MESH_TYPE >
vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::~TetraEdgeCollapse (  )  [inline, inherited]

Definition at line 106 of file tetra_edge_collapse.h.


Variable Documentation

template<class TETRA_MESH_TYPE >
vcg::tetra::EdgeCollapse<TETRA_MESH_TYPE> vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::_EC [private, inherited]

the pointer to edge collapser method

Definition at line 83 of file tetra_edge_collapse.h.

template<class TETRA_MESH_TYPE >
Point3<ScalarType> vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::_NewPoint [private, inherited]

the new point that substitute the edge

Definition at line 81 of file tetra_edge_collapse.h.

template<class TETRA_MESH_TYPE >
int vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_nT [private, inherited]

The number of tetrahedrons that are substituted.

Definition at line 80 of file edge_split.h.

template<class TETRA_MESH_TYPE >
ScalarType vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::_priority [private, inherited]

priority in the heap

Definition at line 91 of file tetra_edge_collapse.h.

template<class TETRA_MESH_TYPE >
TetraType* vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_toDel[30] [private, inherited]

the tetrahedron that must mark as Deleted after substitution

Definition at line 74 of file edge_split.h.

template<class TETRA_MESH_TYPE >
Topology vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_Topo [private, inherited]

Definition at line 82 of file edge_split.h.

template<class MeshType>
ScalarType vcg::LocalOptimization< MeshType >::currMetric [inherited]

Definition at line 198 of file local_optimization.h.

template<class TETRA_MESH_TYPE >
std::vector<TetraType*> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets::E [inherited]

Definition at line 136 of file tetramesh/edge_collapse.h.

template<class MeshType>
double vcg::LocalOptimization< MeshType >::e [inherited]

Definition at line 276 of file local_optimization.h.

template<class MeshType>
HeapType vcg::LocalOptimization< MeshType >::h [inherited]

the heap of operations

Definition at line 232 of file local_optimization.h.

template<class MeshType>
float vcg::LocalOptimization< MeshType >::HeapSimplexRatio [inherited]

Definition at line 204 of file local_optimization.h.

template<class TETRA_MESH_TYPE >
std::vector<char> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets::indexE [inherited]

Definition at line 137 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
std::vector<char> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets::indexv0 [inherited]

Definition at line 138 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
std::vector<char> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets::indexv1 [inherited]

Definition at line 139 of file tetramesh/edge_collapse.h.

template<class MeshType>
LocModPtrType vcg::LocalOptimization< MeshType >::HeapElem::locModPtr [inherited]

pointer to instance of local modifier

Definition at line 245 of file local_optimization.h.

template<class MeshType>
MeshType& vcg::LocalOptimization< MeshType >::m [inherited]

the mesh to optimize

Definition at line 227 of file local_optimization.h.

template<class TETRA_MESH_TYPE >
std::vector<TetraType*> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets::no_E [inherited]

Definition at line 135 of file tetramesh/edge_collapse.h.

template<class MeshType>
int vcg::LocalOptimization< MeshType >::nPerfmormedOps [inherited]

Definition at line 191 of file local_optimization.h.

template<class MeshType>
int vcg::LocalOptimization< MeshType >::nTargetOps [inherited]

Definition at line 191 of file local_optimization.h.

template<class MeshType>
int vcg::LocalOptimization< MeshType >::nTargetSimplices [inherited]

Definition at line 191 of file local_optimization.h.

template<class MeshType>
int vcg::LocalOptimization< MeshType >::nTargetVertices [inherited]

Definition at line 191 of file local_optimization.h.

template<class TETRA_MESH_TYPE >
PosType vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::pos [private, inherited]

the pos of collapse

Definition at line 87 of file tetra_edge_collapse.h.

template<class MeshType>
float vcg::LocalOptimization< MeshType >::HeapElem::pri [inherited]

Definition at line 246 of file local_optimization.h.

template<class MeshType>
int vcg::LocalOptimization< MeshType >::start [inherited]

Definition at line 197 of file local_optimization.h.

template<class MeshType>
ScalarType vcg::LocalOptimization< MeshType >::targetMetric [inherited]

Definition at line 199 of file local_optimization.h.

template<class MeshType>
int vcg::LocalOptimization< MeshType >::tf [inherited]

Definition at line 189 of file local_optimization.h.

template<class MeshType>
float vcg::LocalOptimization< MeshType >::timeBudget [inherited]

Definition at line 196 of file local_optimization.h.

template<class TETRA_MESH_TYPE >
std::vector<TetraType*> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets::v0_U_v1 [inherited]

Definition at line 134 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
std::vector<TetraType*> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets::v1 [inherited]

Definition at line 133 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
VertexType* vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::Edge::v1 [inherited]

Definition at line 112 of file tetramesh/edge_collapse.h.

template<class TETRA_MESH_TYPE >
VertexType* vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::vrem [private, inherited]

pointer to vertex that remain

Definition at line 89 of file tetra_edge_collapse.h.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


vcglib
Author(s): Christian Bersch
autogenerated on Fri Jan 11 09:21:29 2013