Refactoring mesh generation code.

This commit is contained in:
David Williams
2007-10-06 18:31:37 +00:00
parent e276ada7ce
commit 8137b1eb46
8 changed files with 58 additions and 51 deletions

View File

@ -4,6 +4,7 @@
#include <set>
#include <list>
#include "AbstractSurfacePatch.h"
#include "IntegralVector3.h"
#include "SurfaceTypes.h"
#include "VolumeIterator.h"
@ -11,7 +12,7 @@
namespace Ogre
{
class SurfacePatch
class SurfacePatch : public AbstractSurfacePatch
{
public:
SurfacePatch();
@ -21,9 +22,7 @@ namespace Ogre
SurfaceEdgeIterator getEdgesBegin(void);
SurfaceEdgeIterator getEdgesEnd(void);
SurfaceTriangleIterator getTrianglesBegin(void);
SurfaceTriangleIterator getTrianglesEnd(void);
SurfaceVertexIterator getVerticesBegin(void);
SurfaceVertexIterator getVerticesEnd(void);
SurfaceTriangleIterator getTrianglesEnd(void);
//Users of the class might want these for debugging or info purposes.
uint getNoOfEdges(void) const;
@ -42,8 +41,7 @@ namespace Ogre
private:
std::set<SurfaceVertex> m_listVertices;
private:
std::set<SurfaceTriangle> m_listTriangles;
std::set<SurfaceEdge> m_listEdges;

View File

@ -26,7 +26,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "MaterialMap.h"
#include "SurfacePatchRenderable.h"
#include "SurfaceTriangle.h"
#include "SurfacePatch.h"
#include "AbstractSurfacePatch.h"
#include "TypeDef.h"
#include "Volume.h"
#include "SurfaceVertex.h"
@ -81,7 +81,7 @@ namespace Ogre
void generateLevelVolume(void);
void generateMeshDataForRegion(uint regionX, uint regionY, uint regionZ, std::map<uchar, SurfacePatch>& result) const;
std::map<uchar, AbstractSurfacePatch*> generateMeshDataForRegion(uint regionX, uint regionY, uint regionZ) const;
void doRegionGrowing(uint xStart, uint yStart, uint zStart, uchar value);

View File

@ -4,9 +4,9 @@
#include "Ogre.h"
#include <vector>
#include "SurfacePatch.h"
#include "SurfaceTriangle.h"
#include "SurfaceVertex.h"
#include "AbstractSurfacePatch.h"
//#include "SurfaceTriangle.h"
//#include "SurfaceVertex.h"
namespace Ogre
{
@ -16,11 +16,11 @@ namespace Ogre
class SurfacePatchRenderable : public SimpleRenderable
{
public:
SurfacePatchRenderable(SurfacePatch& patchToRender, const String& material = "BaseWhiteNoLighting");
SurfacePatchRenderable(AbstractSurfacePatch* patchToRender, const String& material = "BaseWhiteNoLighting");
~SurfacePatchRenderable(void);
void updateWithNewSurfacePatch(SurfacePatch& patchToRender);
void setGeometry(SurfacePatch& patchToRender);
void updateWithNewSurfacePatch(AbstractSurfacePatch* patchToRender);
void setGeometry(AbstractSurfacePatch* patchToRender);
Real getSquaredViewDepth(const Camera *cam) const;
Real getBoundingRadius(void) const;

View File

@ -1,6 +1,8 @@
#ifndef __SurfaceTypes_H__
#define __SurfaceTypes_H__
#include <set>
namespace Ogre
{
class SurfaceVertex;