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); } }