示例#1
0
void PinballModel::configure(Configuration &config)
{
  tau_ = config["control_step"];
  steps_ = config["integration_steps"];
  restitution_ = config["restitution"];
  radius_ = config["radius"];
  maze_ = config["maze"];
  
  if (maze_ == 0)
  {
    Obstacle w;
    w.addPoint(Point(0, 0));
    w.addPoint(Point(0, 1));
    w.addPoint(Point(1, 1));
    w.addPoint(Point(1, 0));
    obstacles_.push_back(w);
    
    Obstacle o1;
    o1.addPoint(Point(0.2, 0.0));
    o1.addPoint(Point(0.4, 0.0));
    o1.addPoint(Point(0.4, 0.8));
    o1.addPoint(Point(0.2, 0.8));
    obstacles_.push_back(o1);
    
    Obstacle o2;
    o2.addPoint(Point(0.6, 0.2));
    o2.addPoint(Point(0.8, 0.2));
    o2.addPoint(Point(0.8, 1.0));
    o2.addPoint(Point(0.6, 1.0));
    obstacles_.push_back(o2);
  }
  else if (maze_ == 1)
  {
    Obstacle w;
    w.addPoint(Point(0, 0));
    w.addPoint(Point(0, 1));
    w.addPoint(Point(1, 1));
    w.addPoint(Point(1, 0));
    obstacles_.push_back(w);
    
    Obstacle o1;
    o1.addPoint(Point(0.2, 0.0));
    o1.addPoint(Point(0.3, 0.0));
    o1.addPoint(Point(0.3, 0.7));
    o1.addPoint(Point(0.5, 0.7));
    o1.addPoint(Point(0.5, 0.8));
    o1.addPoint(Point(0.2, 0.8));
    obstacles_.push_back(o1);

    Obstacle o2;
    o2.addPoint(Point(0.5, 0.2));
    o2.addPoint(Point(0.8, 0.2));
    o2.addPoint(Point(0.8, 1.0));
    o2.addPoint(Point(0.7, 1.0));
    o2.addPoint(Point(0.7, 0.3));
    o2.addPoint(Point(0.5, 0.3));
    obstacles_.push_back(o2);
  }
}