2 // Written and (C) by Francois Fleuret
3 // Contact <francois.fleuret@idiap.ch> for comments & bug reports
7 #include "manipulator.h"
9 class Dummy : public Task {
12 virtual const char *name() { return "DUMMY"; }
14 virtual int nb_degrees() { return 1; }
16 virtual int width() { return 600; }
18 virtual int height() { return 700; }
20 virtual void init(Universe *universe, int degree) {
22 scalar_t width = 80, height = 80;
23 scalar_t deltax = 100, deltay = 100;
25 for(int k = 0; k < 4; k++) {
26 scalar_t x0 = k * deltax;
28 p = new Polygon(1.0, 1.0, scalar_t(k)/scalar_t(4), 0.0, 0, 0, 4);
29 p->set_vertex(0, 0, 0);
30 p->set_vertex(1, width, 0);;
31 p->set_vertex(2, width, height);
32 p->set_vertex(3, 0, height);
33 p->set_position(x0 + deltax/2, y0 + deltay/2, 0);
34 p->set_speed(0, 0, 0);
35 universe->initialize(p);
36 universe->add_polygon(p);
39 for(int k = 0; k < 2; k++) {
40 scalar_t x0 = deltax + k * deltax * 2;
42 p = new Polygon(1.0, scalar_t(k)/scalar_t(2), 1.0, 0.0, 0, 0, 4);
43 p->set_vertex(0, 0, 0);
44 p->set_vertex(1, width + deltax, 0);;
45 p->set_vertex(2, width + deltax, height);
46 p->set_vertex(3, 0, height);
47 p->set_position(x0, y0 + deltay/2, 0);
48 p->set_speed(0, 0, 0);
49 universe->initialize(p);
50 universe->add_polygon(p);
54 scalar_t y0 = 2 * deltay;
55 p = new Polygon(1.0, 1.0, 1.0, 0.0, 0, 0, 4);
56 p->set_vertex(0, 0, 0);
57 p->set_vertex(1, width + 3 * deltax, 0);;
58 p->set_vertex(2, width + 3 * deltax, height);
59 p->set_vertex(3, 0, height);
60 p->set_position(x0 + deltax, y0 + deltay/2, 0);
61 p->set_speed(0, 0, 0);
62 universe->initialize(p);
63 universe->add_polygon(p);
65 p = new Polygon(1.0, 0.8, 0.2, 0.8, 0, 0, 8);
66 p->set_vertex(0, 0.0, 0.0);
67 p->set_vertex(1, 180.0, 0.0);
68 p->set_vertex(2, 180.0, 220.0);
69 p->set_vertex(3, 0.0, 220.0);
70 p->set_vertex(4, 0.0, 180.0);
71 p->set_vertex(5, 140.0, 180.0);
72 p->set_vertex(6, 140.0, 40.0);
73 p->set_vertex(7, 0.0, 40.0);
74 p->set_position(120, 420, 0);
75 p->set_speed(0, 0, 0);
76 universe->initialize(p);
77 universe->add_polygon(p);
80 p = new Polygon(1.0, 0.0, 0.25, 1.0, 0, 0, ne);
81 for(int e = 0; e < ne; e++) {
82 scalar_t alpha = 2 * M_PI * scalar_t(e) / scalar_t(ne);
83 p->set_vertex(e, 200 + 50 * cos(alpha), 200 + 70 * sin(alpha));
85 p->set_position(400, 400, 0);
86 p->set_speed(0, 0, 0);
87 universe->initialize(p);
88 universe->add_polygon(p);
91 virtual void update(scalar_t dt, Universe *universe, Manipulator *manipulator) { }
93 virtual scalar_t reward(Universe *universe, Manipulator *manipulator) { return 0.0; }
95 virtual void draw(SimpleWindow *window) { }
99 extern "C" Task *new_task() {