reflexion 0.1.8 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|