Пример #1
0
void OpenGLGuiHelper::autogenerateGraphicsObjects(btDiscreteDynamicsWorld* rbWorld)
{
    //sort the collision objects based on collision shape, the gfx library requires instances that re-use a shape to be added after eachother

    btAlignedObjectArray<btCollisionObject*> sortedObjects;
    sortedObjects.reserve(rbWorld->getNumCollisionObjects());
    for (int i=0; i<rbWorld->getNumCollisionObjects(); i++)
    {
        btCollisionObject* colObj = rbWorld->getCollisionObjectArray()[i];
        sortedObjects.push_back(colObj);
    }
    sortedObjects.quickSort(shapePointerCompareFunc);
    for (int i=0; i<sortedObjects.size(); i++)
    {
        btCollisionObject* colObj = sortedObjects[i];
        //btRigidBody* body = btRigidBody::upcast(colObj);
        //does this also work for btMultiBody/btMultiBodyLinkCollider?
        createCollisionShapeGraphicsObject(colObj->getCollisionShape());
        int colorIndex = colObj->getBroadphaseHandle()->getUid() & 3;

        btVector3 color= sColors[colorIndex];
        createCollisionObjectGraphicsObject(colObj,color);

    }
}
	virtual void autogenerateGraphicsObjects(btDiscreteDynamicsWorld* rbWorld) 
	{
		
		for (int i=0;i<rbWorld->getNumCollisionObjects();i++)
		{
			btCollisionObject* colObj = rbWorld->getCollisionObjectArray()[i];
			//btRigidBody* body = btRigidBody::upcast(colObj);
			//does this also work for btMultiBody/btMultiBodyLinkCollider?
			createCollisionShapeGraphicsObject(colObj->getCollisionShape());
			int colorIndex = colObj->getBroadphaseHandle()->getUid() & 3;

			btVector3 color= sMyColors[colorIndex];
			createCollisionObjectGraphicsObject(colObj,color);
			
		}
	}
Пример #3
0
	virtual void createRigidBodyGraphicsObject(btRigidBody* body, const btVector3& color)
	{
	    createCollisionObjectGraphicsObject(body,color);
	}
Пример #4
0
void OpenGLGuiHelper::createRigidBodyGraphicsObject(btRigidBody* body, const btVector3& color)
{
    createCollisionObjectGraphicsObject(body,color);
}