#pragma once #include "PolyVoxCore/MaterialDensityPair.h" #include "PolyVoxCore/SurfaceExtractor.h" #include "PolyVoxCore/SurfaceMesh.h" #include "PolyVoxCore/SimpleVolume.h" #include "exampleapplication.h" //#include "PolyVoxCore/MeshDecimator.h" using namespace PolyVox; using namespace std; class VolumeStone { public: VolumeStone(Vector3DUint16 lowerCorner, Vector3DUint16 upperCorner, uint8_t uValue); ~VolumeStone(void); Ogre::ManualObject* oMO; private: SimpleVolume *volData; SurfaceMesh *mesh; //polyvox_shared_ptr> *mesh; SurfaceExtractor *surfaceExtractor; public: //Volume* getVolData(); Ogre::ManualObject* initPolyvox(Ogre::String materialName,Ogre::SceneManager *sm); Ogre::ManualObject* updatePolyvox(Ogre::String materialName); void createCubeVolume(Vector3DUint16 lowerCorner, Vector3DUint16 upperCorner, uint8_t uValue); //Ogre::ManualObject* convertPolyVoxMesh(Ogre::String materialName); SimpleVolume* VolumeStone::updateVolData(float fRadius, uint8_t uValue,Ogre::Vector3 position); //void PaintCube(Volume& volData); Ogre::ManualObject* VolumeStone::updateConvertPolyVoxMesh(Ogre::String materialName); };