reflexion 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.doc/ext/reflex/application.cpp +5 -1
  3. data/.doc/ext/reflex/arc_shape.cpp +89 -0
  4. data/.doc/ext/reflex/body.cpp +91 -12
  5. data/.doc/ext/reflex/contact_event.cpp +90 -0
  6. data/.doc/ext/reflex/ellipse_shape.cpp +89 -0
  7. data/.doc/ext/reflex/image_view.cpp +0 -16
  8. data/.doc/ext/reflex/native.cpp +18 -6
  9. data/.doc/ext/reflex/rect_shape.cpp +83 -0
  10. data/.doc/ext/reflex/shape_view.cpp +153 -0
  11. data/.doc/ext/reflex/view.cpp +63 -26
  12. data/.doc/ext/reflex/window.cpp +5 -1
  13. data/VERSION +1 -1
  14. data/ext/reflex/application.cpp +6 -2
  15. data/ext/reflex/arc_shape.cpp +94 -0
  16. data/ext/reflex/body.cpp +101 -13
  17. data/ext/reflex/contact_event.cpp +95 -0
  18. data/ext/reflex/ellipse_shape.cpp +94 -0
  19. data/ext/reflex/image_view.cpp +0 -18
  20. data/ext/reflex/native.cpp +18 -6
  21. data/ext/reflex/rect_shape.cpp +86 -0
  22. data/ext/reflex/shape_view.cpp +161 -0
  23. data/ext/reflex/view.cpp +71 -30
  24. data/ext/reflex/window.cpp +5 -1
  25. data/include/reflex/body.h +42 -12
  26. data/include/reflex/event.h +27 -1
  27. data/include/reflex/fixture.h +6 -5
  28. data/include/reflex/image_view.h +5 -5
  29. data/include/reflex/ruby/application.h +27 -6
  30. data/include/reflex/ruby/event.h +11 -0
  31. data/include/reflex/ruby/shape_view.h +96 -0
  32. data/include/reflex/ruby/view.h +60 -5
  33. data/include/reflex/ruby/window.h +12 -3
  34. data/include/reflex/shape_view.h +146 -0
  35. data/include/reflex/view.h +17 -5
  36. data/lib/reflex/application.rb +9 -9
  37. data/lib/reflex/body.rb +2 -0
  38. data/lib/reflex/contact_event.rb +38 -0
  39. data/lib/reflex/image_view.rb +1 -1
  40. data/lib/reflex/shape_view.rb +25 -0
  41. data/lib/reflex/view.rb +19 -9
  42. data/lib/reflex/window.rb +11 -10
  43. data/lib/reflex.rb +15 -13
  44. data/lib/reflexion.rb +25 -18
  45. data/samples/osx/hello/hello/main.cpp +6 -0
  46. data/samples/physics.rb +22 -12
  47. data/samples/reflexion/breakout.rb +52 -0
  48. data/samples/reflexion/hello.rb +5 -7
  49. data/samples/reflexion/paint.rb +10 -11
  50. data/samples/reflexion/physics.rb +28 -0
  51. data/samples/reflexion/pulse.rb +10 -8
  52. data/samples/shapes.rb +2 -2
  53. data/src/body.cpp +241 -40
  54. data/src/event.cpp +32 -2
  55. data/src/shape_view.cpp +306 -0
  56. data/src/view.cpp +232 -66
  57. data/src/world.cpp +110 -30
  58. data/src/world.h +61 -14
  59. metadata +24 -7
  60. data/lib/reflex/arc_shape.rb +0 -20
  61. data/lib/reflex/ellipse_shape.rb +0 -20
  62. data/lib/reflex/line_shape.rb +0 -20
  63. data/lib/reflex/rect_shape.rb +0 -20
  64. data/lib/reflex/shape.rb +0 -34
data/src/world.cpp CHANGED
@@ -7,6 +7,9 @@
7
7
  #include <Box2D/Common/b2Draw.h>
8
8
  #include "xot/util.h"
9
9
  #include "reflex/body.h"
10
+ #include "reflex/view.h"
11
+ #include "reflex/event.h"
12
+ #include "reflex/exception.h"
10
13
 
11
14
 
12
15
  namespace Reflex
@@ -18,10 +21,15 @@ namespace Reflex
18
21
 
19
22
  public:
20
23
 
21
- DebugDraw (float scale)
22
- : scale(scale), painter(NULL)
24
+ DebugDraw (float ppm)
25
+ : ppm(ppm), painter(NULL)
23
26
  {
24
- SetFlags(e_shapeBit);
27
+ SetFlags(
28
+ e_shapeBit |
29
+ e_jointBit |
30
+ //e_aabbBit |
31
+ e_pairBit |
32
+ e_centerOfMassBit);
25
33
  }
26
34
 
27
35
  void begin (Painter* painter)
@@ -46,7 +54,7 @@ namespace Reflex
46
54
 
47
55
  boost::scoped_array<Coord2> points(new Coord2[vertexCount]);
48
56
  for (int i = 0; i < vertexCount; ++i)
49
- points[i] = to_coord2(vertices[i], scale);
57
+ points[i] = to_coord2(vertices[i], ppm);
50
58
 
51
59
  painter->polygon(&points[0], vertexCount);
52
60
  }
@@ -61,7 +69,7 @@ namespace Reflex
61
69
 
62
70
  boost::scoped_array<Coord2> points(new Coord2[vertexCount]);
63
71
  for (int i = 0; i < vertexCount; ++i)
64
- points[i] = to_coord2(vertices[i], scale);
72
+ points[i] = to_coord2(vertices[i], ppm);
65
73
 
66
74
  painter->polygon(&points[0], vertexCount);
67
75
  }
@@ -73,7 +81,7 @@ namespace Reflex
73
81
 
74
82
  painter->no_fill();
75
83
  painter->set_stroke(color.r, color.g, color.b, color.a * 0.5);
76
- painter->ellipse(Point(center.x * scale, center.y * scale), radius * scale);
84
+ painter->ellipse(to_point(center, ppm), to_coord(radius, ppm));
77
85
  }
78
86
 
79
87
  void DrawSolidCircle (
@@ -83,7 +91,7 @@ namespace Reflex
83
91
 
84
92
  painter->set_fill(color.r, color.g, color.b, color.a * 0.5);
85
93
  painter->no_stroke();
86
- painter->ellipse(Point(center.x * scale, center.y * scale), radius * scale);
94
+ painter->ellipse(to_point(center, ppm), to_coord(radius, ppm));
87
95
  }
88
96
 
89
97
  void DrawSegment (
@@ -93,7 +101,7 @@ namespace Reflex
93
101
 
94
102
  painter->no_fill();
95
103
  painter->set_stroke(color.r, color.g, color.b, color.a * 0.5);
96
- painter->line(p1.x * scale, p1.y * scale, p2.x * scale, p2.y * scale);
104
+ painter->line(to_point(p1, ppm), to_point(p2, ppm));
97
105
  }
98
106
 
99
107
  void DrawTransform (const b2Transform& transform)
@@ -103,17 +111,19 @@ namespace Reflex
103
111
 
104
112
  private:
105
113
 
106
- float scale;
114
+ float ppm;
107
115
 
108
116
  Painter* painter;
109
117
 
110
118
  };// DebugDraw
111
119
 
112
120
 
113
- World::World (float scale)
114
- : world(b2Vec2(0, 0)), scale(scale), wall(NULL), debug_draw(NULL)
121
+ World::World (View* owner, float pixels_per_meter)
122
+ : world(b2Vec2(0, 0)), ppm(pixels_per_meter), last_step(0), wall_(NULL),
123
+ debug_draw(NULL)
115
124
  {
116
- wall = create_body();
125
+ world.SetContactListener(this);
126
+ wall_ = create_body(owner);
117
127
  }
118
128
 
119
129
  World::~World ()
@@ -124,38 +134,58 @@ namespace Reflex
124
134
  void
125
135
  World::step (float dt)
126
136
  {
127
- world.Step(dt, 6, 2);
137
+ static const double DT = 1. / 60.;
138
+
139
+ dt += last_step;
140
+ last_step = fmod(dt, DT);
141
+
142
+ int count = (int) (dt / DT);
143
+ for (int i = 0; i < count; ++i)
144
+ world.Step(DT, 8, 4);
128
145
  }
129
146
 
130
147
  Body*
131
- World::create_body (const Point& position, float degree)
148
+ World::create_body (View* owner, const Point& position, float degree)
132
149
  {
150
+ if (!owner)
151
+ argument_error(__FILE__, __LINE__);
152
+
153
+ if (world.IsLocked())
154
+ invalid_state_error(__FILE__, __LINE__);
155
+
133
156
  b2BodyDef def;
134
- def.position = to_box2d(position, scale);
157
+ def.position = to_b2vec2(position, ppm);
135
158
  def.angle = Xot::deg2rad(degree);
136
- return new Body(world.CreateBody(&def), scale);
159
+ b2Body* body = world.CreateBody(&def);
160
+ body->SetUserData(owner);
161
+ return new Body(body, ppm);
137
162
  }
138
163
 
139
164
  void
140
165
  World::destroy_body (Body* body)
141
166
  {
142
- world.DestroyBody((b2Body*) body->handle);
167
+ if (!body)
168
+ argument_error(__FILE__, __LINE__);
169
+
170
+ b2Body* b = (b2Body*) body->handle;
171
+ if (!b || world.IsLocked())
172
+ invalid_state_error(__FILE__, __LINE__);
173
+
174
+ world.DestroyBody(b);
143
175
  }
144
176
 
145
177
  void
146
178
  World::resize (coord width, coord height)
147
179
  {
148
- wall->clear_fixtures();
180
+ wall_->clear_fixtures();
149
181
 
150
- coord w = width / scale;
151
- coord h = height / scale;
152
182
  const Point points[] = {
153
- Point(0, 0),
154
- Point(0, h),
155
- Point(w, h),
156
- Point(w, 0),
183
+ Point(0, 0),
184
+ Point(0, height),
185
+ Point(width, height),
186
+ Point(width, 0),
157
187
  };
158
- wall->add_edge(points, 4, true);
188
+ wall_->add_edge(points, 4, true);
159
189
  }
160
190
 
161
191
  void
@@ -168,25 +198,43 @@ namespace Reflex
168
198
  debug_draw->end();
169
199
  }
170
200
 
201
+ float
202
+ World::meter2pixel (float meter) const
203
+ {
204
+ return meter * ppm;
205
+ }
206
+
171
207
  void
172
208
  World::set_gravity (const Point& gravity)
173
209
  {
174
- world.SetGravity(to_box2d(gravity, scale));
210
+ world.SetGravity(to_b2vec2(gravity, ppm));
175
211
  }
176
212
 
177
213
  Point
178
214
  World::gravity () const
179
215
  {
180
- return to_point(world.GetGravity(), scale);
216
+ return to_point(world.GetGravity(), ppm);
217
+ }
218
+
219
+ Body*
220
+ World::wall ()
221
+ {
222
+ return wall_;
223
+ }
224
+
225
+ const Body*
226
+ World::wall () const
227
+ {
228
+ return const_cast<World*>(this)->wall();
181
229
  }
182
230
 
183
231
  void
184
232
  World::set_debug (bool state)
185
233
  {
186
- if (state == is_debug()) return;
234
+ if (state == debugging()) return;
187
235
 
188
236
  if (!debug_draw)
189
- debug_draw = new DebugDraw(scale);
237
+ debug_draw = new DebugDraw(ppm);
190
238
  else
191
239
  {
192
240
  delete debug_draw;
@@ -197,10 +245,42 @@ namespace Reflex
197
245
  }
198
246
 
199
247
  bool
200
- World::is_debug () const
248
+ World::debugging () const
201
249
  {
202
250
  return debug_draw;
203
251
  }
204
252
 
253
+ void
254
+ World::BeginContact (b2Contact* contact)
255
+ {
256
+ View* v1 = (View*) contact->GetFixtureA()->GetBody()->GetUserData();
257
+ if (!v1) return;
258
+
259
+ View* v2 = (View*) contact->GetFixtureB()->GetBody()->GetUserData();
260
+ if (!v2) return;
261
+
262
+ ContactEvent e1(ContactEvent::BEGIN, v2);
263
+ v1->on_contact(&e1);
264
+
265
+ ContactEvent e2(ContactEvent::BEGIN, v1);
266
+ v2->on_contact(&e2);
267
+ }
268
+
269
+ void
270
+ World::EndContact (b2Contact* contact)
271
+ {
272
+ View* v1 = (View*) contact->GetFixtureA()->GetBody()->GetUserData();
273
+ if (!v1) return;
274
+
275
+ View* v2 = (View*) contact->GetFixtureB()->GetBody()->GetUserData();
276
+ if (!v2) return;
277
+
278
+ ContactEvent e1(ContactEvent::END, v2);
279
+ v1->on_contact(&e1);
280
+
281
+ ContactEvent e2(ContactEvent::END, v1);
282
+ v2->on_contact(&e2);
283
+ }
284
+
205
285
 
206
286
  }// Reflex
data/src/world.h CHANGED
@@ -6,6 +6,8 @@
6
6
 
7
7
  #include <boost/noncopyable.hpp>
8
8
  #include <Box2D/Dynamics/b2World.h>
9
+ #include <Box2D/Dynamics/b2WorldCallbacks.h>
10
+ #include <Box2D/Dynamics/Contacts/b2Contact.h>
9
11
  #include <reflex/defs.h>
10
12
  #include <reflex/point.h>
11
13
  #include <reflex/painter.h>
@@ -15,23 +17,25 @@ namespace Reflex
15
17
  {
16
18
 
17
19
 
20
+ class View;
21
+
18
22
  class Body;
19
23
 
20
24
  class DebugDraw;
21
25
 
22
26
 
23
- class World : public boost::noncopyable
27
+ class World : public boost::noncopyable, private b2ContactListener
24
28
  {
25
29
 
26
30
  public:
27
31
 
28
- World (float scale = 100);
32
+ World (View* owner, float pixels_per_meter = 100);
29
33
 
30
34
  ~World ();
31
35
 
32
36
  void step (float dt);
33
37
 
34
- Body* create_body (const Point& position = 0, float degree = 0);
38
+ Body* create_body (View* owner, const Point& position = 0, float degree = 0);
35
39
 
36
40
  void destroy_body (Body* body);
37
41
 
@@ -39,21 +43,33 @@ namespace Reflex
39
43
 
40
44
  void draw (Painter* painter);
41
45
 
46
+ float meter2pixel (float meter = 1) const;
47
+
42
48
  void set_gravity (const Point& gravity);
43
49
 
44
50
  Point gravity () const;
45
51
 
46
52
  void set_debug (bool state = true);
47
53
 
48
- bool is_debug () const;
54
+ bool debugging () const;
55
+
56
+ Body* wall ();
57
+
58
+ const Body* wall () const;
59
+
60
+ protected:
61
+
62
+ void BeginContact (b2Contact* contact);
63
+
64
+ void EndContact (b2Contact* contact);
49
65
 
50
66
  private:
51
67
 
52
68
  b2World world;
53
69
 
54
- float scale;
70
+ float ppm, last_step;
55
71
 
56
- Body* wall;
72
+ Body* wall_;
57
73
 
58
74
  DebugDraw* debug_draw;
59
75
 
@@ -61,32 +77,63 @@ namespace Reflex
61
77
 
62
78
 
63
79
  template <typename T>
80
+ inline float32
81
+ to_b2coord (T t, float scale)
82
+ {
83
+ return t / scale;
84
+ }
85
+
86
+ template <typename T>
87
+ inline b2Vec2
88
+ to_b2vec2 (T x, T y, float scale)
89
+ {
90
+ return b2Vec2(
91
+ to_b2coord(x, scale),
92
+ to_b2coord(y, scale));
93
+ }
94
+
95
+ template <typename VEC>
64
96
  inline b2Vec2
65
- to_box2d (const T& t, float scale)
97
+ to_b2vec2 (const VEC& v, float scale)
98
+ {
99
+ return b2Vec2(
100
+ to_b2coord(v.x, scale),
101
+ to_b2coord(v.y, scale));
102
+ }
103
+
104
+
105
+ inline coord
106
+ to_coord (float32 t, float scale)
66
107
  {
67
- return b2Vec2(t.x / scale, t.y / scale);
108
+ return t * scale;
68
109
  }
69
110
 
70
111
  inline Coord2
71
- to_coord2 (const b2Vec2& vec, float scale)
112
+ to_coord2 (const b2Vec2& v, float scale)
72
113
  {
73
114
  Coord2 c;
74
- c.reset(vec.x * scale, vec.y * scale);
115
+ c.reset(
116
+ to_coord(v.x, scale),
117
+ to_coord(v.y, scale));
75
118
  return c;
76
119
  }
77
120
 
78
121
  inline Coord3
79
- to_coord3 (const b2Vec2& vec, float scale)
122
+ to_coord3 (const b2Vec2& v, float scale)
80
123
  {
81
124
  Coord3 c;
82
- c.reset(vec.x * scale, vec.y * scale);
125
+ c.reset(
126
+ to_coord(v.x, scale),
127
+ to_coord(v.y, scale));
83
128
  return c;
84
129
  }
85
130
 
86
131
  inline Point
87
- to_point (const b2Vec2& vec, float scale)
132
+ to_point (const b2Vec2& v, float scale)
88
133
  {
89
- return Point(vec.x * scale, vec.y * scale);
134
+ return Point(
135
+ to_coord(v.x, scale),
136
+ to_coord(v.y, scale));
90
137
  }
91
138
 
92
139
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reflexion
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - snori
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-24 00:00:00.000000000 Z
11
+ date: 2014-11-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -87,9 +87,12 @@ extensions:
87
87
  - Rakefile
88
88
  extra_rdoc_files:
89
89
  - ".doc/ext/reflex/application.cpp"
90
+ - ".doc/ext/reflex/arc_shape.cpp"
90
91
  - ".doc/ext/reflex/body.cpp"
91
92
  - ".doc/ext/reflex/capture_event.cpp"
93
+ - ".doc/ext/reflex/contact_event.cpp"
92
94
  - ".doc/ext/reflex/draw_event.cpp"
95
+ - ".doc/ext/reflex/ellipse_shape.cpp"
93
96
  - ".doc/ext/reflex/event.cpp"
94
97
  - ".doc/ext/reflex/fixture.cpp"
95
98
  - ".doc/ext/reflex/focus_event.cpp"
@@ -98,9 +101,11 @@ extra_rdoc_files:
98
101
  - ".doc/ext/reflex/key_event.cpp"
99
102
  - ".doc/ext/reflex/native.cpp"
100
103
  - ".doc/ext/reflex/pointer_event.cpp"
104
+ - ".doc/ext/reflex/rect_shape.cpp"
101
105
  - ".doc/ext/reflex/reflex.cpp"
102
106
  - ".doc/ext/reflex/scroll_event.cpp"
103
107
  - ".doc/ext/reflex/selector.cpp"
108
+ - ".doc/ext/reflex/shape_view.cpp"
104
109
  - ".doc/ext/reflex/style.cpp"
105
110
  - ".doc/ext/reflex/style_length.cpp"
106
111
  - ".doc/ext/reflex/style_length2.cpp"
@@ -114,10 +119,13 @@ files:
114
119
  - Rakefile
115
120
  - VERSION
116
121
  - ext/reflex/application.cpp
122
+ - ext/reflex/arc_shape.cpp
117
123
  - ext/reflex/body.cpp
118
124
  - ext/reflex/capture_event.cpp
125
+ - ext/reflex/contact_event.cpp
119
126
  - ext/reflex/defs.h
120
127
  - ext/reflex/draw_event.cpp
128
+ - ext/reflex/ellipse_shape.cpp
121
129
  - ext/reflex/event.cpp
122
130
  - ext/reflex/extconf.rb
123
131
  - ext/reflex/fixture.cpp
@@ -127,9 +135,11 @@ files:
127
135
  - ext/reflex/key_event.cpp
128
136
  - ext/reflex/native.cpp
129
137
  - ext/reflex/pointer_event.cpp
138
+ - ext/reflex/rect_shape.cpp
130
139
  - ext/reflex/reflex.cpp
131
140
  - ext/reflex/scroll_event.cpp
132
141
  - ext/reflex/selector.cpp
142
+ - ext/reflex/shape_view.cpp
133
143
  - ext/reflex/style.cpp
134
144
  - ext/reflex/style_length.cpp
135
145
  - ext/reflex/style_length2.cpp
@@ -164,12 +174,14 @@ files:
164
174
  - include/reflex/ruby/image_view.h
165
175
  - include/reflex/ruby/reflex.h
166
176
  - include/reflex/ruby/selector.h
177
+ - include/reflex/ruby/shape_view.h
167
178
  - include/reflex/ruby/style.h
168
179
  - include/reflex/ruby/style_length.h
169
180
  - include/reflex/ruby/view.h
170
181
  - include/reflex/ruby/window.h
171
182
  - include/reflex/selector.h
172
183
  - include/reflex/shader.h
184
+ - include/reflex/shape_view.h
173
185
  - include/reflex/style.h
174
186
  - include/reflex/style_length.h
175
187
  - include/reflex/texture.h
@@ -177,7 +189,6 @@ files:
177
189
  - include/reflex/window.h
178
190
  - lib/reflex.rb
179
191
  - lib/reflex/application.rb
180
- - lib/reflex/arc_shape.rb
181
192
  - lib/reflex/autoinit.rb
182
193
  - lib/reflex/bitmap.rb
183
194
  - lib/reflex/body.rb
@@ -186,8 +197,8 @@ files:
186
197
  - lib/reflex/capture_event.rb
187
198
  - lib/reflex/color.rb
188
199
  - lib/reflex/color_space.rb
200
+ - lib/reflex/contact_event.rb
189
201
  - lib/reflex/draw_event.rb
190
- - lib/reflex/ellipse_shape.rb
191
202
  - lib/reflex/ext.rb
192
203
  - lib/reflex/fixture.rb
193
204
  - lib/reflex/flags.rb
@@ -198,7 +209,6 @@ files:
198
209
  - lib/reflex/image.rb
199
210
  - lib/reflex/image_view.rb
200
211
  - lib/reflex/key_event.rb
201
- - lib/reflex/line_shape.rb
202
212
  - lib/reflex/list_view.rb
203
213
  - lib/reflex/model.rb
204
214
  - lib/reflex/model_owner.rb
@@ -207,12 +217,11 @@ files:
207
217
  - lib/reflex/painter.rb
208
218
  - lib/reflex/point.rb
209
219
  - lib/reflex/pointer_event.rb
210
- - lib/reflex/rect_shape.rb
211
220
  - lib/reflex/reflex.rb
212
221
  - lib/reflex/scroll_event.rb
213
222
  - lib/reflex/selector.rb
214
223
  - lib/reflex/shader.rb
215
- - lib/reflex/shape.rb
224
+ - lib/reflex/shape_view.rb
216
225
  - lib/reflex/style.rb
217
226
  - lib/reflex/style_length.rb
218
227
  - lib/reflex/style_length2.rb
@@ -252,8 +261,10 @@ files:
252
261
  - samples/osx/hello/hello/hello-Prefix.pch
253
262
  - samples/osx/hello/hello/main.cpp
254
263
  - samples/physics.rb
264
+ - samples/reflexion/breakout.rb
255
265
  - samples/reflexion/hello.rb
256
266
  - samples/reflexion/paint.rb
267
+ - samples/reflexion/physics.rb
257
268
  - samples/reflexion/pulse.rb
258
269
  - samples/repl.rb
259
270
  - samples/shader.rb
@@ -387,6 +398,7 @@ files:
387
398
  - src/physics/Box2D/Rope/b2Rope.cpp
388
399
  - src/physics/Box2D/Rope/b2Rope.h
389
400
  - src/selector.cpp
401
+ - src/shape_view.cpp
390
402
  - src/style.cpp
391
403
  - src/style_length.cpp
392
404
  - src/view.cpp
@@ -417,9 +429,12 @@ files:
417
429
  - test/test_view.rb
418
430
  - test/test_window.rb
419
431
  - ".doc/ext/reflex/application.cpp"
432
+ - ".doc/ext/reflex/arc_shape.cpp"
420
433
  - ".doc/ext/reflex/body.cpp"
421
434
  - ".doc/ext/reflex/capture_event.cpp"
435
+ - ".doc/ext/reflex/contact_event.cpp"
422
436
  - ".doc/ext/reflex/draw_event.cpp"
437
+ - ".doc/ext/reflex/ellipse_shape.cpp"
423
438
  - ".doc/ext/reflex/event.cpp"
424
439
  - ".doc/ext/reflex/fixture.cpp"
425
440
  - ".doc/ext/reflex/focus_event.cpp"
@@ -428,9 +443,11 @@ files:
428
443
  - ".doc/ext/reflex/key_event.cpp"
429
444
  - ".doc/ext/reflex/native.cpp"
430
445
  - ".doc/ext/reflex/pointer_event.cpp"
446
+ - ".doc/ext/reflex/rect_shape.cpp"
431
447
  - ".doc/ext/reflex/reflex.cpp"
432
448
  - ".doc/ext/reflex/scroll_event.cpp"
433
449
  - ".doc/ext/reflex/selector.cpp"
450
+ - ".doc/ext/reflex/shape_view.cpp"
434
451
  - ".doc/ext/reflex/style.cpp"
435
452
  - ".doc/ext/reflex/style_length.cpp"
436
453
  - ".doc/ext/reflex/style_length2.cpp"
@@ -1,20 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
-
4
- require 'reflex/shape'
5
-
6
-
7
- module Reflex
8
-
9
-
10
- class ArcShape < Shape
11
-
12
- def on_draw (e)
13
- p, b = e.painter, e.bounds
14
- attach_color_and_border(p) {p.arc b}
15
- end
16
-
17
- end# ArcShape
18
-
19
-
20
- end# Reflex
@@ -1,20 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
-
4
- require 'reflex/shape'
5
-
6
-
7
- module Reflex
8
-
9
-
10
- class EllipseShape < Shape
11
-
12
- def on_draw (e)
13
- p, b = e.painter, e.bounds
14
- attach_color_and_border(p) {p.ellipse b}
15
- end
16
-
17
- end# EllipseShape
18
-
19
-
20
- end# Reflex
@@ -1,20 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
-
4
- require 'reflex/shape'
5
-
6
-
7
- module Reflex
8
-
9
-
10
- class LineShape < Shape
11
-
12
- def on_draw (e)
13
- p, b = e.painter, e.bounds
14
- attach_color_and_border(p) {p.line b.lt, b.rb}
15
- end
16
-
17
- end# LineShape
18
-
19
-
20
- end# Reflex
@@ -1,20 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
-
4
- require 'reflex/shape'
5
-
6
-
7
- module Reflex
8
-
9
-
10
- class RectShape < Shape
11
-
12
- def on_draw (e)
13
- p, b = e.painter, e.bounds
14
- attach_color_and_border(p) {p.rect b}
15
- end
16
-
17
- end# RectShape
18
-
19
-
20
- end# Reflex
data/lib/reflex/shape.rb DELETED
@@ -1,34 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
-
4
- require 'reflex/view'
5
-
6
-
7
- module Reflex
8
-
9
-
10
- class Shape < View
11
-
12
- attr_accessor :color, :border
13
-
14
- def initialize (*args, &block)
15
- @color = :white
16
- @border = :none
17
- super
18
- end
19
-
20
- private
21
-
22
- def attach_color_and_border (painter, &block)
23
- fill, stroke = painter.color @color, @border
24
- if block
25
- block.call
26
- painter.color fill, stroke
27
- end
28
- return fill, stroke
29
- end
30
-
31
- end# Shape
32
-
33
-
34
- end# Reflex