BulletSim: change boolean parameters in the shape data from int's to float's to be consistant with parameter data structure

0.7.4.1
Robert Adams 2012-07-31 11:32:26 -07:00
parent 04d8c6b4fe
commit e38d26a2dc
2 changed files with 11 additions and 7 deletions

View File

@ -187,6 +187,7 @@ public sealed class BSPrim : PhysicsActor
{ {
_mass = CalculateMass(); // changing size changes the mass _mass = CalculateMass(); // changing size changes the mass
BulletSimAPI.SetObjectScaleMass(_scene.WorldID, _localID, _scale, (IsPhysical ? _mass : 0f), IsPhysical); BulletSimAPI.SetObjectScaleMass(_scene.WorldID, _localID, _scale, (IsPhysical ? _mass : 0f), IsPhysical);
DetailLog("{0}: setSize: size={1}, mass={2}, physical={3}", LocalID, _size, _mass, IsPhysical);
RecreateGeomAndObject(); RecreateGeomAndObject();
}); });
} }
@ -1201,7 +1202,8 @@ public sealed class BSPrim : PhysicsActor
// Create an object in Bullet if it has not already been created // Create an object in Bullet if it has not already been created
// No locking here because this is done when the physics engine is not simulating // No locking here because this is done when the physics engine is not simulating
private void CreateObject() // Returns 'true' if an object was actually created.
private bool CreateObject()
{ {
// this routine is called when objects are rebuilt. // this routine is called when objects are rebuilt.
@ -1209,10 +1211,12 @@ public sealed class BSPrim : PhysicsActor
ShapeData shape; ShapeData shape;
FillShapeInfo(out shape); FillShapeInfo(out shape);
// m_log.DebugFormat("{0}: CreateObject: lID={1}, shape={2}", LogHeader, _localID, shape.Type); // m_log.DebugFormat("{0}: CreateObject: lID={1}, shape={2}", LogHeader, _localID, shape.Type);
BulletSimAPI.CreateObject(_scene.WorldID, shape); bool ret = BulletSimAPI.CreateObject(_scene.WorldID, shape);
// the CreateObject() may have recreated the rigid body. Make sure we have the latest. // the CreateObject() may have recreated the rigid body. Make sure we have the latest.
m_body.Ptr = BulletSimAPI.GetBodyHandle2(_scene.World.Ptr, LocalID); m_body.Ptr = BulletSimAPI.GetBodyHandle2(_scene.World.Ptr, LocalID);
return ret;
} }
// Copy prim's info into the BulletSim shape description structure // Copy prim's info into the BulletSim shape description structure

View File

@ -87,12 +87,12 @@ public struct ShapeData
public System.UInt64 MeshKey; public System.UInt64 MeshKey;
public float Friction; public float Friction;
public float Restitution; public float Restitution;
public int Collidable; public float Collidable; // true of things bump into this
public int Static; // true if a static object. Otherwise gravity, etc. public float Static; // true if a static object. Otherwise gravity, etc.
// note that bools are passed as ints since bool size changes by language and architecture // note that bools are passed as floats since bool size changes by language and architecture
public const int numericTrue = 1; public const float numericTrue = 1f;
public const int numericFalse = 0; public const float numericFalse = 0f;
} }
[StructLayout(LayoutKind.Sequential)] [StructLayout(LayoutKind.Sequential)]
public struct SweepHit public struct SweepHit