本文整理汇总了C++中OdeAgent::addInspectable方法的典型用法代码示例。如果您正苦于以下问题:C++ OdeAgent::addInspectable方法的具体用法?C++ OdeAgent::addInspectable怎么用?C++ OdeAgent::addInspectable使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OdeAgent
的用法示例。
在下文中一共展示了OdeAgent::addInspectable方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: start
/// start() is called at the start and should create all the object (obstacles, agents...).
virtual void start(const OdeHandle& odeHandle, const OsgHandle& osgHandle, GlobalData& global){
setCameraHomePos(Pos(1.86452, 21.1998, 8.7964), Pos(174.993, -10.688, 0));
setCameraMode(Follow);
global.odeConfig.setParam("controlinterval",1);
global.odeConfig.setParam("gravity", -9.81);
global.odeConfig.setParam("noise", 0);
global.odeConfig.setParam("realtimefactor", 1.);
int sliderwheelies = 1;
int snakes = 0;
Playground* playground = new Playground(odeHandle, osgHandle,
osg::Vec3(120, 0.2, 2.5),.5,true);
// playground->setColor(Color(1,0.2,0,0.1));
playground->setPosition(osg::Vec3(0,0,0)); // playground positionieren und generieren
global.obstacles.push_back(playground);
// Creation of Obstacle
PassiveBox* b =
new PassiveBox(odeHandle,
osgHandle.changeColor(Color(180.0 / 255.0, 180.0 / 255.0, 130.0 / 255.0)),
osg::Vec3(4.0, 20.0, .8), 0);
b->setTexture(0,TextureDescr("Images/playfulmachines.rgb",1,1));
b->setPosition(Pos(-32, 0, 0));
global.obstacles.push_back(b);
/******* S L I D E R - W H E E L I E *********/
for(int i=0; i<sliderwheelies; i++){
SliderWheelieConf mySliderWheelieConf = SliderWheelie::getDefaultConf();
mySliderWheelieConf.segmNumber=12;
mySliderWheelieConf.jointLimitIn=M_PI/3;
mySliderWheelieConf.frictionGround=0.5;
mySliderWheelieConf.motorPower=8;
mySliderWheelieConf.motorDamp=0.05;
mySliderWheelieConf.sliderLength=0.5;
mySliderWheelieConf.segmLength=1.4;
OdeRobot* robot = new SliderWheelie(odeHandle, osgHandle, mySliderWheelieConf, "Slider Armband");
robot->place(Pos(0,0,2.0));
//controller = new Sos(1.0);
controller = new OneControllerPerChannel(new ControlGen(),"OnePerJoint");
AbstractWiring* wiring = new One2OneWiring(new ColorUniformNoise(0.05));
OdeAgent* agent = new OdeAgent(global);
// only the first controller is exported to guilogger and Co
agent->addInspectable(((OneControllerPerChannel*)controller)->getControllers()[0]);
agent->init(controller, robot, wiring);
if(track)
agent->setTrackOptions(TrackRobot(true,true,false,false,"split_control",1));
global.agents.push_back(agent);
global.configs.push_back(agent);
}
//****** SNAKES **********/
for(int i=0; i<snakes; i++){
//****************/
SchlangeConf conf = Schlange::getDefaultConf();
// conf.segmMass = .2;
// conf.segmLength= .5// 0.8;
// conf.segmDia=.6;
// conf.motorPower=.5;
conf.segmNumber = 12+2*i;//-i/2;
conf.jointLimit=conf.jointLimit* 1.6;
conf.frictionJoint=0.02;
conf.useServoVel=true;
SchlangeServo2* schlange1;
if (i==0) {
schlange1 =
new SchlangeServo2 ( odeHandle, osgHandle.changeColor(Color(0.1, 0.3, 0.8)),
conf, "S1");
} else {
schlange1 =
new SchlangeServo2 ( odeHandle, osgHandle.changeColor(Color(0.1, 0.3, 0.8)),
conf, "S2");
}
//Positionieren und rotieren
schlange1->place(osg::Matrix::rotate(M_PI/2,0, 1, 0)*
osg::Matrix::translate(-.7+0.7*i,0,(i+1)*(.2+conf.segmNumber)/2.0/*+2*/));
// osg::Matrix::translate(5-i,2 + i*2,height+2));
schlange1->setTexture("Images/whitemetal_farbig_small.rgb");
if (i==0) {
schlange1->setHeadColor(Color(1.0,0,0));
} else {
schlange1->setHeadColor(Color(0,1.0,0));
}
OneControllerPerChannel *controller = new OneControllerPerChannel(new ControlGen(),"OnePerJoint");
AbstractWiring* wiring = new One2OneWiring(new ColorUniformNoise(0.05));
OdeAgent* agent = new OdeAgent(global);
agent->addInspectable(controller->getControllers()[0]);
//.........这里部分代码省略.........