Hi osg users,

I'm currently using openscenegraph for my class project to simulate traffic. I 
have a problem in that , i need to find collision detection between consecutive 
cars and stop the car if  there is a collision.  I have followed the 
osgExample- for animation. I have used an animationpath and 
animationpathcallback and i have implemented my own spline interpolation for 
the car to traverse on a spline. I tried to get the world coordinate of the 
bounding box like this..

* i have a class Vehicle that stores the node to which an openflight model is 
read into.

* the leaf node is the node having the vehicle, the parent node of this node is 
a transformation node which has an animationpathcallback set to, and this also 
has a parent node to initially set the location and orientation, (just like in 
the osgExample animation).

* i have a node visitor that traverses parents..so it goes from the current 
node to the root concatenating all the world coordinates.

* then i get the local bounding box of the node and get the minimum and maximum 
and multiply the world coord matrix with these points to form a new min and max 
point and create a new bounding box. I do this for every two node to check the 
intersection of two consecutive nodes. 


    //getWorldCoords() - forwards to a nodevisitor to get world coords matrix.
    osg::Matrixd* WorldCoordsMatrix = getWorldCoords(this->m_Vehicle) ;
    osg::BoundingBox VehicleBBox ;

    VehicleBBox.expandBy(m_Vehicle->getBound()) ;

    //Convert the vehicle local coords to world coordinates.
    osg::Vec3f MinPt(VehicleBBox.xMin() , VehicleBBox.yMin() , 
VehicleBBox.zMin()) ;
    osg::Vec3f MaxPt(VehicleBBox.xMax() , VehicleBBox.yMax() , 
VehicleBBox.zMax()) ;

    osg::Vec3f NewMinPt , NewMaxPt ;
    NewMinPt = MinPt * (*WorldCoordsMatrix) ;
    NewMaxPt = MaxPt * (*WorldCoordsMatrix) ;

    this->m_VehicleBoundingBox = new osg::BoundingBox(NewMinPt , NewMaxPt) ;

I am not getting correct results. I get that the bounding boxes dont intersect 
at all or sometimes intersect at odd places. Please let me know if i'm doing 
something stupid or if i my understanding of anything wrong. 


Thank you,

Yours Sincerely,

Siddharth






      
____________________________________________________________________________________
Never miss a thing.  Make Yahoo your home page. 
http://www.yahoo.com/r/hs
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to