[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31636] trunk/blender/source: BGE patch #22623 applied: new bound type: Capsule.
Benoit Bolsee
benoit.bolsee at online.be
Sat Aug 28 22:56:54 CEST 2010
Revision: 31636
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31636
Author: ben2610
Date: 2010-08-28 22:56:54 +0200 (Sat, 28 Aug 2010)
Log Message:
-----------
BGE patch #22623 applied: new bound type: Capsule.
Modified Paths:
--------------
trunk/blender/source/blender/makesdna/DNA_object_types.h
trunk/blender/source/blender/makesrna/intern/rna_object.c
trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObject.h
trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
trunk/blender/source/gameengine/Physics/common/PHY_DynamicTypes.h
Modified: trunk/blender/source/blender/makesdna/DNA_object_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_object_types.h 2010-08-28 15:10:37 UTC (rev 31635)
+++ trunk/blender/source/blender/makesdna/DNA_object_types.h 2010-08-28 20:56:54 UTC (rev 31636)
@@ -402,6 +402,7 @@
#define OB_BOUND_POLYH 4
#define OB_BOUND_POLYT 5
#define OB_BOUND_DYN_MESH 6
+#define OB_BOUND_CAPSULE 7
/* **************** BASE ********************* */
@@ -564,4 +565,3 @@
#endif
-
Modified: trunk/blender/source/blender/makesrna/intern/rna_object.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_object.c 2010-08-28 15:10:37 UTC (rev 31635)
+++ trunk/blender/source/blender/makesrna/intern/rna_object.c 2010-08-28 20:56:54 UTC (rev 31636)
@@ -76,6 +76,7 @@
{OB_BOUND_CONE, "CONE", 0, "Cone", ""},
{OB_BOUND_POLYT, "CONVEX_HULL", 0, "Convex Hull", ""},
{OB_BOUND_POLYH, "TRIANGLE_MESH", 0, "Triangle Mesh", ""},
+ {OB_BOUND_CAPSULE, "CAPSULE", 0, "Capsule", ""},
//{OB_DYN_MESH, "DYNAMIC_MESH", 0, "Dynamic Mesh", ""},
{0, NULL, 0, NULL, NULL}};
@@ -384,6 +385,7 @@
RNA_enum_items_add_value(&item, &totitem, collision_bounds_items, OB_BOUND_CYLINDER);
RNA_enum_items_add_value(&item, &totitem, collision_bounds_items, OB_BOUND_SPHERE);
RNA_enum_items_add_value(&item, &totitem, collision_bounds_items, OB_BOUND_BOX);
+ RNA_enum_items_add_value(&item, &totitem, collision_bounds_items, OB_BOUND_CAPSULE);
}
RNA_enum_item_end(&item, &totitem);
@@ -1599,6 +1601,7 @@
{OB_BOUND_CYLINDER, "CYLINDER", 0, "Cylinder", ""},
{OB_BOUND_CONE, "CONE", 0, "Cone", ""},
{OB_BOUND_POLYH, "POLYHEDRON", 0, "Polyhedron", ""},
+ {OB_BOUND_CAPSULE, "CAPSULE", 0, "Capsule", ""},
{0, NULL, 0, NULL, NULL}};
static EnumPropertyItem dupli_items[] = {
@@ -2231,4 +2234,3 @@
}
#endif
-
Modified: trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp 2010-08-28 15:10:37 UTC (rev 31635)
+++ trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp 2010-08-28 20:56:54 UTC (rev 31636)
@@ -1570,6 +1570,15 @@
objprop.m_boundobject.c.m_height = 2.f*bb.m_extends[2];
break;
}
+ case OB_BOUND_CAPSULE:
+ {
+ objprop.m_boundclass = KX_BOUNDCAPSULE;
+ objprop.m_boundobject.c.m_radius = MT_max(bb.m_extends[0], bb.m_extends[1]);
+ objprop.m_boundobject.c.m_height = 2.f*(bb.m_extends[2]-objprop.m_boundobject.c.m_radius);
+ if (objprop.m_boundobject.c.m_height < 0.f)
+ objprop.m_boundobject.c.m_height = 0.f;
+ break;
+ }
}
}
Modified: trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObject.h
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObject.h 2010-08-28 15:10:37 UTC (rev 31635)
+++ trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObject.h 2010-08-28 20:56:54 UTC (rev 31636)
@@ -53,7 +53,8 @@
KX_BOUNDCONE,
KX_BOUNDMESH,
KX_BOUNDPOLYTOPE,
- KX_BOUND_DYN_MESH
+ KX_BOUND_DYN_MESH,
+ KX_BOUNDCAPSULE
} KX_BoundBoxClass;
struct KX_BoxBounds
@@ -168,4 +169,3 @@
#endif
#endif //KX_CONVERTPHYSICSOBJECTS
-
Modified: trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp 2010-08-28 15:10:37 UTC (rev 31635)
+++ trunk/blender/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp 2010-08-28 20:56:54 UTC (rev 31636)
@@ -184,6 +184,14 @@
bm = shapeInfo->CreateBulletShape(ci.m_margin);
break;
}
+ case KX_BOUNDCAPSULE:
+ {
+ shapeInfo->m_radius = objprop->m_boundobject.c.m_radius;
+ shapeInfo->m_height = objprop->m_boundobject.c.m_height;
+ shapeInfo->m_shapeType = PHY_SHAPE_CAPSULE;
+ bm = shapeInfo->CreateBulletShape(ci.m_margin);
+ break;
+ }
case KX_BOUNDMESH:
{
// mesh shapes can be shared, check first if we already have a shape on that mesh
@@ -553,4 +561,4 @@
spc->ReplaceControllerShape(bm);
return true;
}
-#endif
+#endif
\ No newline at end of file
Modified: trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
===================================================================
--- trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp 2010-08-28 15:10:37 UTC (rev 31635)
+++ trunk/blender/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp 2010-08-28 20:56:54 UTC (rev 31636)
@@ -2027,6 +2027,11 @@
collisionShape->setMargin(margin);
break;
+ case PHY_SHAPE_CAPSULE:
+ collisionShape = new btCapsuleShapeZ(m_radius, m_height);
+ collisionShape->setMargin(margin);
+ break;
+
case PHY_SHAPE_MESH:
// Let's use the latest btScaledBvhTriangleMeshShape: it allows true sharing of
// triangle mesh information between duplicates => drastic performance increase when
@@ -2162,4 +2167,3 @@
}
}
-
Modified: trunk/blender/source/gameengine/Physics/common/PHY_DynamicTypes.h
===================================================================
--- trunk/blender/source/gameengine/Physics/common/PHY_DynamicTypes.h 2010-08-28 15:10:37 UTC (rev 31635)
+++ trunk/blender/source/gameengine/Physics/common/PHY_DynamicTypes.h 2010-08-28 20:56:54 UTC (rev 31636)
@@ -138,6 +138,7 @@
PHY_SHAPE_SPHERE,
PHY_SHAPE_CYLINDER,
PHY_SHAPE_CONE,
+ PHY_SHAPE_CAPSULE,
PHY_SHAPE_MESH,
PHY_SHAPE_POLYTOPE,
PHY_SHAPE_COMPOUND,
@@ -148,4 +149,3 @@
typedef float PHY_Vector3[3];
#endif //__PHY_DYNAMIC_TYPES
-
More information about the Bf-blender-cvs
mailing list