Most everything is built as shared libraries now except services.
[fail.git] / include / scenegraph / shapes / Cylinder.h
blob20984bf59ebbac18c4d33fb529721fe568fd1681
1 #ifndef AWFUL_SCENEGRAPH_SHAPES_CYLINDER_H_
2 #define AWFUL_SCENEGRAPH_SHAPES_CYLINDER_H_
4 #include "core/core.h"
5 #include "scenegraph/shapes/scenegraphshapes_export.h"
6 #include "scenegraph/Drawable.h"
7 #include "Shape.h"
8 #include <map>
10 namespace awful { namespace scenegraph { namespace shapes
12 class AWSCENEGRAPHSHAPES_EXPORT Cylinder : public Shape
14 public:
15 Cylinder( const Pointer< Material >& pMaterial,
16 const Pointer< Frame >& pFrame,
17 uint16_t Subdivisions = 32 );
18 Cylinder( const Serialization_tag& );
19 ~Cylinder();
21 virtual void postLoad();
22 virtual void evaluate( const Pointer< RenderContext >& pContext );
24 const uint16_t& getSubdivisions() const { return m_Subdivisions; }
26 private:
27 template< class C, typename T > friend struct awful::attribute_traits;
29 Pointer< Drawable > m_pDrawable;
30 uint16_t m_Subdivisions;
32 static Geometry* GetGeom( uint16_t Subdivisions );
33 typedef std::map< uint16_t, Pointer< Geometry > > GeometriesCache;
34 static GeometriesCache ms_Geometries;
36 }}}
38 #endif