reflexion 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.doc/ext/reflex/application.cpp +5 -1
- data/.doc/ext/reflex/arc_shape.cpp +89 -0
- data/.doc/ext/reflex/body.cpp +91 -12
- data/.doc/ext/reflex/contact_event.cpp +90 -0
- data/.doc/ext/reflex/ellipse_shape.cpp +89 -0
- data/.doc/ext/reflex/image_view.cpp +0 -16
- data/.doc/ext/reflex/native.cpp +18 -6
- data/.doc/ext/reflex/rect_shape.cpp +83 -0
- data/.doc/ext/reflex/shape_view.cpp +153 -0
- data/.doc/ext/reflex/view.cpp +63 -26
- data/.doc/ext/reflex/window.cpp +5 -1
- data/VERSION +1 -1
- data/ext/reflex/application.cpp +6 -2
- data/ext/reflex/arc_shape.cpp +94 -0
- data/ext/reflex/body.cpp +101 -13
- data/ext/reflex/contact_event.cpp +95 -0
- data/ext/reflex/ellipse_shape.cpp +94 -0
- data/ext/reflex/image_view.cpp +0 -18
- data/ext/reflex/native.cpp +18 -6
- data/ext/reflex/rect_shape.cpp +86 -0
- data/ext/reflex/shape_view.cpp +161 -0
- data/ext/reflex/view.cpp +71 -30
- data/ext/reflex/window.cpp +5 -1
- data/include/reflex/body.h +42 -12
- data/include/reflex/event.h +27 -1
- data/include/reflex/fixture.h +6 -5
- data/include/reflex/image_view.h +5 -5
- data/include/reflex/ruby/application.h +27 -6
- data/include/reflex/ruby/event.h +11 -0
- data/include/reflex/ruby/shape_view.h +96 -0
- data/include/reflex/ruby/view.h +60 -5
- data/include/reflex/ruby/window.h +12 -3
- data/include/reflex/shape_view.h +146 -0
- data/include/reflex/view.h +17 -5
- data/lib/reflex/application.rb +9 -9
- data/lib/reflex/body.rb +2 -0
- data/lib/reflex/contact_event.rb +38 -0
- data/lib/reflex/image_view.rb +1 -1
- data/lib/reflex/shape_view.rb +25 -0
- data/lib/reflex/view.rb +19 -9
- data/lib/reflex/window.rb +11 -10
- data/lib/reflex.rb +15 -13
- data/lib/reflexion.rb +25 -18
- data/samples/osx/hello/hello/main.cpp +6 -0
- data/samples/physics.rb +22 -12
- data/samples/reflexion/breakout.rb +52 -0
- data/samples/reflexion/hello.rb +5 -7
- data/samples/reflexion/paint.rb +10 -11
- data/samples/reflexion/physics.rb +28 -0
- data/samples/reflexion/pulse.rb +10 -8
- data/samples/shapes.rb +2 -2
- data/src/body.cpp +241 -40
- data/src/event.cpp +32 -2
- data/src/shape_view.cpp +306 -0
- data/src/view.cpp +232 -66
- data/src/world.cpp +110 -30
- data/src/world.h +61 -14
- metadata +24 -7
- data/lib/reflex/arc_shape.rb +0 -20
- data/lib/reflex/ellipse_shape.rb +0 -20
- data/lib/reflex/line_shape.rb +0 -20
- data/lib/reflex/rect_shape.rb +0 -20
- data/lib/reflex/shape.rb +0 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 17839f16761a4d363fdfe730341a63687985cf22
|
4
|
+
data.tar.gz: 3d1dd6d5ef7a126d949f0d20cb7fdbe97753dc23
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 41c713b7191d8ddc3817f08012c473f765c82c3f60efb9dcb8aa8b355fff0bcdc1c77584d025d515ad199b352370410f0daec814a1b7e4267927cbe0518ad3c7
|
7
|
+
data.tar.gz: 63caf9f342985e743b9d78b2ee90d93129b72dc72768187f1d6e12e08f6b502763e508e6a5dec1ead9a1b057639b52110675d6e4f294abb4665136bb0309ed15
|
@@ -58,6 +58,10 @@ static
|
|
58
58
|
VALUE on_start(VALUE self, VALUE event)
|
59
59
|
{
|
60
60
|
CHECK;
|
61
|
+
|
62
|
+
RUCY_SYM(call_start_block);
|
63
|
+
self.call(call_start_block);
|
64
|
+
|
61
65
|
CALL(on_start(to<Reflex::Event*>(event)));
|
62
66
|
}
|
63
67
|
|
@@ -102,7 +106,7 @@ Init_application ()
|
|
102
106
|
rb_define_method(cApplication, "quit", RUBY_METHOD_FUNC(quit), 0);
|
103
107
|
rb_define_method(cApplication, "name=", RUBY_METHOD_FUNC(set_name), 1);
|
104
108
|
rb_define_method(cApplication, "name", RUBY_METHOD_FUNC(get_name), 0);
|
105
|
-
cApplication
|
109
|
+
rb_define_method(cApplication, "on_start", RUBY_METHOD_FUNC(on_start), 1);
|
106
110
|
rb_define_method(cApplication, "on_quit", RUBY_METHOD_FUNC(on_quit), 1);
|
107
111
|
rb_define_method(cApplication, "on_preference", RUBY_METHOD_FUNC(on_preference), 1);
|
108
112
|
rb_define_method(cApplication, "on_about", RUBY_METHOD_FUNC(on_about), 1);
|
@@ -0,0 +1,89 @@
|
|
1
|
+
#include "reflex/ruby/shape_view.h"
|
2
|
+
|
3
|
+
|
4
|
+
#include <rucy.h>
|
5
|
+
|
6
|
+
|
7
|
+
using namespace Rucy;
|
8
|
+
|
9
|
+
using Reflex::coord;
|
10
|
+
|
11
|
+
|
12
|
+
RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Reflex::ArcShape)
|
13
|
+
|
14
|
+
#define THIS to<Reflex::ArcShape*>(self)
|
15
|
+
|
16
|
+
#define CHECK RUCY_CHECK_OBJECT(Reflex::ArcShape, self)
|
17
|
+
|
18
|
+
#define CALL(fun) RUCY_WRAPPER_CALL(Reflex::ArcShape, THIS, fun)
|
19
|
+
|
20
|
+
|
21
|
+
static
|
22
|
+
VALUE alloc(VALUE klass)
|
23
|
+
{
|
24
|
+
return value(new Reflex::RubyShapeView<Reflex::ArcShape>, klass);
|
25
|
+
}
|
26
|
+
|
27
|
+
static
|
28
|
+
VALUE set_angle_from(VALUE self, VALUE degree)
|
29
|
+
{
|
30
|
+
CHECK;
|
31
|
+
THIS->set_angle_from(degree.as_f(true));
|
32
|
+
return self;
|
33
|
+
}
|
34
|
+
|
35
|
+
static
|
36
|
+
VALUE get_angle_from(VALUE self)
|
37
|
+
{
|
38
|
+
CHECK;
|
39
|
+
return value(THIS->angle_from());
|
40
|
+
}
|
41
|
+
|
42
|
+
static
|
43
|
+
VALUE set_angle_to(VALUE self, VALUE degree)
|
44
|
+
{
|
45
|
+
CHECK;
|
46
|
+
THIS->set_angle_to(degree.as_f(true));
|
47
|
+
return self;
|
48
|
+
}
|
49
|
+
|
50
|
+
static
|
51
|
+
VALUE get_angle_to(VALUE self)
|
52
|
+
{
|
53
|
+
CHECK;
|
54
|
+
return value(THIS->angle_to());
|
55
|
+
}
|
56
|
+
|
57
|
+
static
|
58
|
+
RUCY_DEF_clear_override_flags(cof, Reflex::ArcShape);
|
59
|
+
|
60
|
+
|
61
|
+
static Class cArcShape;
|
62
|
+
|
63
|
+
void
|
64
|
+
Init_arc_shape ()
|
65
|
+
{
|
66
|
+
Module mReflex = rb_define_module("Reflex");
|
67
|
+
|
68
|
+
cArcShape = mReflex.define_class("ArcShape", Reflex::ellipse_shape_class());
|
69
|
+
rb_define_alloc_func(cArcShape, alloc);
|
70
|
+
rb_define_method(cArcShape, "angle_from=", RUBY_METHOD_FUNC(set_angle_from), 1);
|
71
|
+
rb_define_method(cArcShape, "angle_from", RUBY_METHOD_FUNC(get_angle_from), 0);
|
72
|
+
rb_define_method(cArcShape, "angle_to=", RUBY_METHOD_FUNC(set_angle_to), 1);
|
73
|
+
rb_define_method(cArcShape, "angle_to=", RUBY_METHOD_FUNC(get_angle_to), 0);
|
74
|
+
|
75
|
+
}
|
76
|
+
|
77
|
+
|
78
|
+
namespace Reflex
|
79
|
+
{
|
80
|
+
|
81
|
+
|
82
|
+
Class
|
83
|
+
arc_shape_class ()
|
84
|
+
{
|
85
|
+
return cArcShape;
|
86
|
+
}
|
87
|
+
|
88
|
+
|
89
|
+
}// Reflex
|
data/.doc/ext/reflex/body.cpp
CHANGED
@@ -33,32 +33,37 @@ VALUE add_box(VALUE self, VALUE width, VALUE height)
|
|
33
33
|
}
|
34
34
|
|
35
35
|
static
|
36
|
-
VALUE
|
36
|
+
VALUE add_ellipse(VALUE self, VALUE width, VALUE height)
|
37
37
|
{
|
38
38
|
CHECK;
|
39
|
-
return value(THIS->
|
39
|
+
return value(THIS->add_ellipse(width.as_f(true), height.as_f(true)));
|
40
40
|
}
|
41
41
|
|
42
42
|
static
|
43
|
-
VALUE
|
43
|
+
VALUE add_arc(VALUE self, VALUE width, VALUE height, VALUE angle_from, VALUE angle_to)
|
44
44
|
{
|
45
45
|
CHECK;
|
46
|
-
THIS->
|
47
|
-
|
46
|
+
return value(THIS->add_arc(
|
47
|
+
width.as_f(true), height.as_f(true),
|
48
|
+
angle_from.as_f(true), angle_to.as_f(true)));
|
48
49
|
}
|
49
50
|
|
50
51
|
static
|
51
|
-
VALUE
|
52
|
+
VALUE clear_fixtures(VALUE self)
|
52
53
|
{
|
53
54
|
CHECK;
|
54
|
-
|
55
|
+
THIS->clear_fixtures();
|
56
|
+
return self;
|
55
57
|
}
|
56
58
|
|
57
59
|
static
|
58
|
-
VALUE
|
60
|
+
VALUE meter2pixel(VALUE self)
|
59
61
|
{
|
60
62
|
CHECK;
|
61
|
-
|
63
|
+
check_arg_count(__FILE__, __LINE__, "View#meter2pixel", argc, 0, 1);
|
64
|
+
|
65
|
+
float meter = argc >= 1 ? argv[0].as_f(true) : 1;
|
66
|
+
return value(THIS->meter2pixel(meter));
|
62
67
|
}
|
63
68
|
|
64
69
|
static
|
@@ -91,6 +96,50 @@ VALUE is_dynamic(VALUE self)
|
|
91
96
|
return value(THIS->is_dynamic());
|
92
97
|
}
|
93
98
|
|
99
|
+
static
|
100
|
+
VALUE get_position(VALUE self)
|
101
|
+
{
|
102
|
+
CHECK;
|
103
|
+
return value(THIS->position());
|
104
|
+
}
|
105
|
+
|
106
|
+
static
|
107
|
+
VALUE get_angle(VALUE self)
|
108
|
+
{
|
109
|
+
CHECK;
|
110
|
+
return value(THIS->angle());
|
111
|
+
}
|
112
|
+
|
113
|
+
static
|
114
|
+
VALUE set_linear_velocity(VALUE self, VALUE velocity)
|
115
|
+
{
|
116
|
+
CHECK;
|
117
|
+
THIS->set_linear_velocity(to<Rays::Point&>(velocity));
|
118
|
+
return self;
|
119
|
+
}
|
120
|
+
|
121
|
+
static
|
122
|
+
VALUE get_linear_velocity(VALUE self)
|
123
|
+
{
|
124
|
+
CHECK;
|
125
|
+
return value(THIS->linear_velocity());
|
126
|
+
}
|
127
|
+
|
128
|
+
static
|
129
|
+
VALUE set_angular_velocity(VALUE self, VALUE velocity)
|
130
|
+
{
|
131
|
+
CHECK;
|
132
|
+
THIS->set_angular_velocity(velocity.as_f(true));
|
133
|
+
return self;
|
134
|
+
}
|
135
|
+
|
136
|
+
static
|
137
|
+
VALUE get_angular_velocity(VALUE self)
|
138
|
+
{
|
139
|
+
CHECK;
|
140
|
+
return value(THIS->angular_velocity());
|
141
|
+
}
|
142
|
+
|
94
143
|
static
|
95
144
|
VALUE set_density(VALUE self, VALUE density)
|
96
145
|
{
|
@@ -99,6 +148,13 @@ VALUE set_density(VALUE self, VALUE density)
|
|
99
148
|
return self;
|
100
149
|
}
|
101
150
|
|
151
|
+
static
|
152
|
+
VALUE get_density(VALUE self)
|
153
|
+
{
|
154
|
+
CHECK;
|
155
|
+
return value(THIS->density());
|
156
|
+
}
|
157
|
+
|
102
158
|
static
|
103
159
|
VALUE set_friction(VALUE self, VALUE friction)
|
104
160
|
{
|
@@ -107,6 +163,13 @@ VALUE set_friction(VALUE self, VALUE friction)
|
|
107
163
|
return self;
|
108
164
|
}
|
109
165
|
|
166
|
+
static
|
167
|
+
VALUE get_friction(VALUE self)
|
168
|
+
{
|
169
|
+
CHECK;
|
170
|
+
return value(THIS->friction());
|
171
|
+
}
|
172
|
+
|
110
173
|
static
|
111
174
|
VALUE set_restitution(VALUE self, VALUE restitution)
|
112
175
|
{
|
@@ -115,6 +178,13 @@ VALUE set_restitution(VALUE self, VALUE restitution)
|
|
115
178
|
return self;
|
116
179
|
}
|
117
180
|
|
181
|
+
static
|
182
|
+
VALUE get_restitution(VALUE self)
|
183
|
+
{
|
184
|
+
CHECK;
|
185
|
+
return value(THIS->restitution());
|
186
|
+
}
|
187
|
+
|
118
188
|
static
|
119
189
|
VALUE each(VALUE self)
|
120
190
|
{
|
@@ -138,17 +208,26 @@ Init_body ()
|
|
138
208
|
cBody = rb_define_class_under(mReflex, "Body", rb_cObject);
|
139
209
|
rb_define_private_method(cBody, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
|
140
210
|
rb_define_method(cBody, "add_box", RUBY_METHOD_FUNC(add_box), 2);
|
141
|
-
rb_define_method(cBody, "
|
211
|
+
rb_define_method(cBody, "add_ellipse", RUBY_METHOD_FUNC(add_ellipse), 2);
|
212
|
+
rb_define_method(cBody, "add_arc", RUBY_METHOD_FUNC(add_arc), 4);
|
142
213
|
rb_define_method(cBody, "clear_fixtures", RUBY_METHOD_FUNC(clear_fixtures), 0);
|
143
|
-
rb_define_method(cBody, "
|
144
|
-
rb_define_method(cBody, "angle", RUBY_METHOD_FUNC(get_angle), 0);
|
214
|
+
rb_define_method(cBody, "meter2pixel", RUBY_METHOD_FUNC(meter2pixel), -1);
|
145
215
|
rb_define_method(cBody, "static=", RUBY_METHOD_FUNC(set_static), 1);
|
146
216
|
cBody.define_method("static?", is_static);
|
147
217
|
rb_define_method(cBody, "dynamic=", RUBY_METHOD_FUNC(set_dynamic), 1);
|
148
218
|
cBody.define_method("dynamic?", is_dynamic);
|
219
|
+
rb_define_method(cBody, "position", RUBY_METHOD_FUNC(get_position), 0);
|
220
|
+
rb_define_method(cBody, "angle", RUBY_METHOD_FUNC(get_angle), 0);
|
221
|
+
rb_define_method(cBody, "linear_velocity=", RUBY_METHOD_FUNC(set_linear_velocity), 1);
|
222
|
+
rb_define_method(cBody, "linear_velocity", RUBY_METHOD_FUNC(get_linear_velocity), 0);
|
223
|
+
rb_define_method(cBody, "angular_velocity=", RUBY_METHOD_FUNC(set_angular_velocity), 1);
|
224
|
+
rb_define_method(cBody, "angular_velocity", RUBY_METHOD_FUNC(get_angular_velocity), 0);
|
149
225
|
rb_define_method(cBody, "density=", RUBY_METHOD_FUNC(set_density), 1);
|
226
|
+
rb_define_method(cBody, "density", RUBY_METHOD_FUNC(get_density), 0);
|
150
227
|
rb_define_method(cBody, "friction=", RUBY_METHOD_FUNC(set_friction), 1);
|
228
|
+
rb_define_method(cBody, "friction", RUBY_METHOD_FUNC(get_friction), 0);
|
151
229
|
rb_define_method(cBody, "restitution=", RUBY_METHOD_FUNC(set_restitution), 1);
|
230
|
+
rb_define_method(cBody, "restitution", RUBY_METHOD_FUNC(get_restitution), 0);
|
152
231
|
rb_define_method(cBody, "each", RUBY_METHOD_FUNC(each), 0);
|
153
232
|
}
|
154
233
|
|
@@ -0,0 +1,90 @@
|
|
1
|
+
#include "reflex/ruby/event.h"
|
2
|
+
|
3
|
+
|
4
|
+
#include <rucy.h>
|
5
|
+
#include "reflex/ruby/view.h"
|
6
|
+
#include "defs.h"
|
7
|
+
|
8
|
+
|
9
|
+
using namespace Rucy;
|
10
|
+
|
11
|
+
|
12
|
+
RUCY_DEFINE_VALUE_FROM_TO(Reflex::ContactEvent)
|
13
|
+
|
14
|
+
#define THIS to<Reflex::ContactEvent*>(self)
|
15
|
+
|
16
|
+
#define CHECK RUCY_CHECK_OBJ(Reflex::ContactEvent, self)
|
17
|
+
|
18
|
+
|
19
|
+
static
|
20
|
+
VALUE alloc(VALUE klass)
|
21
|
+
{
|
22
|
+
return new_type<Reflex::ContactEvent>(klass);
|
23
|
+
}
|
24
|
+
|
25
|
+
static
|
26
|
+
VALUE initialize(VALUE self)
|
27
|
+
{
|
28
|
+
CHECK;
|
29
|
+
check_arg_count(__FILE__, __LINE__, "ContactEvent#initialize", argc, 0, 2);
|
30
|
+
|
31
|
+
THIS->type = (argc >= 1) ? (Reflex::ContactEvent::Type) to<int>(argv[0]) : Reflex::ContactEvent::NONE;
|
32
|
+
THIS->view = (argc >= 2) ? to<Reflex::View*>(argv[1]) : NULL;
|
33
|
+
|
34
|
+
return rb_call_super(0, NULL);
|
35
|
+
}
|
36
|
+
|
37
|
+
static
|
38
|
+
VALUE initialize_copy(VALUE self, VALUE obj)
|
39
|
+
{
|
40
|
+
CHECK;
|
41
|
+
*THIS = to<Reflex::ContactEvent&>(obj);
|
42
|
+
return self;
|
43
|
+
}
|
44
|
+
|
45
|
+
static
|
46
|
+
VALUE get_type(VALUE self)
|
47
|
+
{
|
48
|
+
CHECK;
|
49
|
+
return value(THIS->type);
|
50
|
+
}
|
51
|
+
|
52
|
+
static
|
53
|
+
VALUE get_view(VALUE self)
|
54
|
+
{
|
55
|
+
CHECK;
|
56
|
+
return value(THIS->view);
|
57
|
+
}
|
58
|
+
|
59
|
+
|
60
|
+
static Class cContactEvent;
|
61
|
+
|
62
|
+
void
|
63
|
+
Init_contact_event ()
|
64
|
+
{
|
65
|
+
Module mReflex = rb_define_module("Reflex");
|
66
|
+
|
67
|
+
cContactEvent = mReflex.define_class("ContactEvent", Reflex::event_class());
|
68
|
+
rb_define_alloc_func(cContactEvent, alloc);
|
69
|
+
rb_define_private_method(cContactEvent, "initialize", RUBY_METHOD_FUNC(initialize), -1);
|
70
|
+
rb_define_private_method(cContactEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
|
71
|
+
rb_define_method(cContactEvent, "get_type", RUBY_METHOD_FUNC(get_type), 0);
|
72
|
+
rb_define_method(cContactEvent, "view", RUBY_METHOD_FUNC(get_view), 0);
|
73
|
+
cContactEvent.define_const("TYPE_NONE", Reflex::ContactEvent::NONE);
|
74
|
+
cContactEvent.define_const("TYPE_BEGIN", Reflex::ContactEvent::BEGIN);
|
75
|
+
cContactEvent.define_const("TYPE_END", Reflex::ContactEvent::END);
|
76
|
+
}
|
77
|
+
|
78
|
+
|
79
|
+
namespace Reflex
|
80
|
+
{
|
81
|
+
|
82
|
+
|
83
|
+
Class
|
84
|
+
contact_event_class ()
|
85
|
+
{
|
86
|
+
return cContactEvent;
|
87
|
+
}
|
88
|
+
|
89
|
+
|
90
|
+
}// Reflex
|
@@ -0,0 +1,89 @@
|
|
1
|
+
#include "reflex/ruby/shape_view.h"
|
2
|
+
|
3
|
+
|
4
|
+
#include <rucy.h>
|
5
|
+
|
6
|
+
|
7
|
+
using namespace Rucy;
|
8
|
+
|
9
|
+
using Reflex::coord;
|
10
|
+
|
11
|
+
|
12
|
+
RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Reflex::EllipseShape)
|
13
|
+
|
14
|
+
#define THIS to<Reflex::EllipseShape*>(self)
|
15
|
+
|
16
|
+
#define CHECK RUCY_CHECK_OBJECT(Reflex::EllipseShape, self)
|
17
|
+
|
18
|
+
#define CALL(fun) RUCY_WRAPPER_CALL(Reflex::EllipseShape, THIS, fun)
|
19
|
+
|
20
|
+
|
21
|
+
static
|
22
|
+
VALUE alloc(VALUE klass)
|
23
|
+
{
|
24
|
+
return value(new Reflex::RubyShapeView<Reflex::EllipseShape>, klass);
|
25
|
+
}
|
26
|
+
|
27
|
+
static
|
28
|
+
VALUE set_radius_min(VALUE self, VALUE radius)
|
29
|
+
{
|
30
|
+
CHECK;
|
31
|
+
THIS->set_radius_min(radius.as_f(true));
|
32
|
+
return radius;
|
33
|
+
}
|
34
|
+
|
35
|
+
static
|
36
|
+
VALUE get_radius_min(VALUE self)
|
37
|
+
{
|
38
|
+
CHECK;
|
39
|
+
return value(THIS->radius_min());
|
40
|
+
}
|
41
|
+
|
42
|
+
static
|
43
|
+
VALUE set_nsegment(VALUE self, VALUE nsegment)
|
44
|
+
{
|
45
|
+
CHECK;
|
46
|
+
THIS->set_nsegment(nsegment.as_i(true));
|
47
|
+
return nsegment;
|
48
|
+
}
|
49
|
+
|
50
|
+
static
|
51
|
+
VALUE get_nsegment(VALUE self)
|
52
|
+
{
|
53
|
+
CHECK;
|
54
|
+
return value(THIS->nsegment());
|
55
|
+
}
|
56
|
+
|
57
|
+
static
|
58
|
+
RUCY_DEF_clear_override_flags(cof, Reflex::EllipseShape);
|
59
|
+
|
60
|
+
|
61
|
+
static Class cEllipseShape;
|
62
|
+
|
63
|
+
void
|
64
|
+
Init_ellipse_shape ()
|
65
|
+
{
|
66
|
+
Module mReflex = rb_define_module("Reflex");
|
67
|
+
|
68
|
+
cEllipseShape = mReflex.define_class("EllipseShape", Reflex::shape_view_class());
|
69
|
+
rb_define_alloc_func(cEllipseShape, alloc);
|
70
|
+
rb_define_private_method(cEllipseShape, "radius_min=", RUBY_METHOD_FUNC(set_radius_min), 1);
|
71
|
+
rb_define_method(cEllipseShape, "radius_min", RUBY_METHOD_FUNC(get_radius_min), 0);
|
72
|
+
rb_define_private_method(cEllipseShape, "nsegment=", RUBY_METHOD_FUNC(set_nsegment), 1);
|
73
|
+
rb_define_method(cEllipseShape, "nsegment", RUBY_METHOD_FUNC(get_nsegment), 0);
|
74
|
+
|
75
|
+
}
|
76
|
+
|
77
|
+
|
78
|
+
namespace Reflex
|
79
|
+
{
|
80
|
+
|
81
|
+
|
82
|
+
Class
|
83
|
+
ellipse_shape_class ()
|
84
|
+
{
|
85
|
+
return cEllipseShape;
|
86
|
+
}
|
87
|
+
|
88
|
+
|
89
|
+
}// Reflex
|
@@ -42,20 +42,6 @@ VALUE set_image(VALUE self, VALUE image)
|
|
42
42
|
return image;
|
43
43
|
}
|
44
44
|
|
45
|
-
static
|
46
|
-
VALUE content_size(VALUE self)
|
47
|
-
{
|
48
|
-
CHECK;
|
49
|
-
return value(THIS->content_size());
|
50
|
-
}
|
51
|
-
|
52
|
-
static
|
53
|
-
VALUE on_draw(VALUE self, VALUE event)
|
54
|
-
{
|
55
|
-
CHECK;
|
56
|
-
CALL(on_draw(to<Reflex::DrawEvent*>(event)));
|
57
|
-
}
|
58
|
-
|
59
45
|
static
|
60
46
|
RUCY_DEF_clear_override_flags(cof, Reflex::ImageView);
|
61
47
|
|
@@ -71,8 +57,6 @@ Init_image_view ()
|
|
71
57
|
rb_define_alloc_func(cImageView, alloc);
|
72
58
|
rb_define_private_method(cImageView, "set_image", RUBY_METHOD_FUNC(set_image), 1);
|
73
59
|
rb_define_method(cImageView, "image", RUBY_METHOD_FUNC(get_image), 0);
|
74
|
-
rb_define_method(cImageView, "content_size", RUBY_METHOD_FUNC(content_size), 0);
|
75
|
-
rb_define_method(cImageView, "on_draw", RUBY_METHOD_FUNC(on_draw), 1);
|
76
60
|
|
77
61
|
}
|
78
62
|
|
data/.doc/ext/reflex/native.cpp
CHANGED
@@ -23,16 +23,22 @@ void Init_key_event ();
|
|
23
23
|
void Init_pointer_event ();
|
24
24
|
void Init_wheel_event ();
|
25
25
|
void Init_capture_event ();
|
26
|
+
void Init_contact_event ();
|
27
|
+
|
28
|
+
void Init_body ();
|
29
|
+
void Init_fixture ();
|
26
30
|
|
27
31
|
void Init_application ();
|
28
32
|
void Init_window ();
|
29
33
|
void Init_view ();
|
30
34
|
|
31
|
-
void Init_body ();
|
32
|
-
void Init_fixture ();
|
33
|
-
|
34
35
|
void Init_image_view ();
|
35
36
|
|
37
|
+
void Init_shape_view ();
|
38
|
+
void Init_rect_shape ();
|
39
|
+
void Init_ellipse_shape ();
|
40
|
+
void Init_arc_shape ();
|
41
|
+
|
36
42
|
|
37
43
|
extern "C" void
|
38
44
|
Init_native ()
|
@@ -59,15 +65,21 @@ Init_native ()
|
|
59
65
|
Init_pointer_event();
|
60
66
|
Init_wheel_event();
|
61
67
|
Init_capture_event();
|
68
|
+
Init_contact_event();
|
69
|
+
|
70
|
+
Init_body();
|
71
|
+
Init_fixture();
|
62
72
|
|
63
73
|
Init_application();
|
64
74
|
Init_window();
|
65
75
|
Init_view();
|
66
76
|
|
67
|
-
Init_body();
|
68
|
-
Init_fixture();
|
69
|
-
|
70
77
|
Init_image_view();
|
71
78
|
|
79
|
+
Init_shape_view();
|
80
|
+
Init_rect_shape();
|
81
|
+
Init_ellipse_shape();
|
82
|
+
Init_arc_shape();
|
83
|
+
|
72
84
|
RUCY_CATCH
|
73
85
|
}
|
@@ -0,0 +1,83 @@
|
|
1
|
+
#include "reflex/ruby/shape_view.h"
|
2
|
+
|
3
|
+
|
4
|
+
#include <rucy.h>
|
5
|
+
#include <rays/ruby/point.h>
|
6
|
+
|
7
|
+
|
8
|
+
using namespace Rucy;
|
9
|
+
|
10
|
+
using Reflex::coord;
|
11
|
+
|
12
|
+
|
13
|
+
RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Reflex::RectShape)
|
14
|
+
|
15
|
+
#define THIS to<Reflex::RectShape*>(self)
|
16
|
+
|
17
|
+
#define CHECK RUCY_CHECK_OBJECT(Reflex::RectShape, self)
|
18
|
+
|
19
|
+
#define CALL(fun) RUCY_WRAPPER_CALL(Reflex::RectShape, THIS, fun)
|
20
|
+
|
21
|
+
|
22
|
+
static
|
23
|
+
VALUE alloc(VALUE klass)
|
24
|
+
{
|
25
|
+
return value(new Reflex::RubyShapeView<Reflex::RectShape>, klass);
|
26
|
+
}
|
27
|
+
|
28
|
+
static
|
29
|
+
VALUE set_round(VALUE self)
|
30
|
+
{
|
31
|
+
CHECK;
|
32
|
+
check_arg_count(__FILE__, __LINE__, "RectShape#set_fill", argc, 1, 2);
|
33
|
+
|
34
|
+
if (argc == 1 && argv[0].is_kind_of(Rays::point_class()))
|
35
|
+
THIS->set_round(to<Rays::Point&>(argv[0]));
|
36
|
+
else
|
37
|
+
{
|
38
|
+
float w = to<float>(argv[0]);
|
39
|
+
float h = (argc >= 2) ? to<float>(argv[1]) : 1;
|
40
|
+
THIS->set_round(w, h);
|
41
|
+
}
|
42
|
+
|
43
|
+
return self;
|
44
|
+
}
|
45
|
+
|
46
|
+
static
|
47
|
+
VALUE get_round(VALUE self)
|
48
|
+
{
|
49
|
+
CHECK;
|
50
|
+
return value(THIS->round());
|
51
|
+
}
|
52
|
+
|
53
|
+
static
|
54
|
+
RUCY_DEF_clear_override_flags(cof, Reflex::RectShape);
|
55
|
+
|
56
|
+
|
57
|
+
static Class cRectShape;
|
58
|
+
|
59
|
+
void
|
60
|
+
Init_rect_shape ()
|
61
|
+
{
|
62
|
+
Module mReflex = rb_define_module("Reflex");
|
63
|
+
|
64
|
+
cRectShape = mReflex.define_class("RectShape", Reflex::shape_view_class());
|
65
|
+
rb_define_alloc_func(cRectShape, alloc);
|
66
|
+
rb_define_private_method(cRectShape, "round=", RUBY_METHOD_FUNC(set_round), -1);
|
67
|
+
rb_define_method(cRectShape, "round", RUBY_METHOD_FUNC(get_round), 0);
|
68
|
+
|
69
|
+
}
|
70
|
+
|
71
|
+
|
72
|
+
namespace Reflex
|
73
|
+
{
|
74
|
+
|
75
|
+
|
76
|
+
Class
|
77
|
+
rect_shape_class ()
|
78
|
+
{
|
79
|
+
return cRectShape;
|
80
|
+
}
|
81
|
+
|
82
|
+
|
83
|
+
}// Reflex
|