Most everything is built as shared libraries now except services.
[fail.git] / include / scenegraph / Drawable.h
blobea48f73636869cd5a6f3b93cc07024dc9e78b07a
1 #ifndef AWFUL_SCENEGRAPH_DRAWABLE_H_
2 #define AWFUL_SCENEGRAPH_DRAWABLE_H_
4 #include "core/core.h"
5 #include "scenegraph/scenegraph_export.h"
6 #include "Renderable.h"
7 #include "Geometry.h"
8 #include "Material.h"
9 #include "Frame.h"
11 namespace awful { namespace scenegraph
13 class AWSCENEGRAPH_EXPORT Drawable : public Renderable
15 public:
16 Drawable( Pointer< Geometry > pGeometry, Pointer< Material > pMaterial, Pointer< Frame > pFrame );
17 Drawable( const Serialization_tag& );
19 const Pointer< Geometry >& getpGeometry() const { return m_pGeometry; }
20 void setpGeometry( const Pointer< Geometry >& x ) { m_pGeometry = x; }
22 const Pointer< Material >& getpMaterial() const { return m_pMaterial; }
23 void setpMaterial( const Pointer< Material >& x ) { m_pMaterial = x; }
25 const Pointer< Frame >& getpFrame() const { return m_pFrame; }
26 void setpFrame( const Pointer< Frame >& x ) { m_pFrame = x; }
28 virtual void evaluate( const Pointer< RenderContext >& pContext );
30 private:
31 template< class C, typename T > friend struct awful::attribute_traits;
32 Pointer< Geometry > m_pGeometry;
33 Pointer< Material > m_pMaterial;
35 // TODO: deal with ConstPointer in ABF and python bindings
36 Pointer< Frame > m_pFrame;
40 #endif