Refactoring work... working on meshes

This commit is contained in:
David Williams
2007-08-27 22:45:51 +00:00
parent adfdb3062f
commit eaf17afc10
8 changed files with 164 additions and 74 deletions

View File

@ -15,10 +15,9 @@ namespace Ogre
SurfacePatch();
~SurfacePatch();
void addTriangle(const SurfaceVertex& v0,const SurfaceVertex& v1,const SurfaceVertex& v2);
void endDefinition(void);
/*const std::vector<SurfaceVertex> getVertexArray();
const std::vector<SurfaceTriangle> getTriangleArray();*/
void addTriangle(const SurfaceVertex& v0,const SurfaceVertex& v1,const SurfaceVertex& v2);
void getVertexAndIndexData(std::vector<SurfaceVertex>& vertexData, std::vector<uint>& indexData);
@ -28,6 +27,8 @@ namespace Ogre
std::vector<SurfaceVertex> m_vecVertexData;
std::vector<uint> m_vecIndexData;
uint m_uTrianglesAdded;
};
}

View File

@ -24,10 +24,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "OgreVector3.h"
#include "SurfaceVertex.h"
namespace Ogre
{
class SurfaceVertex;
class SurfaceTriangle
{
public:
@ -40,16 +40,11 @@ namespace Ogre
std::list<SurfaceVertex>::iterator v1;
std::list<SurfaceVertex>::iterator v2;
SurfaceTriangle()
{
}
SurfaceTriangle();
SurfaceTriangle(std::list<SurfaceVertex>::iterator v0ToSet, std::list<SurfaceVertex>::iterator v1ToSet, std::list<SurfaceVertex>::iterator v2ToSet)
:v0(v0ToSet)
,v1(v1ToSet)
,v2(v2ToSet)
{
}
SurfaceTriangle(std::list<SurfaceVertex>::iterator v0ToSet, std::list<SurfaceVertex>::iterator v1ToSet, std::list<SurfaceVertex>::iterator v2ToSet);
//bool operator < (const SurfaceTriangle& rhs) const;
};
}

View File

@ -26,6 +26,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
namespace Ogre
{
class SurfaceTriangle;
class SurfaceVertex
{
public:
@ -33,52 +35,17 @@ namespace Ogre
Vector3 normal;
float alpha;
SurfaceVertex()
{
}
std::list<std::list<SurfaceTriangle>::iterator> listTrianglesUsingThisVertex;
SurfaceVertex(Vector3 positionToSet)
:position(positionToSet)
{
}
SurfaceVertex();
SurfaceVertex(Vector3 positionToSet, Vector3 normalToSet)
:position(positionToSet)
,normal(normalToSet)
{
}
SurfaceVertex(Vector3 positionToSet);
bool matchesPosition(const Vector3& rhs) const
{
//return ((x == rhs.x) && (y == rhs.y) && (z == rhs.z));
return ((position - rhs).length() < 0.01);
}
SurfaceVertex(Vector3 positionToSet, Vector3 normalToSet);
bool operator < (const SurfaceVertex& rhs) const
{
if(position.z < rhs.position.z)
{
return true;
}
else
{
if(position.y < rhs.position.y)
{
return true;
}
else
{
if(position.x < rhs.position.x)
{
return true;
}
else
{
return false;
}
}
}
}
bool operator==(const SurfaceVertex& rhs) const;
//bool operator < (const SurfaceVertex& rhs) const;
};
}