#pragma once #include "IndexedGeometry.h" namespace Aftr { class IndexedGeometrySphere : public IndexedGeometry { public: static IndexedGeometrySphere* New(float radius = 1, unsigned int slices = 4, unsigned int stacks = 4, bool useNormals = false, bool useTextures = false); virtual ~IndexedGeometrySphere() {} /// Returns a pointer to a list containing all verticies within this model. /// This list is indexed by the corresponding CompositeIndexList. virtual const std::vector< Vector >& getCompositeVertexList() const override; /// Returns a pointer to a list containing all indicies into the corresponding /// CompositeVertexList. virtual const std::vector< unsigned int >& getCompositeIndexList() const override; protected: IndexedGeometrySphere( float radius = 1, unsigned int slices = 4, unsigned int stacks = 4, bool useNormals = false, bool useTextures = false); virtual void createVertices(); virtual void createIndices(); virtual void createTextureCoords(); virtual void createNormals(); float radius; unsigned int slices; unsigned int stacks; std::vector verts; //SLN TODO: POPulate and use this, right now composite list isn't sync'd std::vector idx; //SLN TODO: POPulate and use this, right now composite list isn't sync'd }; }