/** creates vehicle at desired position @param pos struct Position with desired position */ void SchlangeVelocity::create(const osg::Matrix& pose){ Schlange::create(pose); //*****************joint definition*********** for ( int n = 0; n < conf.segmNumber-1; n++ ) { Pos p1(objects[n]->getPosition()); Pos p2(objects[n]->getPosition()); UniversalJoint* j = new UniversalJoint(objects[n], objects[n+1], (objects[n]->getPosition() + objects[n+1]->getPosition())/2, Axis(0,0,1)* pose, Axis(0,1,0)* pose); j->init(odeHandle, osgHandle, true, conf.segmDia * 1.02); // setting stops at universal joints j->setParam(dParamLoStop, -conf.jointLimit*1.5); j->setParam(dParamHiStop, conf.jointLimit*1.5); j->setParam(dParamLoStop2, -conf.jointLimit*1.5); j->setParam(dParamHiStop2, conf.jointLimit*1.5); // making stops bouncy j->setParam (dParamBounce, 0.9 ); j->setParam (dParamBounce2, 0.9 ); // universal joints.push_back(j); } }