vert tetra iterator

This commit is contained in:
T.Alderighi 2018-06-07 10:56:14 +02:00
parent bb2d190b88
commit d37d9cdbfc
3 changed files with 390 additions and 365 deletions

View File

@ -98,11 +98,13 @@ public:
inline int & IMark() { assert(0); static int tmp=-1; return tmp;}
inline int cIMark() const {return 0;}
inline bool IsMarkEnabled() const { return T::TetraType::HasMark(); }
static bool HasMark() { return false; }
static bool HasMarkOcc() { return false; }
//Empty Adjacency
typedef int VFAdjType;
typedef int VTAdjType;
typename T::TetraPointer & VTp ( const int ) { static typename T::TetraPointer tp=0; assert(0); return tp; }
typename T::TetraPointer const cVTp( const int ) const { static typename T::TetraPointer const tp=0; assert(0); return tp; }

View File

@ -37,6 +37,28 @@ namespace vcg {
/*@{*/
template <class TetraType>
void VVStarVT( typename TetraType::VertexPointer vp, std::vector<typename TetraType::VertexPointer> & starVec)
{
typedef typename TetraType::VertexPointer VertexPointer;
starVec.clear();
tetra::VTIterator<TetraType> vti(vp->VTp(), vp->VTi());
while (!vti.End())
{
starVec.push_back(vti.Vt()->V1(vti.Vi()));
starVec.push_back(vti.Vt()->V2(vti.Vi()));
starVec.push_back(vti.Vt()->V3(vti.Vi()));
++vti;
}
std::sort(starVec.begin(), starVec.end());
typename std::vector<VertexPointer>::iterator new_end = std::unique(starVec.begin(),starVec.end());
starVec.resize(new_end - starVec.begin());
}
/** Class VTIterator.
This is a vertex - tetrahedron iterator
@param MTTYPE (Template Parameter) Specifies the type of the tetrahedron.
@ -89,8 +111,8 @@ void operator++()
{
int vi=Vi();
TetraType * tw = Vt();
Vt() = tw->TVp(vi);
Vi() = tw->TVi(vi);
Vt() = tw->VTp(vi);
Vi() = tw->VTi(vi);
assert((Vt()==NULL)||((tw->V(vi))==(Vt()->V(Vi()))));
}

View File

@ -315,7 +315,8 @@ class Tetra
return edgesface[indexE0][indexE1];
}
// compute the barycenter
/** @brief Computes the tetrahedron barycenter
*/
template <class TetraType>
static Point3<typename TetraType::ScalarType> Barycenter(const TetraType &t)
{