[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56460] trunk/blender/source/gameengine: fix [#34609] mesh.getVertex doesn't work as spected with poly. getMaterialIndex() and poly vertex indexes

Campbell Barton ideasman42 at gmail.com
Thu May 2 00:41:56 CEST 2013


Revision: 56460
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56460
Author:   campbellbarton
Date:     2013-05-01 22:41:55 +0000 (Wed, 01 May 2013)
Log Message:
-----------
fix [#34609] mesh.getVertex doesn't work as spected with poly.getMaterialIndex() and poly vertex indexes
revert r22906 (own old commit, was incorrectly trying to make vertex indices absolute)

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=22906

Modified Paths:
--------------
    trunk/blender/source/gameengine/Ketsji/KX_PolyProxy.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_Polygon.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_Polygon.h

Modified: trunk/blender/source/gameengine/Ketsji/KX_PolyProxy.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_PolyProxy.cpp	2013-05-01 22:39:34 UTC (rev 56459)
+++ trunk/blender/source/gameengine/Ketsji/KX_PolyProxy.cpp	2013-05-01 22:41:55 UTC (rev 56460)
@@ -140,21 +140,21 @@
 {
 	KX_PolyProxy* self = static_cast<KX_PolyProxy*>(self_v);
 
-	return PyLong_FromLong(self->m_polygon->GetVertexOffsetAbs(self->m_mesh, 0));
+	return PyLong_FromLong(self->m_polygon->GetVertexOffset(0));
 }
 
 PyObject *KX_PolyProxy::pyattr_get_v2(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
 {
 	KX_PolyProxy* self = static_cast<KX_PolyProxy*>(self_v);
 
-	return PyLong_FromLong(self->m_polygon->GetVertexOffsetAbs(self->m_mesh, 1));
+	return PyLong_FromLong(self->m_polygon->GetVertexOffset(1));
 }
 
 PyObject *KX_PolyProxy::pyattr_get_v3(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
 {
 	KX_PolyProxy* self = static_cast<KX_PolyProxy*>(self_v);
 
-	return PyLong_FromLong(self->m_polygon->GetVertexOffsetAbs(self->m_mesh, 2));
+	return PyLong_FromLong(self->m_polygon->GetVertexOffset(2));
 }
 
 PyObject *KX_PolyProxy::pyattr_get_v4(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
@@ -163,7 +163,7 @@
 
 	if (3 < self->m_polygon->VertexCount())
 	{
-		return PyLong_FromLong(self->m_polygon->GetVertexOffsetAbs(self->m_mesh, 3));
+		return PyLong_FromLong(self->m_polygon->GetVertexOffset(3));
 	}
 	return PyLong_FromLong(0);
 }
@@ -243,7 +243,7 @@
 	}
 	if (index < m_polygon->VertexCount())
 	{
-		return PyLong_FromLong(m_polygon->GetVertexOffsetAbs(m_mesh, index));
+		return PyLong_FromLong(m_polygon->GetVertexOffset(index));
 	}
 	return PyLong_FromLong(0);
 }

Modified: trunk/blender/source/gameengine/Rasterizer/RAS_Polygon.cpp
===================================================================
--- trunk/blender/source/gameengine/Rasterizer/RAS_Polygon.cpp	2013-05-01 22:39:34 UTC (rev 56459)
+++ trunk/blender/source/gameengine/Rasterizer/RAS_Polygon.cpp	2013-05-01 22:41:55 UTC (rev 56460)
@@ -34,7 +34,6 @@
 #endif
 
 #include "RAS_Polygon.h"
-#include "RAS_MeshObject.h" /* only for GetVertexOffsetAbs */
 
 RAS_Polygon::RAS_Polygon(RAS_MaterialBucket* bucket, RAS_DisplayArray *darray, int numvert)
 {
@@ -67,20 +66,6 @@
 	return m_offset[i];
 }
 
-int RAS_Polygon::GetVertexOffsetAbs(RAS_MeshObject *mesh, int i)
-{
-	/* hack that only works because there can only ever be 2 different
-	 * GetDisplayArray's per mesh. if this uses a different display array to the first
-	 * then its indices are offset.
-	 * if support for edges is added back this would need to be changed. */
-	RAS_DisplayArray* darray= mesh->GetPolygon(0)->GetDisplayArray();
-	
-	if (m_darray != darray)
-		return m_offset[i] + darray->m_vertex.size();
-	
-	return m_offset[i];
-}
-
 /*
 int RAS_Polygon::GetEdgeCode()
 {

Modified: trunk/blender/source/gameengine/Rasterizer/RAS_Polygon.h
===================================================================
--- trunk/blender/source/gameengine/Rasterizer/RAS_Polygon.h	2013-05-01 22:39:34 UTC (rev 56459)
+++ trunk/blender/source/gameengine/Rasterizer/RAS_Polygon.h	2013-05-01 22:41:55 UTC (rev 56460)
@@ -75,7 +75,6 @@
 
 	void				SetVertexOffset(int i, unsigned short offset);
 	int					GetVertexOffset(int i);
-	int					GetVertexOffsetAbs(RAS_MeshObject *mesh, int i); /* accounts for quad and tri arrays, slower, for python */
 	
 	// each bit is for a visible edge, starting with bit 1 for the first edge, bit 2 for second etc.
 	// - Not used yet!




More information about the Bf-blender-cvs mailing list