Commit: 6ee0327594b2308b3111e1b8a7e52ed5959899fc
Author: Porteries Tristan
Date:   Fri May 8 20:55:50 2015 +0200
Branches: master
https://developer.blender.org/rB6ee0327594b2308b3111e1b8a7e52ed5959899fc

Fix T38335: incorrect triangle index in raycast result

Previously we forgot to do a special operation for indexes to convert a quad to 
two triangles.

===================================================================

M       source/gameengine/Physics/Bullet/CcdPhysicsController.cpp

===================================================================

diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp 
b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
index b6d2f84..4285093 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
@@ -2382,7 +2382,6 @@ bool CcdShapeConstructionInfo::UpdateMesh(class 
KX_GameObject *gameobj, class RA
                     * RAS Mesh Update
                     *
                     * */
-
                /* Note!, gameobj can be NULL here */
 
                /* transverts are only used for deformed RAS_Meshes, the 
RAS_TexVert data
@@ -2437,7 +2436,7 @@ bool CcdShapeConstructionInfo::UpdateMesh(class 
KX_GameObject *gameobj, class RA
                m_polygonIndexArray.resize(tot_bt_tris);
 
 
-               for (int p = 0; p < numpolys; p++) {
+               for (int p = 0; p < numpolys;) {
                        RAS_Polygon *poly = meshobj->GetPolygon(p);
 
                        if (poly->IsCollider()) {
@@ -2466,7 +2465,12 @@ bool CcdShapeConstructionInfo::UpdateMesh(class 
KX_GameObject *gameobj, class RA
                                        *tri_pt++ = vert_remap_array[v_orig];
                                }
                        }
-                       m_polygonIndexArray[p] = p; /* dumb counting */
+                       m_polygonIndexArray[p] = p;
+                       if (poly->VertexCount() == 4) {
+                               // if the poly is a quad we transform it in two 
triangles
+                               m_polygonIndexArray[p + 1] = p++;
+                       }
+                       p++;
                }
        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to