Work on mesh decimation.

This commit is contained in:
David Williams
2007-09-14 22:37:04 +00:00
parent 358192b38a
commit 8d514a2bb9
6 changed files with 231 additions and 72 deletions

View File

@ -3,6 +3,8 @@
#include "SurfaceTriangle.h"
#include "SurfaceEdge.h"
#include "OgreStringConverter.h"
namespace Ogre
{
SurfaceVertex::SurfaceVertex()
@ -12,36 +14,46 @@ namespace Ogre
SurfaceVertex::SurfaceVertex(UIntVector3 positionToSet)
:position(positionToSet)
{
noOfUses = 0;
flags = 0;
if(position.x == 0)
flags |= 0x01;
flags |= 1;
if(position.x == 32)
flags |= 0x02;
flags |= 2;
if(position.y == 0)
flags |= 0x04;
flags |= 4;
if(position.y == 32)
flags |= 0x08;
flags |= 8;
if(position.z == 0)
flags |= 16;
if(position.z == 32)
flags |= 32;
}
SurfaceVertex::SurfaceVertex(UIntVector3 positionToSet, Vector3 normalToSet)
:position(positionToSet)
,normal(normalToSet)
{
noOfUses = 0;
flags = 0;
if(position.x == 0)
flags |= 0x01;
flags |= 1;
if(position.x == 32)
flags |= 0x02;
flags |= 2;
if(position.y == 0)
flags |= 0x04;
flags |= 4;
if(position.y == 32)
flags |= 0x08;
flags |= 8;
if(position.z == 0)
flags |= 16;
if(position.z == 32)
flags |= 32;
}
std::string SurfaceVertex::toString(void)
{
std::stringstream ss;
ss << "SurfaceVertex: Position = (" << position.x << "," << position.y << "," << position.z << "), Flags = " << int(flags);
ss << "SurfaceVertex: Position = (" << position.x << "," << position.y << "," << position.z << "), Normal = " << StringConverter::toString(normal) << ", Flags = " << uint(flags);
return ss.str();
}