Hello I use OgreNewt 2.0 and Newton 2.0
I think I do all that I must do and they are no collisions!
I resume that I do :
I create a world and I initialise his size at (-1000000,-1000000,-1000000,1000000,10000001000000)
I create some materialID and materialPair
I set default collidable and contact callback (with a little callback which write in console)
Code is :
//Create the world for collision
m_WorldCollision = new OgreNewt::World();
//Initialize the world size.
m_WorldCollision->setWorldSize(Ogre::Vector3(-1000000,-1000000,-1000000),Ogre::Vector3(1000000,1000000,1000000));
//Create Callback
m_MonCallbackCollision = new OrealiaSceneManager::CallbackCollision();
//manage collision
m_Collidable = true;
//Create material
m_CameraMaterial = new OgreNewt::MaterialID(m_WorldCollision);
m_CanCollidableMaterial = new OgreNewt::MaterialID(m_WorldCollision);
m_NeverCollidableMaterial = new OgreNewt::MaterialID(m_WorldCollision);
//Create material pair and properties
m_CameraCamera = new OgreNewt::MaterialPair(m_WorldCollision,m_CameraMaterial,m_CameraMaterial);
m_CameraCamera->setDefaultCollidable(0); //Not collide
m_CameraCanCollidable = new OgreNewt::MaterialPair(m_WorldCollision,m_CameraMaterial,m_CanCollidableMaterial);
m_CameraCanCollidable->setDefaultCollidable(1); //Collide
m_CameraCanCollidable->setContactCallback(m_MonCallbackCollision);
m_CameraNeverCollidable = new OgreNewt::MaterialPair(m_WorldCollision,m_CameraMaterial,m_NeverCollidableMaterial);
m_CameraNeverCollidable->setDefaultCollidable(0); //Not collide
m_CanCollidableCanCollidable = new OgreNewt::MaterialPair(m_WorldCollision,m_CanCollidableMaterial,m_CanCollidableMaterial);
m_CanCollidableCanCollidable->setDefaultCollidable(1); //Collide
m_CanCollidableCanCollidable->setContactCallback(m_MonCallbackCollision);
m_CanCollidableNeverCollidable = new OgreNewt::MaterialPair(m_WorldCollision,m_CanCollidableMaterial,m_NeverCollidableMaterial);
m_CanCollidableNeverCollidable->setDefaultCollidable(0); //Not collide
m_NeverCollidableNeverCollidable = new OgreNewt::MaterialPair(m_WorldCollision,m_NeverCollidableMaterial,m_NeverCollidableMaterial);
m_NeverCollidableNeverCollidable->setDefaultCollidable(0); //Not collide
I create my bodies and affect material
Code is :
m_Node->_update(NULL,NULL);
OgreNewt::Collision *l_BoxCollision = new OgreNewt::CollisionPrimitives::Box(l_SceneManager->getWorldCollision(),l_Mesh->getBoundingBox().getSize());
m_BodyCollision->setCollision(l_BoxCollision);
delete l_BoxCollision;
m_BodyCollision->setPositionOrientation(m_Node->_getDerivedPosition(),m_Node->_getDerivedOrientation());
m_BodyCollision->setMaterialGroupID(l_SceneManager->getCanCollidableMaterial());
And I update world for collision
Code is :
// Collision detection
if (m_Scene->getCollidable())
m_Scene->getWorldCollision()->collisionUpdate();
Have I forget something?