added basic collision filtering, in broadphase. more advanced collision filtering should happen in CollisionDispatch::NeedsCollision
fixed CcdPhysicsDemo: don't pick static objects, it create a point 2 point constraint, which assert in jacobian generation
This commit is contained in:
@@ -155,11 +155,7 @@ int main(int argc,char** argv)
|
||||
materialProps.m_friction = 10.5f;
|
||||
materialProps.m_restitution = 0.0f;
|
||||
|
||||
CcdConstructionInfo ccdObjectCi;
|
||||
ccdObjectCi.m_friction = 0.5f;
|
||||
|
||||
ccdObjectCi.m_linearDamping = shapeProps.m_lin_drag;
|
||||
ccdObjectCi.m_angularDamping = shapeProps.m_ang_drag;
|
||||
|
||||
|
||||
SimdTransform tr;
|
||||
tr.setIdentity();
|
||||
@@ -180,6 +176,13 @@ int main(int argc,char** argv)
|
||||
|
||||
for (i=0;i<numObjects;i++)
|
||||
{
|
||||
|
||||
CcdConstructionInfo ccdObjectCi;
|
||||
ccdObjectCi.m_friction = 0.5f;
|
||||
|
||||
ccdObjectCi.m_linearDamping = shapeProps.m_lin_drag;
|
||||
ccdObjectCi.m_angularDamping = shapeProps.m_ang_drag;
|
||||
|
||||
shapeProps.m_shape = shapePtr[shapeIndex[i]];
|
||||
shapeProps.m_shape->SetMargin(0.05f);
|
||||
|
||||
@@ -242,12 +245,16 @@ int main(int argc,char** argv)
|
||||
shapeProps.m_mass = 0.f;
|
||||
ccdObjectCi.m_mass = shapeProps.m_mass;
|
||||
ccdObjectCi.m_collisionFlags = CollisionObject::isStatic;
|
||||
|
||||
ccdObjectCi.m_collisionFilterGroup = CollisionFilterGroups::Static;
|
||||
ccdObjectCi.m_collisionFilterMask = CollisionFilterGroups::All ^ CollisionFilterGroups::Static;
|
||||
}
|
||||
else
|
||||
{
|
||||
shapeProps.m_mass = 1.f;
|
||||
ccdObjectCi.m_mass = shapeProps.m_mass;
|
||||
ccdObjectCi.m_collisionFlags = 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -817,7 +824,7 @@ void clientMouseFunc(int button, int state, int x, int y)
|
||||
CcdPhysicsController* physCtrl = static_cast<CcdPhysicsController*>(hitObj);
|
||||
RigidBody* body = physCtrl->GetRigidBody();
|
||||
|
||||
if (body)
|
||||
if (body && !body->IsStatic())
|
||||
{
|
||||
pickedBody = body;
|
||||
pickedBody->SetActivationState(DISABLE_DEACTIVATION);
|
||||
|
||||
@@ -20,6 +20,8 @@ subject to the following restrictions:
|
||||
#include "CollisionShapes/BoxShape.h"
|
||||
#include "CollisionShapes/Simplex1to4Shape.h"
|
||||
#include "Dynamics/RigidBody.h"
|
||||
#include "BroadphaseCollision/AxisSweep3.h"
|
||||
|
||||
#include "ConstraintSolver/SimpleConstraintSolver.h"
|
||||
#include "ConstraintSolver/OdeConstraintSolver.h"
|
||||
#include "CollisionDispatch/CollisionDispatcher.h"
|
||||
@@ -84,6 +86,19 @@ int gIndices[NUM_TRIANGLES*3];
|
||||
int main(int argc,char** argv)
|
||||
{
|
||||
|
||||
printf("BroadphaseProxy: %i\n",sizeof(BroadphaseProxy));
|
||||
printf("AxisSweep3::Handle : %i\n",sizeof(AxisSweep3::Handle));
|
||||
|
||||
printf("SimpleBroadphaseProxy : %i\n",sizeof(SimpleBroadphaseProxy));
|
||||
|
||||
printf("RigidBody : %i\n",sizeof(RigidBody));
|
||||
|
||||
printf("CcdPhysicsController: %i\n",sizeof(CcdPhysicsController));
|
||||
|
||||
printf("ManifoldPoint: %i\n",sizeof(ManifoldPoint));
|
||||
|
||||
|
||||
|
||||
setCameraDistance(30.f);
|
||||
|
||||
#define TRISIZE 10.f
|
||||
|
||||
Reference in New Issue
Block a user