Started moving decimation to sets rather than lists.

This commit is contained in:
David Williams
2007-09-23 21:27:20 +00:00
parent 35c399202f
commit cd26634131
12 changed files with 101 additions and 90 deletions

View File

@ -58,7 +58,7 @@ namespace Ogre
return false; //They are equal
}
Vector3 toOgreVector3(void)
Vector3 toOgreVector3(void) const
{
return Vector3(Real(x), Real(y), Real(z));
}

View File

@ -25,9 +25,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
namespace Ogre
{
class SurfaceVertex;
typedef std::list<SurfaceVertex>::iterator SurfaceVertexIterator;
typedef std::set<SurfaceVertex>::iterator SurfaceVertexIterator;
class SurfaceTriangle;
typedef std::list<SurfaceTriangle>::iterator SurfaceTriangleIterator;
typedef std::set<SurfaceTriangle>::iterator SurfaceTriangleIterator;
class SurfaceEdge;
typedef std::list<SurfaceEdge>::iterator SurfaceEdgeIterator;
@ -55,7 +55,7 @@ namespace Ogre
};
bool operator == (const SurfaceEdge& lhs, const SurfaceEdge& rhs);
//bool operator < (const SurfaceEdge& lhs, const SurfaceEdge& rhs);
bool operator < (const SurfaceEdge& lhs, const SurfaceEdge& rhs);
}
#endif

View File

@ -1,8 +1,8 @@
#ifndef __SurfacePatch_H__
#define __SurfacePatch_H__
#include <set>
#include <list>
#include <vector>
#include "IntegralVector3.h"
@ -19,9 +19,9 @@ namespace Ogre
};
class SurfaceVertex;
typedef std::list<SurfaceVertex>::iterator SurfaceVertexIterator;
typedef std::set<SurfaceVertex>::iterator SurfaceVertexIterator;
class SurfaceTriangle;
typedef std::list<SurfaceTriangle>::iterator SurfaceTriangleIterator;
typedef std::set<SurfaceTriangle>::iterator SurfaceTriangleIterator;
class SurfaceEdge;
typedef std::list<SurfaceEdge>::iterator SurfaceEdgeIterator;
@ -55,8 +55,8 @@ namespace Ogre
UIntVector3 m_v3dOffset;
private:
std::list<SurfaceVertex> m_listVertices;
std::list<SurfaceTriangle> m_listTriangles;
std::set<SurfaceVertex> m_listVertices;
std::set<SurfaceTriangle> m_listTriangles;
std::list<SurfaceEdge> m_listEdges;
//std::vector<SurfaceVertex> m_vecVertexData;

View File

@ -25,9 +25,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
namespace Ogre
{
class SurfaceVertex;
typedef std::list<SurfaceVertex>::iterator SurfaceVertexIterator;
typedef std::set<SurfaceVertex>::iterator SurfaceVertexIterator;
class SurfaceTriangle;
typedef std::list<SurfaceTriangle>::iterator SurfaceTriangleIterator;
typedef std::set<SurfaceTriangle>::iterator SurfaceTriangleIterator;
class SurfaceEdge;
typedef std::list<SurfaceEdge>::iterator SurfaceEdgeIterator;
@ -43,7 +43,7 @@ namespace Ogre
};
bool operator == (const SurfaceTriangle& lhs, const SurfaceTriangle& rhs);
//bool operator < (const SurfaceTriangle& lhs, const SurfaceTriangle& rhs);
bool operator < (const SurfaceTriangle& lhs, const SurfaceTriangle& rhs);
//bool operator < (const SurfaceTriangleIterator& lhs, const SurfaceTriangleIterator& rhs);
}

View File

@ -28,36 +28,36 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
namespace Ogre
{
class SurfaceVertex;
typedef std::list<SurfaceVertex>::iterator SurfaceVertexIterator;
typedef std::set<SurfaceVertex>::iterator SurfaceVertexIterator;
class SurfaceTriangle;
typedef std::list<SurfaceTriangle>::iterator SurfaceTriangleIterator;
typedef std::set<SurfaceTriangle>::iterator SurfaceTriangleIterator;
class SurfaceEdge;
typedef std::list<SurfaceEdge>::iterator SurfaceEdgeIterator;
class SurfaceVertex
{
public:
UIntVector3 position;
Vector3 normal;
float alpha;
//uchar flags;
//uchar noOfUses;
float alpha;
//bool fixed;
SurfaceEdgeIterator edge;
SurfaceVertex();
SurfaceVertex(UIntVector3 positionToSet);
SurfaceVertex(UIntVector3 positionToSet, Vector3 normalToSet);
const UIntVector3& getPosition(void) const;
std::string toString(void);
private:
UIntVector3 position;
};
bool operator==(const SurfaceVertex& lhs, const SurfaceVertex& rhs);
//bool operator < (const SurfaceVertex& lhs, const SurfaceVertex& rhs);
bool operator < (const SurfaceVertex& lhs, const SurfaceVertex& rhs);
//bool operator < (const SurfaceVertexIterator& lhs, const SurfaceVertexIterator& rhs);