debug lines problem

yuriythebest

25-08-2008 21:18:51

right I'm trying to see the debug lines using this code:

OgreNewt::Debugger::getSingleton().init(mSceneMgr);
OgreNewt::Debugger::getSingleton().showLines(mWorld);


however I get this error when I launch:

walaber

26-08-2008 01:37:59

only call init() once, when the scene is created... then just call drawLines() each frame.

yuriythebest

26-08-2008 02:02:02

only call init() once, when the scene is created... then just call drawLines() each frame.

yeah I know- but that is in createScene :? I didn't even call it in frameStarted yet...

yuriythebest

26-08-2008 18:42:50

please help!

yuriythebest

27-08-2008 02:48:40

here is my code:





#include "ogreNewttest2.h"
#include "ExampleFrameListener.h"
#include <OgreNewt.h>

OgreNewt::BasicFrameListener;

//-------------------------------------------------------------------------------------
ogreNewttest2App::ogreNewttest2App(void)
{

mWorld = new OgreNewt::World();
}
//-------------------------------------------------------------------------------------
ogreNewttest2App::~ogreNewttest2App(void)
{

delete mWorld;
}

//-------------------------------------------------------------------------------------
void ogreNewttest2App::createScene(void)
{






// Set ambient light
mSceneMgr->setAmbientLight(ColourValue(0.5, 0.5, 0.5));

// Create a light
Light* l = mSceneMgr->createLight("MainLight");
l->setPosition(20,80,50);


mCamera->setPosition(0,0,20);


SceneNode* node = mSceneMgr->getRootSceneNode()->createChildSceneNode();
Entity* ent = mSceneMgr->createEntity("terrain", "terrain.mesh" );
node->attachObject( ent );
ent->setMaterialName("terrainMaterial123");

OgreNewt::Collision* col;
// rigid body.
col = new OgreNewt::CollisionPrimitives::ConvexHull(mWorld, node);
OgreNewt::Body* bod = new OgreNewt::Body( mWorld, col );
bod->attachToNode( node );



Ogre::Vector3 size(10.0,1.0,10.0);
// CYLINDER BODY
// cylinder with a radius of 0.5, height of 1.3
size = Ogre::Vector3( 1.3, 0.5, 0.5 );
node = mSceneMgr->getRootSceneNode()->createChildSceneNode();
ent = mSceneMgr->createEntity("cylinder_body", "cylinder.mesh" );
node->attachObject( ent );
node->setScale( size );

// rigid body.
col = new OgreNewt::CollisionPrimitives::Cylinder( mWorld, 0.5, 1.3 );
bod = new OgreNewt::Body( mWorld, col );
bod->attachToNode( node );


Ogre::Real mass = 10.0;
Ogre::Vector3 inertia = OgreNewt::MomentOfInertia::CalcCylinderSolid( mass, 0.5, 1.3 );

bod->setMassMatrix( mass, inertia );

// initial position
bod->setPositionOrientation( Ogre::Vector3(-2,30,2), Ogre::Quaternion::IDENTITY );
delete col;

bod->setStandardForceCallback();



OgreNewt::Debugger::getSingleton().init(mSceneMgr);
OgreNewt::Debugger::getSingleton().showLines(mWorld);




}

void ogreNewttest2App::createFrameListener()
{


mFrameListener = new ExampleFrameListener( mWindow, mCamera );
mRoot->addFrameListener( mFrameListener );


mOgreNewtListener = new OgreNewt::BasicFrameListener( mWindow, mSceneMgr, mWorld, 120 );
mRoot->addFrameListener( mOgreNewtListener );

}


bool ogreNewttest2App::frameStarted(const FrameEvent& evt){


OgreNewt::Debugger::getSingleton().showLines(mWorld);



return BaseApplication::frameStarted(evt);
}

yuriythebest

27-08-2008 02:52:23

loooooooooooool!!! so silly! why didn't anyone tell me I can just get debug lines by pressing F3!!! ahahahahaha so stupid to waste 3 days on this.....