Simplified reflection typedefs:
added type traits to support the mod below: [ Changes in definition of TriMesh: PART II ] Note: No changes to existing code need be the done, this mod should be fully backward compatible Old way to define a TriMesh ============== struct MyMesh: public vcg::tri::TriMesh< vector<MyVertex> , vector <MyFace> >{}; new ways to define a TriMesh ============== struct MyMesh: public vcg::tri::TriMesh< CONT1 >{}; struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2>{}; struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2, CONT3>{}; where CONT[i] can be vector< [MyVertex | MyEdge | MyFace ] > (the order is unimportant)
This commit is contained in:
parent
9fc476b130
commit
21dd8aa179
|
@ -152,9 +152,7 @@ template < class UserTypes,
|
|||
class FaceArityMax: public J<Arity9<FaceBase<UserTypes>, A, B, C, D, E, F, G, H, I> > {
|
||||
|
||||
public:
|
||||
typedef typename J<Arity9<FaceBase<UserTypes>, A, B, C, D, E, F, G, H, I> >::ScalarType ParentScalarType;
|
||||
typedef J<Arity9<FaceBase<UserTypes>, A, B, C, D, E, F, G, H, I> > ParentType;
|
||||
|
||||
typedef typename FaceArityMax::ScalarType ScalarType;
|
||||
// ----- Flags stuff -----
|
||||
|
||||
inline int & UberFlags ()
|
||||
|
@ -288,7 +286,7 @@ static int &LastBitFlag()
|
|||
void ClearUserBit(int userBit){this->Flags() &= (~userBit);}
|
||||
|
||||
|
||||
void GetBBox(Box3<typename ParentType::ScalarType>& bb ) const
|
||||
void GetBBox(Box3<ScalarType>& bb ) const
|
||||
{
|
||||
if(this->IsD()) {
|
||||
bb.SetNull();
|
||||
|
@ -343,7 +341,8 @@ template <class UserTypes,
|
|||
template <typename> class E = DefaultDeriver, template <typename> class F = DefaultDeriver,
|
||||
template <typename> class G = DefaultDeriver, template <typename> class H = DefaultDeriver,
|
||||
template <typename> class I = DefaultDeriver, template <typename> class J = DefaultDeriver >
|
||||
class Face: public FaceArityMax<UserTypes, A, B, C, D, E, F, G, H, I, J> {};
|
||||
class Face: public FaceArityMax<UserTypes, A, B, C, D, E, F, G, H, I, J> {
|
||||
public: typedef AllTypes::AFaceType IAm; typedef UserTypes TypesPool;};
|
||||
|
||||
|
||||
}// end namespace
|
||||
|
|
Loading…
Reference in New Issue