本文整理汇总了C++中btDynamicsWorld::getCollisionObjectArray方法的典型用法代码示例。如果您正苦于以下问题:C++ btDynamicsWorld::getCollisionObjectArray方法的具体用法?C++ btDynamicsWorld::getCollisionObjectArray怎么用?C++ btDynamicsWorld::getCollisionObjectArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类btDynamicsWorld
的用法示例。
在下文中一共展示了btDynamicsWorld::getCollisionObjectArray方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: addPickingConstraint
void addPickingConstraint(const btVector3& rayFrom, const btVector3& rayTo) {
if (!dynamicsWorld) {
return;
}
removePickingConstraint();
if (pickedObjectIndex <= 0 || pickedObjectIndex >= dynamicsWorld->getNumCollisionObjects()) {
return;
}
pickedBody = btRigidBody::upcast(dynamicsWorld->getCollisionObjectArray()[pickedObjectIndex]);
btVector3 pickPos = rayTo;
btVector3 localPivot = pickedBody->getCenterOfMassTransform().inverse() * pickPos;
pickConstraint = new btPoint2PointConstraint(*pickedBody,localPivot);
pickedBody->setActivationState(DISABLE_DEACTIVATION);
dynamicsWorld->addConstraint(pickConstraint,true);
pickingDistance = (rayFrom-rayTo).length();
pickConstraint->m_setting.m_impulseClamp = 3.0f;
pickConstraint->m_setting.m_tau = 0.001f;
}
示例2: EmptyScene
void EmptyScene() {
if (dynamicsWorld) {
int i;
for (i=dynamicsWorld->getNumCollisionObjects()-1; i>=0 ;i--) {
btCollisionObject* obj = dynamicsWorld->getCollisionObjectArray()[i];
btRigidBody* body = btRigidBody::upcast(obj);
if (body && body->getMotionState()) {
delete body->getMotionState();
}
dynamicsWorld->removeCollisionObject(obj);
delete obj;
}
removePickingConstraint();
}
if (dynamicsWorld) {
delete dynamicsWorld;
dynamicsWorld = NULL;
}
if (solver) {
delete solver;
solver = NULL;
}
if (broadphase) {
delete broadphase;
broadphase = NULL;
}
if (dispatcher) {
delete dispatcher;
dispatcher = NULL;
}
if (collisionConfiguration) {
delete collisionConfiguration;
collisionConfiguration = NULL;
}
// Delete shapes
std::map<std::string, btCollisionShape*>::iterator it = shapes.begin();
while (it != shapes.end()) {
delete (*it).second;
it++;
}
shapes.clear();
// Clear name table
objectNames.clear();
}