15 #include "bulletContactResult.h"
17 btManifoldPoint BulletContact::_empty;
26 BulletContact() : _mp(_empty) {
40 _node0 = other._node0;
41 _node1 = other._node1;
42 _part_id0 = other._part_id0;
43 _part_id1 = other._part_id1;
54 BulletContactResult() : btCollisionWorld::ContactResultCallback() {
56 #if BT_BULLET_VERSION >= 281
63 #if BT_BULLET_VERSION >= 281
69 void BulletContactResult::
70 use_filter(btOverlapFilterCallback *cb, btBroadphaseProxy *proxy) {
76 _filter_proxy = proxy;
85 bool BulletContactResult::
86 needsCollision(btBroadphaseProxy *proxy0)
const {
89 return _filter_cb->needBroadphaseCollision(proxy0, _filter_proxy);
101 btScalar BulletContactResult::
102 addSingleResult(btManifoldPoint &mp,
103 const btCollisionObjectWrapper *wrap0,
int part_id0,
int idx0,
104 const btCollisionObjectWrapper *wrap1,
int part_id1,
int idx1) {
106 const btCollisionObject *obj0 = wrap0->getCollisionObject();
107 const btCollisionObject *obj1 = wrap1->getCollisionObject();
112 contact._node0 = obj0 ? (
PandaNode *)obj0->getUserPointer() : NULL;
113 contact._node1 = obj1 ? (
PandaNode *)obj1->getUserPointer() : NULL;
114 contact._part_id0 = part_id0;
115 contact._part_id1 = part_id1;
116 contact._idx0 = idx0;
117 contact._idx1 = idx1;
119 _contacts.push_back(contact);
129 btScalar BulletContactResult::
130 addSingleResult(btManifoldPoint &mp,
131 const btCollisionObject *obj0,
int part_id0,
int idx0,
132 const btCollisionObject *obj1,
int part_id1,
int idx1) {
137 contact._node0 = obj0 ? (
PandaNode *)obj0->getUserPointer() : NULL;
138 contact._node1 = obj1 ? (
PandaNode *)obj1->getUserPointer() : NULL;
139 contact._part_id0 = part_id0;
140 contact._part_id1 = part_id1;
141 contact._idx0 = idx0;
142 contact._idx1 = idx1;
144 _contacts.push_back(contact);
A basic node of the scene graph or data graph.