debugDrawWorld colors

User avatar
orange
Posts: 6
Joined: Wed Aug 05, 2009 2:21 am
Location: Montreal

debugDrawWorld colors

Post by orange »

Using 2.73 (it doesn't seem different in the trunk), there is some inconsistency with the color range (0-1 or 0-255) in debugDrawWorld(). Also, wouldn't it be nice if the AABB were colored depending on their ActivationState (just like the wireframe). I would change the for loop to this:

Code: Select all

		for (  i=0;i<m_collisionObjects.size();i++)
		{
			btCollisionObject* colObj = m_collisionObjects[i];

			btVector3 color(btScalar(1),btScalar(1),btScalar(1));
			switch(colObj->getActivationState())
			{
			case  ACTIVE_TAG:
				color = btVector3(btScalar(1),btScalar(1),btScalar(1)); break;
			case ISLAND_SLEEPING:
				color =  btVector3(btScalar(0.),btScalar(1),btScalar(0.));break;
			case WANTS_DEACTIVATION:
				color = btVector3(btScalar(0.),btScalar(1),btScalar(1));break;
			case DISABLE_DEACTIVATION:
				color = btVector3(btScalar(1),btScalar(0.),btScalar(0.));break;
			case DISABLE_SIMULATION:
				color = btVector3(btScalar(1),btScalar(1),btScalar(0.));break;
			default:
				{
					color = btVector3(btScalar(1),btScalar(0.),btScalar(0.));
				}
			};

			if (getDebugDrawer()->getDebugMode() & btIDebugDraw::DBG_DrawWireframe)
			{
				debugDrawObject(colObj->getWorldTransform(),colObj->getCollisionShape(),color);
			}
			if (getDebugDrawer()->getDebugMode() & btIDebugDraw::DBG_DrawAabb)
			{
				btVector3 minAabb,maxAabb;
				colObj->getCollisionShape()->getAabb(colObj->getWorldTransform(),minAabb,maxAabb);
				getDebugDrawer()->drawAabb(minAabb,maxAabb,color);
			}
		}