Index: source/gameengine/Rasterizer/RAS_TexVert.cpp |
=================================================================== |
--- source/gameengine/Rasterizer/RAS_TexVert.cpp (revision 40024) |
+++ source/gameengine/Rasterizer/RAS_TexVert.cpp (working copy) |
@@ -35,8 +35,7 @@ |
#include "MT_Matrix4x4.h" |
RAS_TexVert::RAS_TexVert(const MT_Point3& xyz, |
- const MT_Point2& uv, |
- const MT_Point2& uv2, |
+ const MT_Point2 uvs[MAX_UNIT], |
const MT_Vector4& tangent, |
const unsigned int rgba, |
const MT_Vector3& normal, |
@@ -44,8 +43,6 @@ |
const unsigned int origindex) |
{ |
xyz.getValue(m_localxyz); |
- uv.getValue(m_uv1); |
- uv2.getValue(m_uv2); |
SetRGBA(rgba); |
SetNormal(normal); |
tangent.getValue(m_tangent); |
@@ -53,6 +50,11 @@ |
m_origindex = origindex; |
m_unit = 2; |
m_softBodyIndex = -1; |
+ |
+ for(int i=0; i<MAX_UNIT; ++i) |
+ { |
+ uvs[i].getValue(m_uvs[i]); |
+ } |
} |
const MT_Point3& RAS_TexVert::xyz() |
@@ -81,17 +83,12 @@ |
m_localxyz[0]= xyz[0]; m_localxyz[1]= xyz[1]; m_localxyz[2]= xyz[2]; |
} |
-void RAS_TexVert::SetUV(const MT_Point2& uv) |
+void RAS_TexVert::SetUV(int index, const MT_Point2& uv) |
{ |
- uv.getValue(m_uv1); |
+ uv.getValue(m_uvs[index]); |
} |
-void RAS_TexVert::SetUV2(const MT_Point2& uv) |
-{ |
- uv.getValue(m_uv2); |
-} |
- |
void RAS_TexVert::SetRGBA(const unsigned int rgba) |
{ |
m_rgba = rgba; |
@@ -122,14 +119,17 @@ |
// compare two vertices, and return TRUE if both are almost identical (they can be shared) |
bool RAS_TexVert::closeTo(const RAS_TexVert* other) |
{ |
+ bool uv_match = true; |
+ for (int i=0; i<MAX_UNIT; i++) |
+ uv_match = uv_match && MT_fuzzyEqual(MT_Vector2(m_uvs[i]), MT_Vector2(other->m_uvs[i])); |
+ |
return ( |
/* m_flag == other->m_flag && */ |
/* at the moment the face only stores the smooth/flat setting so dont bother comparing it */ |
m_rgba == other->m_rgba && |
MT_fuzzyEqual(MT_Vector3(m_normal), MT_Vector3(other->m_normal)) && |
MT_fuzzyEqual(MT_Vector3(m_tangent), MT_Vector3(other->m_tangent)) && |
- MT_fuzzyEqual(MT_Vector2(m_uv1), MT_Vector2(other->m_uv1)) && |
- MT_fuzzyEqual(MT_Vector2(m_uv2), MT_Vector2(other->m_uv2)) /* && |
+ uv_match /* && |
MT_fuzzyEqual(MT_Vector3(m_localxyz), MT_Vector3(other->m_localxyz))*/) ; |
/* dont bother comparing m_localxyz since we know there from the same vert */ |
} |