vert tetra iterator
This commit is contained in:
parent
bb2d190b88
commit
d37d9cdbfc
|
@ -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; }
|
||||
|
||||
|
|
|
@ -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()))));
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue