I need an analog sensor Box2D, in bullet physics.
Tried to do so but can not find nothing
init
1 2 3 4 5 6 7 8 9 10 11 12 13
| btGhostPairCallback ghostCall = new btGhostPairCallback(); collisionWorld.getBroadphase().getOverlappingPairCache().setInternalGhostPairCallback(ghostCall);
btGhostObject ghostObj = new btGhostObject(); btCollisionShape shape = new btBoxShape(new Vector3(2, 2, 2)); ghostObj.setCollisionShape(shape); Matrix4 trans = new Matrix4(); trans.idt(); trans.setTranslation(0,5,0); ghostObj.setWorldTransform(trans); ghostObj.userData = "LOL"; ghostObj.setCollisionFlags( btCollisionObject.CollisionFlags.CF_NO_CONTACT_RESPONSE | ghostObj.getCollisionFlags()); collisionWorld.addCollisionObject(ghostObj, (short)btBroadphaseProxy.CollisionFilterGroups.SensorTrigger,(short)(btBroadphaseProxy.CollisionFilterGroups.AllFilter & btBroadphaseProxy.CollisionFilterGroups.SensorTrigger)); |
update()
1 2 3 4 5 6 7 8 9 10 11 12 13
| int count = collisionWorld.getNumCollisionObjects(); btCollisionObjectArray array = collisionWorld.getCollisionObjectArray(); for(int i = 0;i < array.size() ; i++) { btCollisionObject object = array.at(i); { if (object instanceof btGhostObject) { btCollisionObjectArray array1 = ((btGhostObject) object).getOverlappingPairs(); for (int i1 = 0; i1 < array1.size(); i++) { System.out.println("Objects : " + array1.at(i1).userData); } } } } |