Got mesh smoothing working.

Cleaning up code.
Various changes made without internet access.
This commit is contained in:
David Williams
2008-05-16 20:53:41 +00:00
parent 1e73d4013d
commit 28dda03cb3
27 changed files with 1155 additions and 353 deletions

View File

@ -1,5 +1,6 @@
#pragma region License
/******************************************************************************
This file is part of a voxel plugin for OGRE
This file is part of the PolyVox library
Copyright (C) 2006 David Williams
This program is free software; you can redistribute it and/or
@ -16,6 +17,8 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
******************************************************************************/
#pragma endregion
#ifndef __PolyVox_PolyVoxSceneManager_H__
#define __PolyVox_PolyVoxSceneManager_H__
@ -49,6 +52,8 @@ namespace PolyVox
const std::string& getTypeName(void) const;
boost::uint16_t getSideLength(void);
const Volume<boost::uint8_t>* getVolumeData(void) const;
//Setters
void setVolumeData(Volume<boost::uint8_t>* volumeDataToSet);
@ -62,15 +67,17 @@ namespace PolyVox
//void generateLevelVolume(void);
void generateMeshDataForRegion(boost::uint16_t regionX, boost::uint16_t regionY, boost::uint16_t regionZ, IndexedSurfacePatch* singleMaterialPatch, IndexedSurfacePatch* multiMaterialPatch) const;
void generateRoughMeshDataForRegion(boost::uint16_t regionX, boost::uint16_t regionY, boost::uint16_t regionZ, IndexedSurfacePatch* singleMaterialPatch, IndexedSurfacePatch* multiMaterialPatch) const;
void generateSmoothMeshDataForRegion(boost::uint16_t regionX, boost::uint16_t regionY, boost::uint16_t regionZ, IndexedSurfacePatch* singleMaterialPatch, IndexedSurfacePatch* multiMaterialPatch) const;
bool containsPoint(Vector3DFloat pos, float boundary);
bool containsPoint(Vector3DInt32 pos, boost::uint16_t boundary);
//bool containsPoint(Vector3DFloat pos, float boundary);
//bool containsPoint(Vector3DInt32 pos, boost::uint16_t boundary);
LinearVolume<bool>* volSurfaceUpToDate;
Vector3DFloat computeNormal(const Vector3DFloat& position, NormalGenerationMethod normalGenerationMethod) const;
Vector3DFloat computeSmoothNormal(const Vector3DFloat& position, NormalGenerationMethod normalGenerationMethod) const;
public:
void markVoxelChanged(boost::uint16_t x, boost::uint16_t y, boost::uint16_t z);