1 #ifndef AWFUL_SCENEGRAPH_DRAWABLE_H_
2 #define AWFUL_SCENEGRAPH_DRAWABLE_H_
5 #include "Renderable.h"
10 namespace awful
{ namespace scenegraph
12 class Drawable
: public Renderable
15 Drawable( Pointer
< Geometry
> pGeometry
, Pointer
< Material
> pMaterial
, Pointer
< Frame
> pFrame
) :
16 m_pGeometry( pGeometry
),
17 m_pMaterial( pMaterial
),
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
);
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
;