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< ScalarType > | vcg::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 |
typedef TetraType::VertexType::CoordType vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::CoordType [inherited] |
The coordinate type.
Definition at line 56 of file edge_split.h.
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.
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.
typedef pair<int,int> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::FacePair [private, inherited] |
Definition at line 81 of file tetramesh/edge_collapse.h.
typedef vcg::Face<VertexType,vcg::DUMMYEDGETYPE,vcg::DUMMYFACETYPE> vcg::tetra::UpdateNormals< ComputeMeshType >::FaceTemp [inherited] |
Definition at line 88 of file tetramesh/update/normal.h.
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.
typedef std::vector<HeapElem> vcg::LocalOptimization< MeshType >::HeapType [inherited] |
Definition at line 172 of file local_optimization.h.
typedef LocalModification<MeshType>* vcg::LocalOptimization< MeshType >::LocModPtrType [inherited] |
Definition at line 176 of file local_optimization.h.
typedef LocalModification<MeshType> vcg::LocalOptimization< MeshType >::LocModType [inherited] |
Definition at line 174 of file local_optimization.h.
typedef VertexType::NormalType vcg::tetra::UpdateNormals< ComputeMeshType >::NormalType [inherited] |
Definition at line 86 of file tetramesh/update/normal.h.
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.
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.
typedef PosLoop<TetraType> vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::PosType [inherited] |
The HEdgePos type.
Definition at line 62 of file edge_split.h.
typedef Pos<TetraType> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::PosType [inherited] |
The HEdgePos type.
Definition at line 65 of file tetramesh/edge_collapse.h.
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.
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.
typedef MeshType::ScalarType vcg::LocalOptimization< MeshType >::ScalarType [inherited] |
Definition at line 168 of file local_optimization.h.
typedef MeshType::ScalarType vcg::LocalModification< MeshType >::ScalarType [inherited] |
Reimplemented in vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >, vcg::tri::TriEdgeCollapse< TriMeshType, MYTYPE >, vcg::tri::TriEdgeCollapseQuadric< TriMeshType, MYTYPE, HelperType >, vcg::tri::PlanarEdgeFlip< TRIMESH_TYPE, MYTYPE, QualityFunc >, vcg::tri::TriEdgeFlip< TRIMESH_TYPE, MYTYPE >, vcg::tri::TopoEdgeFlip< TRIMESH_TYPE, MYTYPE >, vcg::tri::TriEdgeCollapse< MyMesh, MyTriEdgeCollapse >, vcg::tri::TriEdgeCollapseQuadric< MyMesh, MyTriEdgeCollapse, QInfoStandard< MyVertex > >, vcg::tri::PlanarEdgeFlip< MyMesh, MyDelaunayFlip >, vcg::tri::PlanarEdgeFlip< TRIMESH_TYPE, MYTYPE >, and vcg::tri::TriEdgeFlip< MyMesh, MyDelaunayFlip >.
Definition at line 115 of file local_optimization.h.
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.
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.
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.
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.
typedef TetraMeshType::TetraIterator vcg::tetra::UpdateNormals< ComputeMeshType >::TetraIterator [inherited] |
Definition at line 85 of file tetramesh/update/normal.h.
typedef MeshType::TetraIterator vcg::tetra::UpdateBounding< ComputeMeshType >::TetraIterator [inherited] |
Definition at line 54 of file tetramesh/update/bounding.h.
typedef TetraMeshType::TetraIterator vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::TetraIterator [inherited] |
The tetra iterator type.
Definition at line 54 of file edge_split.h.
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.
typedef TetraMeshType::TetraPointer vcg::tetra::UpdateNormals< ComputeMeshType >::TetraPointer [inherited] |
Definition at line 84 of file tetramesh/update/normal.h.
typedef MeshType::TetraPointer vcg::tetra::UpdateBounding< ComputeMeshType >::TetraPointer [inherited] |
Definition at line 53 of file tetramesh/update/bounding.h.
typedef TetraMeshType::TetraType vcg::tetra::UpdateNormals< ComputeMeshType >::TetraType [inherited] |
Definition at line 83 of file tetramesh/update/normal.h.
typedef MeshType::TetraType vcg::tetra::UpdateBounding< ComputeMeshType >::TetraType [inherited] |
Definition at line 52 of file tetramesh/update/bounding.h.
typedef TetraMeshType::TetraType vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::TetraType [inherited] |
The tetrahedron type.
Definition at line 48 of file edge_split.h.
typedef TetraMeshType::TetraType vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraType [inherited] |
The tetrahedron type.
Definition at line 49 of file tetramesh/edge_collapse.h.
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.
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.
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.
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.
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.
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.
typedef TetraMeshType::VertexIterator vcg::tetra::UpdateNormals< ComputeMeshType >::VertexIterator [inherited] |
Definition at line 82 of file tetramesh/update/normal.h.
typedef MeshType::VertexIterator vcg::tetra::UpdateBounding< ComputeMeshType >::VertexIterator [inherited] |
Definition at line 51 of file tetramesh/update/bounding.h.
typedef TetraMeshType::VertexIterator vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::VertexIterator [inherited] |
The vertex iterator type.
Definition at line 52 of file edge_split.h.
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.
typedef TetraMeshType::VertexPointer vcg::tetra::UpdateNormals< ComputeMeshType >::VertexPointer [inherited] |
Definition at line 81 of file tetramesh/update/normal.h.
typedef MeshType::VertexPointer vcg::tetra::UpdateBounding< ComputeMeshType >::VertexPointer [inherited] |
Definition at line 50 of file tetramesh/update/bounding.h.
typedef TetraMeshType::VertexType vcg::tetra::UpdateNormals< ComputeMeshType >::VertexType [inherited] |
Definition at line 80 of file tetramesh/update/normal.h.
typedef MeshType::VertexType vcg::tetra::UpdateBounding< ComputeMeshType >::VertexType [inherited] |
Definition at line 49 of file tetramesh/update/bounding.h.
typedef TetraType::VertexType vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::VertexType [inherited] |
The vertex type.
Definition at line 50 of file edge_split.h.
typedef TetraType::VertexType vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::VertexType [inherited] |
The vertex type.
Definition at line 51 of file tetramesh/edge_collapse.h.
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.
enum vcg::LocalOptimization::LOTermination [inherited] |
termination conditions
Definition at line 181 of file local_optimization.h.
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.
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.
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.
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.
static void vcg::tetra::UpdateNormals< ComputeMeshType >::_ClearNormal | ( | TetraMeshType & | m | ) | [inline, static, private, inherited] |
Definition at line 141 of file tetramesh/update/normal.h.
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.
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.
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.
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.
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.
static VertexType& vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::_DummyV | ( | ) | [inline, static, private, inherited] |
Definition at line 168 of file tetramesh/edge_collapse.h.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
bool vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_InvertRotation | ( | PosType | pos | ) | [inline, private, inherited] |
Definition at line 253 of file edge_split.h.
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.
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.
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.
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.
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.
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.
static TetraSets& vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::_Sets | ( | ) | [inline, static, private, inherited] |
Definition at line 173 of file tetramesh/edge_collapse.h.
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.
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.
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.
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.
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.
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.
void vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets::clear | ( | ) | [inline, inherited] |
Definition at line 141 of file tetramesh/edge_collapse.h.
void vcg::LocalOptimization< MeshType >::ClearHeap | ( | ) | [inline, inherited] |
Definition at line 313 of file local_optimization.h.
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.
void vcg::LocalOptimization< MeshType >::ClearTermination | ( | ) | [inline, inherited] |
Definition at line 217 of file local_optimization.h.
void vcg::LocalOptimization< MeshType >::ClearTerminationFlag | ( | int | v | ) | [inline, inherited] |
Definition at line 207 of file local_optimization.h.
void vcg::tetra::Component | ( | TetraPtrContainer & | src, | |
TetraPtrContainer & | conn_com | |||
) | [inline] |
ScalarType vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::ComputeError | ( | ) | [inline, inherited] |
Definition at line 195 of file tetra_edge_collapse.h.
virtual ScalarType vcg::LocalModification< MeshType >::ComputePriority | ( | ) | [pure virtual, inherited] |
Compute the priority to be used in the heap.
Implemented in vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >, vcg::tri::TriEdgeCollapse< TriMeshType, MYTYPE >, vcg::tri::TriEdgeCollapseQuadric< TriMeshType, MYTYPE, HelperType >, vcg::tri::PlanarEdgeFlip< TRIMESH_TYPE, MYTYPE, QualityFunc >, vcg::tri::TriEdgeFlip< TRIMESH_TYPE, MYTYPE >, vcg::tri::TopoEdgeFlip< TRIMESH_TYPE, MYTYPE >, vcg::tri::TriEdgeCollapse< MyMesh, MyTriEdgeCollapse >, vcg::tri::TriEdgeCollapseQuadric< MyMesh, MyTriEdgeCollapse, QInfoStandard< MyVertex > >, vcg::tri::PlanarEdgeFlip< MyMesh, MyDelaunayFlip >, vcg::tri::PlanarEdgeFlip< TRIMESH_TYPE, MYTYPE >, and vcg::tri::TriEdgeFlip< MyMesh, MyDelaunayFlip >.
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.
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.
bool vcg::LocalOptimization< MeshType >::DoOptimization | ( | ) | [inline, inherited] |
main cycle of optimization
Definition at line 281 of file local_optimization.h.
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.
vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::Edge::Edge | ( | VertexType * | a, | |
VertexType * | b | |||
) | [inline, inherited] |
Definition at line 113 of file tetramesh/edge_collapse.h.
vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::EdgeCollapse | ( | ) | [inline, inherited] |
Default Constructor.
Definition at line 75 of file tetramesh/edge_collapse.h.
vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::EdgeSplit | ( | ) | [inline, inherited] |
Default Constructor.
Definition at line 68 of file edge_split.h.
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).
void vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::Execute | ( | TETRA_MESH_TYPE & | tm | ) | [inline, inherited] |
Definition at line 201 of file tetra_edge_collapse.h.
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.
void vcg::LocalOptimization< MeshType >::Finalize | ( | ) | [inline, inherited] |
Definition at line 354 of file local_optimization.h.
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.
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.
vcg::LocalOptimization< MeshType >::HeapElem::HeapElem | ( | LocModPtrType | _locModPtr | ) | [inline, inherited] |
Definition at line 249 of file local_optimization.h.
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.
virtual const char* vcg::LocalModification< MeshType >::Info | ( | MeshType & | ) | [inline, virtual, inherited] |
Definition at line 149 of file local_optimization.h.
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.
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.
static void vcg::LocalModification< MeshType >::Init | ( | MeshType & | m, | |
HeapType & | ||||
) | [static, inherited] |
perform initialization
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.
virtual bool vcg::LocalModification< MeshType >::IsFeasible | ( | ) | [pure virtual, inherited] |
return true if no constraint disallow this operation to be performed (ex: change of topology in edge collapses)
Implemented in vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >, vcg::tri::TriEdgeCollapse< TriMeshType, MYTYPE >, vcg::tri::TriEdgeCollapseQuadric< TriMeshType, MYTYPE, HelperType >, vcg::tri::PlanarEdgeFlip< TRIMESH_TYPE, MYTYPE, QualityFunc >, vcg::tri::TriEdgeCollapse< MyMesh, MyTriEdgeCollapse >, vcg::tri::TriEdgeCollapseQuadric< MyMesh, MyTriEdgeCollapse, QInfoStandard< MyVertex > >, vcg::tri::PlanarEdgeFlip< MyMesh, MyDelaunayFlip >, and vcg::tri::PlanarEdgeFlip< TRIMESH_TYPE, MYTYPE >.
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.
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.
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.
virtual ModifierType vcg::LocalModification< MeshType >::IsOfType | ( | ) | [pure virtual, inherited] |
return the type of operation
Implemented in vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >, vcg::tri::TriEdgeCollapse< TriMeshType, MYTYPE >, vcg::tri::PlanarEdgeFlip< TRIMESH_TYPE, MYTYPE, QualityFunc >, vcg::tri::TriEdgeCollapse< MyMesh, MyTriEdgeCollapse >, vcg::tri::PlanarEdgeFlip< MyMesh, MyDelaunayFlip >, and vcg::tri::PlanarEdgeFlip< TRIMESH_TYPE, MYTYPE >.
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.
bool vcg::LocalOptimization< MeshType >::IsTerminationFlag | ( | int | v | ) | [inline, inherited] |
Definition at line 208 of file local_optimization.h.
bool vcg::LocalOptimization< MeshType >::HeapElem::IsUpToDate | ( | ) | [inline, inherited] |
Definition at line 263 of file local_optimization.h.
virtual bool vcg::LocalModification< MeshType >::IsUpToDate | ( | ) | [pure virtual, inherited] |
return true if the data have not changed since it was created
Implemented in vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >, vcg::tri::TriEdgeCollapse< TriMeshType, MYTYPE >, vcg::tri::PlanarEdgeFlip< TRIMESH_TYPE, MYTYPE, QualityFunc >, vcg::tri::TriEdgeCollapse< MyMesh, MyTriEdgeCollapse >, vcg::tri::PlanarEdgeFlip< MyMesh, MyDelaunayFlip >, and vcg::tri::PlanarEdgeFlip< TRIMESH_TYPE, MYTYPE >.
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.
vcg::LocalModification< MeshType >::LocalModification | ( | ) | [inline, inherited] |
Definition at line 118 of file local_optimization.h.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
virtual ScalarType vcg::LocalModification< MeshType >::Priority | ( | ) | const [pure virtual, inherited] |
Return the priority to be used in the heap (implement static priority).
Implemented in vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >, vcg::tri::TriEdgeCollapse< TriMeshType, MYTYPE >, vcg::tri::PlanarEdgeFlip< TRIMESH_TYPE, MYTYPE, QualityFunc >, vcg::tri::TriEdgeCollapse< MyMesh, MyTriEdgeCollapse >, vcg::tri::PlanarEdgeFlip< MyMesh, MyDelaunayFlip >, and vcg::tri::PlanarEdgeFlip< TRIMESH_TYPE, MYTYPE >.
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.
static void vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::Reset | ( | ) | [inline, static, inherited] |
clean everything
Definition at line 781 of file tetramesh/edge_collapse.h.
void vcg::LocalOptimization< MeshType >::SetTargetMetric | ( | ScalarType | tm | ) | [inline, inherited] |
Definition at line 214 of file local_optimization.h.
void vcg::LocalOptimization< MeshType >::SetTargetOperations | ( | int | to | ) | [inline, inherited] |
Definition at line 212 of file local_optimization.h.
void vcg::LocalOptimization< MeshType >::SetTargetSimplices | ( | int | ts | ) | [inline, inherited] |
Definition at line 210 of file local_optimization.h.
void vcg::LocalOptimization< MeshType >::SetTargetVertices | ( | int | tv | ) | [inline, inherited] |
Definition at line 211 of file local_optimization.h.
void vcg::LocalOptimization< MeshType >::SetTerminationFlag | ( | int | v | ) | [inline, inherited] |
Definition at line 206 of file local_optimization.h.
void vcg::LocalOptimization< MeshType >::SetTimeBudget | ( | float | tb | ) | [inline, inherited] |
Definition at line 215 of file local_optimization.h.
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
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.
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.
vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::TetraEdgeCollapse | ( | ) | [inline, inherited] |
Default Constructor.
Definition at line 95 of file tetra_edge_collapse.h.
virtual void vcg::LocalModification< MeshType >::UpdateHeap | ( | HeapType & | ) | [pure virtual, inherited] |
Update the heap as a consequence of this operation.
Implemented in vcg::tri::TriEdgeCollapse< MyMesh, MyTriEdgeCollapse >, vcg::tri::TriEdgeCollapseQuadric< MyMesh, MyTriEdgeCollapse, QInfoStandard< MyVertex > >, vcg::tri::PlanarEdgeFlip< MyMesh, MyDelaunayFlip >, and vcg::tri::PlanarEdgeFlip< TRIMESH_TYPE, MYTYPE >.
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.
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.
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.
vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::~EdgeCollapse | ( | ) | [inline, inherited] |
Definition at line 79 of file tetramesh/edge_collapse.h.
vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::~EdgeSplit | ( | ) | [inline, inherited] |
Definition at line 72 of file edge_split.h.
vcg::LocalOptimization< MeshType >::HeapElem::~HeapElem | ( | ) | [inline, inherited] |
Definition at line 242 of file local_optimization.h.
virtual vcg::LocalModification< MeshType >::~LocalModification | ( | ) | [inline, virtual, inherited] |
Definition at line 119 of file local_optimization.h.
vcg::LocalOptimization< MeshType >::~LocalOptimization | ( | ) | [inline, inherited] |
Default distructor.
Definition at line 272 of file local_optimization.h.
vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::~TetraEdgeCollapse | ( | ) | [inline, inherited] |
Definition at line 106 of file tetra_edge_collapse.h.
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.
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.
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.
ScalarType vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::_priority [private, inherited] |
priority in the heap
Definition at line 91 of file tetra_edge_collapse.h.
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.
Topology vcg::tetra::EdgeSplit< TETRA_MESH_TYPE >::_Topo [private, inherited] |
Definition at line 82 of file edge_split.h.
ScalarType vcg::LocalOptimization< MeshType >::currMetric [inherited] |
Definition at line 198 of file local_optimization.h.
std::vector<TetraType*> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets::E [inherited] |
Definition at line 136 of file tetramesh/edge_collapse.h.
double vcg::LocalOptimization< MeshType >::e [inherited] |
Definition at line 276 of file local_optimization.h.
HeapType vcg::LocalOptimization< MeshType >::h [inherited] |
the heap of operations
Definition at line 232 of file local_optimization.h.
float vcg::LocalOptimization< MeshType >::HeapSimplexRatio [inherited] |
Definition at line 204 of file local_optimization.h.
std::vector<char> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets::indexE [inherited] |
Definition at line 137 of file tetramesh/edge_collapse.h.
std::vector<char> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets::indexv0 [inherited] |
Definition at line 138 of file tetramesh/edge_collapse.h.
std::vector<char> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets::indexv1 [inherited] |
Definition at line 139 of file tetramesh/edge_collapse.h.
LocModPtrType vcg::LocalOptimization< MeshType >::HeapElem::locModPtr [inherited] |
pointer to instance of local modifier
Definition at line 245 of file local_optimization.h.
MeshType& vcg::LocalOptimization< MeshType >::m [inherited] |
the mesh to optimize
Definition at line 227 of file local_optimization.h.
std::vector<TetraType*> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets::no_E [inherited] |
Definition at line 135 of file tetramesh/edge_collapse.h.
int vcg::LocalOptimization< MeshType >::nPerfmormedOps [inherited] |
Definition at line 191 of file local_optimization.h.
int vcg::LocalOptimization< MeshType >::nTargetOps [inherited] |
Definition at line 191 of file local_optimization.h.
int vcg::LocalOptimization< MeshType >::nTargetSimplices [inherited] |
Definition at line 191 of file local_optimization.h.
int vcg::LocalOptimization< MeshType >::nTargetVertices [inherited] |
Definition at line 191 of file local_optimization.h.
PosType vcg::tetra::TetraEdgeCollapse< TETRA_MESH_TYPE >::pos [private, inherited] |
the pos of collapse
Definition at line 87 of file tetra_edge_collapse.h.
float vcg::LocalOptimization< MeshType >::HeapElem::pri [inherited] |
Definition at line 246 of file local_optimization.h.
int vcg::LocalOptimization< MeshType >::start [inherited] |
Definition at line 197 of file local_optimization.h.
ScalarType vcg::LocalOptimization< MeshType >::targetMetric [inherited] |
Definition at line 199 of file local_optimization.h.
int vcg::LocalOptimization< MeshType >::tf [inherited] |
Definition at line 189 of file local_optimization.h.
float vcg::LocalOptimization< MeshType >::timeBudget [inherited] |
Definition at line 196 of file local_optimization.h.
std::vector<TetraType*> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets::v0_U_v1 [inherited] |
Definition at line 134 of file tetramesh/edge_collapse.h.
std::vector<TetraType*> vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::TetraSets::v1 [inherited] |
Definition at line 133 of file tetramesh/edge_collapse.h.
VertexType* vcg::tetra::EdgeCollapse< TETRA_MESH_TYPE >::Edge::v1 [inherited] |
Definition at line 112 of file tetramesh/edge_collapse.h.
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.