There is a simulation time in the osg core. i would use this time as base of
a simulation. and my you should have a look at simulation libaray


2009/1/21 Alfonso Callejo Goena <[email protected]>

> Hello:
>
> I am trying to move a vehicle on scene by means of an update callback. It
> should be a realistic simulation, and I want the vehicle to move, for
> instance, at a constant velocity of 5 m/s.
> The callback function I have written has the following aspect:
>
> osg::Matrix mT, dmT;  // global variables containing the current and
> differential translations of the vehicle
>
> class myUpdateCallback : public osg::NodeCallback {
> public:
>     myUpdateCallback() {
>         vehSpeed=5/3.6;  // 5 km/h in m/s
>         tLast=0.;
>     }
>     virtual void operator()( osg::Node* node, osg::NodeVisitor* nv ) {
>         osg::MatrixTransform* mTransf =
> dynamic_cast<osg::MatrixTransform*>( node );
>
>         double t = osg::Timer::instance()->time_m()/1000;
>         double dt=t-tLast;
>         dmT.makeTranslate( vehSpeed*dt, 0., 0. );
>         mT=mT*dmT;
>         tLast=t;
>
>         mTransf->setMatrix( mT );
>         traverse( node, nv );
>     }
> protected:
>     double tLast;
>     double vehSpeed;
> };
>
> The thing is that the resulting movement is not smooth, it has
> discontinuities like little "jumps". I think this can be related with the
> frequency the program performs the callback (around 62 Hz), but I don't know
> how to solve it.
> Thank you in advance for your help.
> Fusu
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>


-- 
********************************************
Adrian Egli
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to