Scaled vertices to always be integers.

This commit is contained in:
David Williams
2007-08-31 21:10:24 +00:00
parent 5f836e0c31
commit c1286a7847
5 changed files with 90 additions and 61 deletions

View File

@ -26,11 +26,18 @@ namespace Ogre
template <typename Type> class IntegralVector3
{
public:
IntegralVector3(Type xToSet, Type yToSet, Type zToSet)
IntegralVector3()
:x(0)
,y(0)
,z(0)
{
x = xToSet;
y = yToSet;
z = zToSet;
}
IntegralVector3(Type xToSet, Type yToSet, Type zToSet)
:x(xToSet)
,y(yToSet)
,z(zToSet)
{
}
bool operator==(const IntegralVector3<Type>& rhs) const throw()
@ -48,13 +55,25 @@ namespace Ogre
return (z < rhs.z);
else
return false; //They are equal
}
}
Type x;
Type y;
Type z;
};
template <typename Type>
IntegralVector3<Type> operator-(const IntegralVector3<Type>& lhs, const IntegralVector3<Type>& rhs)
{
IntegralVector3<Type> result;
result.x = lhs.x - rhs.x;
result.y = lhs.y - rhs.y;
result.z = lhs.z - rhs.z;
return result;
}
typedef IntegralVector3<char> CharVector3;
typedef IntegralVector3<short> ShortVector3;
typedef IntegralVector3<int> IntVector3;