00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef WRAPPED_PRIM_H__
00020 #define WRAPPED_PRIM_H__
00021
00022 #include "rawPrim.h"
00023 #include "primsGL.h"
00024
00025 namespace glift {
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041 class _export_ WrappedPrim : public SinglePrim
00042 {
00043 public:
00044 virtual ~WrappedPrim() { delete m_prim; }
00045
00046 virtual const gutz::arrayo2f& vert() const { return m_prim->vert();}
00047 virtual const gutz::arrayo2f& texCoord() const { return m_prim->texCoord();}
00048 virtual const gutz::arrayo2f& texCoord(int t) const { return m_prim->texCoord(t); }
00049 virtual int numVerts() const { return m_prim->numVerts(); }
00050 virtual bool hasTexCoords() const { return m_prim->hasTexCoords(); }
00051
00052 virtual void bindTexCoords( const MultiPrimTexCoord* texCoords ) { m_prim->bindTexCoords(texCoords); }
00053 virtual void bindTexCoords( const MultiTexCoord* texCoords ) { m_prim->bindTexCoords(texCoords); }
00054 virtual void bindIndices( const MultiPrimIndices* indices ) { m_prim->bindIndices(indices); }
00055 virtual void bindIndices( const gutz::arrayw1ui* indices ) { m_prim->bindIndices(indices); }
00056 virtual void releaseIndices() { m_prim->releaseIndices(); }
00057 virtual void releaseTexCoords() { m_prim->releaseTexCoords(); }
00058
00059 protected:
00060 WrappedPrim() : m_prim(NULL) {}
00061 WrappedPrim( PrimGL* prim ) : m_prim( prim ) {}
00062 WrappedPrim( const WrappedPrim& rhs ) { m_prim = rhs.m_prim; }
00063 WrappedPrim& operator=(const WrappedPrim& rhs) {if(&rhs!=NULL){ m_prim=rhs.m_prim; } return *this;}
00064
00065 virtual void drawDef() { m_prim->draw(); }
00066
00067 virtual const gutz::vec3f& scale() const { return m_prim->scale(); }
00068 void init( PrimGL* prim ) { m_prim = prim; }
00069
00070 private:
00071 PrimGL* m_prim;
00072 };
00073
00074 }
00075
00076 #endif