used_types.h
Go to the documentation of this file.
00001 #ifndef VCG_USED_TYPES_H
00002 #define VCG_USED_TYPES_H
00003 
00004 #include <vcg/space/point3.h>
00005 #include <vcg/space/box3.h>
00006 #include <vcg/space/color4.h>
00007 #include <vcg/math/shot.h>
00008 #include <vcg/space/texcoord2.h>
00009 #include <vcg/space/triangle3.h>
00010 #include <vcg/space/polygon3.h>
00011 
00012 #include <vcg/container/derivation_chain.h>
00013 #include <vcg/complex/all_types.h>
00014 #include <vcg/simplex/vertex/component.h>
00015 #include <vcg/simplex/vertex/component_ocf.h>
00016 #include <vcg/simplex/vertex/base.h>
00017 #include <vcg/simplex/face/component.h>
00018 #include <vcg/simplex/face/component_ocf.h>
00019 #include <vcg/simplex/face/component_polygon.h>
00020 #include <vcg/simplex/face/base.h>
00021 #include <vcg/simplex/edge/component.h>
00022 #include <vcg/simplex/edge/base.h>
00023 #include <vcg/connectors/hedge_component.h>
00024 #include <vcg/connectors/hedge.h>
00025 
00026 namespace vcg{
00027 
00028 // dummy mesh
00029 
00030 struct _Vertex;
00031 struct _Edge  ;
00032 struct _Face  ;
00033 struct _HEdge ;
00034 
00035 struct DummyTypes{
00036         typedef _Vertex VertexType;             // simplex types
00037         typedef _Edge EdgeType;
00038         typedef _Face FaceType;
00039         typedef char TetraType;
00040         typedef _HEdge HEdgeType;               // connector types
00041 
00042         typedef vcg::Point3<bool> CoordType;
00043         typedef char ScalarType;
00044 
00045         typedef VertexType * VertexPointer;
00046         typedef EdgeType *      EdgePointer             ;
00047         typedef FaceType * FacePointer          ;
00048         typedef TetraType * TetraPointer        ;
00049         typedef HEdgeType * HEdgePointer        ;
00050 
00051     static void Name(std::vector<std::string> & /*name*/){}
00052         template < class LeftV>
00053         void ImportData(const LeftV  & /*left*/ ) {}
00054 };
00055 
00056 template <class A>
00057     struct Use{
00058         template <class T> struct AsVertexType: public T{typedef A VertexType;  typedef VertexType * VertexPointer      ;};
00059         template <class T> struct AsEdgeType: public T{typedef A EdgeType;                      typedef EdgeType *      EdgePointer                     ;};
00060         template <class T> struct AsFaceType: public T{typedef A FaceType;                      typedef FaceType * FacePointer                  ;};
00061         template <class T> struct AsTetraType: public T{typedef A TetraType;            typedef TetraType * TetraPointer                ;};
00062         template <class T> struct AsHEdgeType: public T{typedef A HEdgeType;            typedef HEdgeType * HEdgePointer                ;};
00063 };
00064 
00065 template <template <typename> class A = DefaultDeriver, template <typename> class B = DefaultDeriver,
00066                     template <typename> class C = DefaultDeriver, template <typename> class D = DefaultDeriver,
00067                     template <typename> class E = DefaultDeriver, template <typename> class F = DefaultDeriver,
00068                     template <typename> class G = DefaultDeriver, template <typename> class H = DefaultDeriver >
00069                     class UsedTypes: public Arity12<DummyTypes,
00070                                 Use<  Vertex    <UsedTypes< A, B, C, D , E, F, G, H > > > :: template AsVertexType,
00071                                 Use<  Edge              <UsedTypes< A, B, C, D , E, F, G, H > > > :: template AsEdgeType,
00072                                 Use<  Face              <UsedTypes< A, B, C, D , E, F, G, H > > > :: template AsFaceType,
00073                                 Use<  HEdge       <UsedTypes< A, B, C, D , E, F, G, H > > > :: template AsHEdgeType,
00074                             A, B, C, D, E, F, G, H
00075                     >  {
00076 };
00077 
00078 
00079 
00080 
00081 
00082 struct _UsedTypes: public UsedTypes<
00083     Use<_Vertex>::AsVertexType,
00084     Use<_Edge  >::AsEdgeType,
00085     Use<_Face  >::AsFaceType,
00086     Use<_HEdge >::AsHEdgeType
00087 >{};
00088 
00089 struct _Vertex: public  Vertex<_UsedTypes>{};
00090 struct _Edge  : public  Edge<_UsedTypes>{};
00091 struct _Face  : public  Face<_UsedTypes>{};
00092 struct _HEdge : public  HEdge<_UsedTypes>{};
00093 
00094 };
00095 
00096 #endif // USED_TYPES_H


shape_reconstruction
Author(s): Roberto Martín-Martín
autogenerated on Sat Jun 8 2019 18:38:35