#pragma once #include "V8World/Poly.h" #include "V8World/GeometryPool.h" #include "V8World/PrismMesh.h" #include "V8World/BlockMesh.h" namespace RBX { class PrismPoly : public Poly { private: typedef GeometryPool PrismMeshPool; PrismMeshPool::Token prismMesh; int numSides; int numSlices; void setNumSides( int num ); void setNumSlices( int num ); /*override*/ bool isGeometryOrthogonal( void ) const { return false; } protected: // Geometry Overrides /*override*/ virtual GeometryType getGeometryType() const {return GEOMETRY_PRISM;} /*override*/ void setGeometryParameter(const std::string& parameter, int value); /*override*/ int getGeometryParameter(const std::string& parameter) const; /*override*/ Matrix3 getMoment(float mass) const; /*override*/ Vector3 getCofmOffset() const; /*override*/ CoordinateFrame getSurfaceCoordInBody( const size_t surfaceId ) const; /*override*/ size_t getFaceFromLegacyNormalId( const NormalId nId ) const; // Poly Overrides /*override*/ void buildMesh(); public: PrismPoly() : numSides(0), numSlices(0) {} /*override*/ bool setUpBulletCollisionData(void) { return false; } }; } // namespace