当前位置: 首页>>代码示例>>C++>>正文


C++ btDiscreteDynamicsWorld::removeRigidBody方法代码示例

本文整理汇总了C++中btDiscreteDynamicsWorld::removeRigidBody方法的典型用法代码示例。如果您正苦于以下问题:C++ btDiscreteDynamicsWorld::removeRigidBody方法的具体用法?C++ btDiscreteDynamicsWorld::removeRigidBody怎么用?C++ btDiscreteDynamicsWorld::removeRigidBody使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在btDiscreteDynamicsWorld的用法示例。


在下文中一共展示了btDiscreteDynamicsWorld::removeRigidBody方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: exitPhysics

void triMeshApp::exitPhysics()
{
	//cleanup in the reverse order of creation/initialization
	
	if(m_convexRigidBody->getMotionState())
		delete m_convexRigidBody->getMotionState();
	m_dynamicsWorld->removeRigidBody(m_convexRigidBody);
	delete m_convexRigidBody;
	
	if(m_concaveRigidBody->getMotionState())
		delete m_concaveRigidBody->getMotionState();
	m_dynamicsWorld->removeRigidBody(m_concaveRigidBody);
	delete m_concaveRigidBody;
	
	if(m_hfRigidBody->getMotionState())
		delete m_hfRigidBody->getMotionState();
	m_dynamicsWorld->removeRigidBody(m_hfRigidBody);
	delete m_hfRigidBody;
	
	
	delete m_dynamicsWorld;
	
	delete m_solver;
	
	delete m_broadphase;
	
	delete m_dispatcher;
	
	delete m_collisionConfiguration;
}
开发者ID:jdduke,项目名称:Cinder,代码行数:30,代码来源:triMeshApp.cpp

示例2:

 ~World(void) {
   for (auto &robot : robots)
     dynamics.removeRigidBody(&robot.body);
   for (auto &ball : balls)
     dynamics.removeRigidBody(&ball.body);
   dynamics.removeRigidBody(&field.ground_body);
   dynamics.removeRigidBody(&field.ceil_body);
   dynamics.removeRigidBody(&field.left_wall_body);
   dynamics.removeRigidBody(&field.right_wall_body);
   dynamics.removeRigidBody(&field.top_wall_body);
   dynamics.removeRigidBody(&field.bottom_wall_body);
   dynamics.removeRigidBody(&field.left_goal_body);
   dynamics.removeRigidBody(&field.right_goal_body);
 }
开发者ID:gustavokcouto,项目名称:ssl-sim,代码行数:14,代码来源:sslsim.cpp

示例3: UnregisterFromWorld

	void UnregisterFromWorld(){
		if (mWorld){
			auto num = mSelf->getNumConstraintRefs();
			for (int i = 0; i < num; ++i){
				auto constraint = mSelf->getConstraintRef(i);
				assert(constraint);
				constraint->setEnabled(false);
			}
			mWorld->removeRigidBody(mSelf);
			mAddedToWorld = false;
		}		
	}
开发者ID:wangscript,项目名称:fastbirdEngine,代码行数:12,代码来源:RigidBodyImpl.cpp

示例4: UnregisterFromWorld

	void UnregisterFromWorld(){
		if (mWorld){
			auto num = mSelf->getNumConstraintRefs();
			for (int i = 0; i < num; ++i){
				auto constraint = mSelf->getConstraintRef(i);
				assert(constraint);
				constraint->setEnabled(false);
			}
			mWorld->removeRigidBody(mSelf);
			mAddedToWorld = false;
		}
		else
			Logger::Log(FB_ERROR_LOG_ARG, "No colprovier exists!");			
	}
开发者ID:fastbird,项目名称:fastbirdEngine_NewAPI,代码行数:14,代码来源:RigidBodyImpl.cpp

示例5: removeAllBodies

void BulletWrapper::removeAllBodies()
{
  for (unsigned int i = 0; i < m_BodyDatas.size(); i++)
  {
    btRigidBody* body = m_BodyDatas[i].m_Body;

    m_DynamicsWorld->removeRigidBody(body);
    delete body->getMotionState();
    delete body;

    // Shape is automatically released via the shared pointer
  }

  m_BodyDatas.clear();
}
开发者ID:FutingFan,项目名称:hackstate,代码行数:15,代码来源:PhysicsLayer.cpp

示例6: RefreshColShape

	// Physics dll internal
	void RefreshColShape(IPhysicsInterface* colProvider){
		if (!colProvider)
		{
			Logger::Log(FB_ERROR_LOG_ARG, "No colProvider");			
			return;
		}
		mWorld->removeRigidBody(mSelf);
		mAddedToWorld = false;
		auto prevColShape = mSelf->getCollisionShape();
		if (prevColShape){
			Physics::GetInstance().Release(prevColShape);
		}

		btCollisionShape* colShape = 0;
		float mass = 1.0f;
		auto& physics = Physics::GetInstance();
		if (mGroupedRigidBody){
			if (colProvider->GetNumColShapes(mGroupIdx) == 0)
				return;

			colShape = physics.CreateColShapeForGroup(colProvider, mGroupIdx);
			mass = colProvider->GetMassForGroup(mGroupIdx);
		}
		else{
			if (colProvider->GetNumColShapes() == 0)
				return;

			colShape = physics.CreateColShape(colProvider);
			mass = colProvider->GetMass();
		}
		assert(colShape);
		mSelf->setCollisionShape(colShape);
		if (colShape)
			physics.AddRef(colShape);

		if (mass > 0 && colShape)
		{
			btVector3 inertia;
			colShape->calculateLocalInertia(mass, inertia);			
			mSelf->setMassProps(mass, inertia);
		}
		else{
			SetMass(0.f);
		}
		assert(!mAddedToWorld);
		mWorld->addRigidBody(mSelf, colProvider->GetCollisionGroup(), colProvider->GetCollisionMask());
		mAddedToWorld = true;
	}
开发者ID:wangscript,项目名称:fastbirdEngine,代码行数:49,代码来源:RigidBodyImpl.cpp

示例7: removeBody

void BulletWrapper::removeBody(btRigidBody* bodyToRemove)
{
  for (unsigned int i = 0; i < m_BodyDatas.size(); i++)
  {
    btRigidBody* body = m_BodyDatas[i].m_Body;

    if (body == bodyToRemove)
    {
      m_DynamicsWorld->removeRigidBody(body);
      delete body->getMotionState();
      delete body;
      m_BodyDatas.erase(m_BodyDatas.begin()+i);
      break;
    }

    // Shape is automatically released via the shared pointer
  }
}
开发者ID:FutingFan,项目名称:hackstate,代码行数:18,代码来源:PhysicsLayer.cpp

示例8:

	~Impl(){
		UnregisterFromWorld();
		mSelf->setUserPointer(0);
		mGamePtr = 0;
		FB_DELETE(mRotationInfo);
		RemoveConstraints();

		auto colShape = mSelf->getCollisionShape();
		if (colShape){
			Physics::GetInstance().Release(colShape);
		}

		if (mWorld){
			mWorld->removeRigidBody(mSelf);
			mAddedToWorld = false;
		}
		FB_DELETE_ALIGNED(mSelf->getMotionState());
	}
开发者ID:fastbird,项目名称:fastbirdEngine_NewAPI,代码行数:18,代码来源:RigidBodyImpl.cpp


注:本文中的btDiscreteDynamicsWorld::removeRigidBody方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。