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:
ganovelli 2010-03-19 17:18:00 +00:00
parent 1428a1cc3c
commit 9fc476b130
1 changed files with 5 additions and 2 deletions

View File

@ -72,6 +72,7 @@ First working version!
#include <vcg/space/texcoord2.h>
#include <vcg/space/color4.h>
#include <vcg/simplex/vertex/component.h>
#include <vcg/complex/used_types.h>
#include <vcg/container/derivation_chain.h>
namespace vcg {
@ -139,7 +140,8 @@ class VertexArityMax: public Arity12<vertex::EmptyCore<UserTypes>, A, B, C, D, E
// ----- Flags stuff -----
public:
enum {
@ -260,7 +262,8 @@ template <class UserTypes,
template <typename> class G = DefaultDeriver, template <typename> class H = DefaultDeriver,
template <typename> class I = DefaultDeriver, template <typename> class J = DefaultDeriver,
template <typename> class K = DefaultDeriver, template <typename> class L = DefaultDeriver>
class Vertex: public VertexArityMax<UserTypes, A, B, C, D, E, F, G, H, I, J, K, L> {};
class Vertex: public VertexArityMax<UserTypes, A, B, C, D, E, F, G, H, I, J, K, L> {
public: typedef AllTypes::AVertexType IAm; typedef UserTypes TypesPool;};
}// end namespace
#endif