idl parser: properly flags virtual methods.
[fail.git] / scenegraph / Drawable.h
blob8d67cbcfec22cc53ae1c3388eb6dc48a5095541a
1 #ifndef AWFUL_SCENEGRAPH_DRAWABLE_H_
2 #define AWFUL_SCENEGRAPH_DRAWABLE_H_
4 #include "core/core.h"
5 #include "Renderable.h"
6 #include "Geometry.h"
7 #include "Material.h"
8 #include "Frame.h"
10 namespace awful { namespace scenegraph
12 class Drawable : public Renderable
14 public:
15 Drawable( Pointer< Geometry > pGeometry, Pointer< Material > pMaterial, Pointer< Frame > pFrame ) :
16 m_pGeometry( pGeometry ),
17 m_pMaterial( pMaterial ),
18 m_pFrame( pFrame )
21 Drawable( const Serialization_tag& ) {}
23 const Pointer< Geometry >& getpGeometry() const { return m_pGeometry; }
24 void setpGeometry( const Pointer< Geometry >& x ) { m_pGeometry = x; }
26 const Pointer< Material >& getpMaterial() const { return m_pMaterial; }
27 void setpMaterial( const Pointer< Material >& x ) { m_pMaterial = x; }
29 const Pointer< Frame >& getpFrame() const { return m_pFrame; }
30 void setpFrame( const Pointer< Frame >& x ) { m_pFrame = x; }
32 virtual void evaluate( const Pointer< RenderContext >& pContext );
34 private:
35 template< class C, typename T > friend struct awful::attribute_traits;
36 Pointer< Geometry > m_pGeometry;
37 Pointer< Material > m_pMaterial;
39 // TODO: deal with ConstPointer in ABF and python bindings
40 Pointer< Frame > m_pFrame;
44 #endif