Refactoring work... Argh, this is hard!
This commit is contained in:
@ -82,7 +82,7 @@ namespace Ogre
|
||||
void generateLevelVolume(void);
|
||||
|
||||
std::map<uchar, SurfacePatch> generateMeshDataForRegion(uint regionX, uint regionY, uint regionZ) const;
|
||||
void mergeVertices6(std::vector< std::vector<SurfaceVertex> >& vertexData, std::vector< std::vector<SurfaceTriangle> >& indexData) const;
|
||||
//void mergeVertices6(std::vector< std::vector<SurfaceVertex> >& vertexData, std::vector< std::vector<SurfaceTriangle> >& indexData) const;
|
||||
bool verticesArePlanar3(uint uCurrentVertex, std::set<uint> setConnectedVertices, std::vector<SurfaceVertex>& vertexData) const;
|
||||
|
||||
void doRegionGrowing(uint xStart, uint yStart, uint zStart, uchar value);
|
||||
|
@ -1,6 +1,7 @@
|
||||
#ifndef __SurfacePatch_H__
|
||||
#define __SurfacePatch_H__
|
||||
|
||||
#include <list>
|
||||
#include <vector>
|
||||
|
||||
#include "SurfaceVertex.h"
|
||||
@ -16,12 +17,17 @@ namespace Ogre
|
||||
|
||||
void addTriangle(const SurfaceVertex& v0,const SurfaceVertex& v1,const SurfaceVertex& v2);
|
||||
|
||||
const std::vector<SurfaceVertex>& getVertexArray();
|
||||
const std::vector<SurfaceTriangle>& getTriangleArray();
|
||||
/*const std::vector<SurfaceVertex> getVertexArray();
|
||||
const std::vector<SurfaceTriangle> getTriangleArray();*/
|
||||
|
||||
void getVertexAndIndexData(std::vector<SurfaceVertex>& vertexData, std::vector<uint>& indexData);
|
||||
|
||||
private:
|
||||
std::vector<SurfaceVertex> m_vecVertices;
|
||||
std::vector<SurfaceTriangle> m_vecTriangles;
|
||||
std::list<SurfaceVertex> m_listVertices;
|
||||
std::list<SurfaceTriangle> m_listTriangles;
|
||||
|
||||
std::vector<SurfaceVertex> m_vecVertexData;
|
||||
std::vector<uint> m_vecIndexData;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -15,7 +15,7 @@ namespace Ogre
|
||||
SurfacePatchRenderable(const String& material = "BaseWhiteNoLighting");
|
||||
~SurfacePatchRenderable(void);
|
||||
|
||||
void setGeometry(std::vector<SurfaceVertex> verticesToSet, std::vector<SurfaceTriangle> indicesToSet);
|
||||
void setGeometry(std::vector<SurfaceVertex> verticesToSet, std::vector<uint> indicesToSet);
|
||||
|
||||
Real getSquaredViewDepth(const Camera *cam) const;
|
||||
Real getBoundingRadius(void) const;
|
||||
|
@ -24,6 +24,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
#include "OgreVector3.h"
|
||||
|
||||
#include "SurfaceVertex.h"
|
||||
|
||||
namespace Ogre
|
||||
{
|
||||
class SurfaceTriangle
|
||||
@ -31,18 +33,18 @@ namespace Ogre
|
||||
public:
|
||||
|
||||
//FIXME - maybe these should be short?
|
||||
ulong v0;
|
||||
/*ulong v0;
|
||||
ulong v1;
|
||||
ulong v2;
|
||||
ulong v2;*/
|
||||
std::list<SurfaceVertex>::iterator v0;
|
||||
std::list<SurfaceVertex>::iterator v1;
|
||||
std::list<SurfaceVertex>::iterator v2;
|
||||
|
||||
SurfaceTriangle()
|
||||
:v0(0)
|
||||
,v1(0)
|
||||
,v2(0)
|
||||
{
|
||||
}
|
||||
|
||||
SurfaceTriangle(uint v0ToSet, uint v1ToSet, uint v2ToSet)
|
||||
SurfaceTriangle(std::list<SurfaceVertex>::iterator v0ToSet, std::list<SurfaceVertex>::iterator v1ToSet, std::list<SurfaceVertex>::iterator v2ToSet)
|
||||
:v0(v0ToSet)
|
||||
,v1(v1ToSet)
|
||||
,v2(v2ToSet)
|
||||
|
@ -33,6 +33,10 @@ namespace Ogre
|
||||
Vector3 normal;
|
||||
float alpha;
|
||||
|
||||
SurfaceVertex()
|
||||
{
|
||||
}
|
||||
|
||||
SurfaceVertex(Vector3 positionToSet)
|
||||
:position(positionToSet)
|
||||
{
|
||||
@ -50,21 +54,21 @@ namespace Ogre
|
||||
return ((position - rhs).length() < 0.01);
|
||||
}
|
||||
|
||||
/*bool operator < (const Vertex& rhs) const
|
||||
bool operator < (const SurfaceVertex& rhs) const
|
||||
{
|
||||
if(z < rhs.z)
|
||||
if(position.z < rhs.position.z)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(y < rhs.y)
|
||||
if(position.y < rhs.position.y)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(x < rhs.x)
|
||||
if(position.x < rhs.position.x)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@ -74,7 +78,7 @@ namespace Ogre
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user