2 ////////////////////////////////////////////////////////////////////////////////
3 // This program is free software; you can redistribute it and/or //
4 // modify it under the terms of the GNU General Public License //
5 // version 2 as published by the Free Software Foundation. //
7 // This program is distributed in the hope that it will be useful, but //
8 // WITHOUT ANY WARRANTY; without even the implied warranty of //
9 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU //
10 // General Public License for more details. //
12 // Written and (C) by François Fleuret //
13 // Contact <francois.fleuret@epfl.ch> for comments & bug reports //
14 ////////////////////////////////////////////////////////////////////////////////
16 // $Id: dummy.cc,v 1.16 2006-07-21 08:28:27 fleuret Exp $
20 #include "manipulator.h"
22 class Dummy : public Task {
25 virtual char *name() { return "DUMMY"; }
27 virtual int nb_degrees() { return 1; }
29 virtual int width() { return 600; }
31 virtual int height() { return 700; }
33 virtual void init(Universe *universe, int degree) {
35 scalar_t width = 80, height = 80;
36 scalar_t deltax = 100, deltay = 100;
38 for(int k = 0; k < 4; k++) {
39 scalar_t x0 = k * deltax;
41 p = new Polygon(1.0, 1.0, scalar_t(k)/scalar_t(4), 0.0, 0, 0, 4);
42 p->set_vertex(0, 0, 0);
43 p->set_vertex(1, width, 0);;
44 p->set_vertex(2, width, height);
45 p->set_vertex(3, 0, height);
46 p->set_position(x0 + deltax/2, y0 + deltay/2, 0);
47 p->set_speed(0, 0, 0);
48 universe->initialize(p);
49 universe->add_polygon(p);
52 for(int k = 0; k < 2; k++) {
53 scalar_t x0 = deltax + k * deltax * 2;
55 p = new Polygon(1.0, scalar_t(k)/scalar_t(2), 1.0, 0.0, 0, 0, 4);
56 p->set_vertex(0, 0, 0);
57 p->set_vertex(1, width + deltax, 0);;
58 p->set_vertex(2, width + deltax, height);
59 p->set_vertex(3, 0, height);
60 p->set_position(x0, y0 + deltay/2, 0);
61 p->set_speed(0, 0, 0);
62 universe->initialize(p);
63 universe->add_polygon(p);
67 scalar_t y0 = 2 * deltay;
68 p = new Polygon(1.0, 1.0, 1.0, 0.0, 0, 0, 4);
69 p->set_vertex(0, 0, 0);
70 p->set_vertex(1, width + 3 * deltax, 0);;
71 p->set_vertex(2, width + 3 * deltax, height);
72 p->set_vertex(3, 0, height);
73 p->set_position(x0 + deltax, y0 + deltay/2, 0);
74 p->set_speed(0, 0, 0);
75 universe->initialize(p);
76 universe->add_polygon(p);
78 p = new Polygon(1.0, 0.8, 0.2, 0.8, 0, 0, 8);
79 p->set_vertex(0, 0.0, 0.0);
80 p->set_vertex(1, 180.0, 0.0);
81 p->set_vertex(2, 180.0, 220.0);
82 p->set_vertex(3, 0.0, 220.0);
83 p->set_vertex(4, 0.0, 180.0);
84 p->set_vertex(5, 140.0, 180.0);
85 p->set_vertex(6, 140.0, 40.0);
86 p->set_vertex(7, 0.0, 40.0);
87 p->set_position(120, 420, 0);
88 p->set_speed(0, 0, 0);
89 universe->initialize(p);
90 universe->add_polygon(p);
93 p = new Polygon(1.0, 0.0, 0.25, 1.0, 0, 0, ne);
94 for(int e = 0; e < ne; e++) {
95 scalar_t alpha = 2 * M_PI * scalar_t(e) / scalar_t(ne);
96 p->set_vertex(e, 200 + 50 * cos(alpha), 200 + 70 * sin(alpha));
98 p->set_position(400, 400, 0);
99 p->set_speed(0, 0, 0);
100 universe->initialize(p);
101 universe->add_polygon(p);
104 virtual void update(scalar_t dt, Universe *universe, Manipulator *manipulator) { }
106 virtual scalar_t reward(Universe *universe, Manipulator *manipulator) { return 0.0; }
108 virtual void draw(SimpleWindow *window) { }
112 extern "C" Task *new_task() {