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
@@ -0,0 +1,95 @@
|
|
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
|
+
RUCY_DEF_ALLOC(alloc, klass)
|
21
|
+
{
|
22
|
+
return new_type<Reflex::ContactEvent>(klass);
|
23
|
+
}
|
24
|
+
RUCY_END
|
25
|
+
|
26
|
+
static
|
27
|
+
RUCY_DEFN(initialize)
|
28
|
+
{
|
29
|
+
CHECK;
|
30
|
+
check_arg_count(__FILE__, __LINE__, "ContactEvent#initialize", argc, 0, 2);
|
31
|
+
|
32
|
+
THIS->type = (argc >= 1) ? (Reflex::ContactEvent::Type) to<int>(argv[0]) : Reflex::ContactEvent::NONE;
|
33
|
+
THIS->view = (argc >= 2) ? to<Reflex::View*>(argv[1]) : NULL;
|
34
|
+
|
35
|
+
return rb_call_super(0, NULL);
|
36
|
+
}
|
37
|
+
RUCY_END
|
38
|
+
|
39
|
+
static
|
40
|
+
RUCY_DEF1(initialize_copy, obj)
|
41
|
+
{
|
42
|
+
CHECK;
|
43
|
+
*THIS = to<Reflex::ContactEvent&>(obj);
|
44
|
+
return self;
|
45
|
+
}
|
46
|
+
RUCY_END
|
47
|
+
|
48
|
+
static
|
49
|
+
RUCY_DEF0(get_type)
|
50
|
+
{
|
51
|
+
CHECK;
|
52
|
+
return value(THIS->type);
|
53
|
+
}
|
54
|
+
RUCY_END
|
55
|
+
|
56
|
+
static
|
57
|
+
RUCY_DEF0(get_view)
|
58
|
+
{
|
59
|
+
CHECK;
|
60
|
+
return value(THIS->view);
|
61
|
+
}
|
62
|
+
RUCY_END
|
63
|
+
|
64
|
+
|
65
|
+
static Class cContactEvent;
|
66
|
+
|
67
|
+
void
|
68
|
+
Init_contact_event ()
|
69
|
+
{
|
70
|
+
Module mReflex = define_module("Reflex");
|
71
|
+
|
72
|
+
cContactEvent = mReflex.define_class("ContactEvent", Reflex::event_class());
|
73
|
+
cContactEvent.define_alloc_func(alloc);
|
74
|
+
cContactEvent.define_private_method("initialize", initialize);
|
75
|
+
cContactEvent.define_private_method("initialize_copy", initialize_copy);
|
76
|
+
cContactEvent.define_method("get_type", get_type);
|
77
|
+
cContactEvent.define_method("view", get_view);
|
78
|
+
cContactEvent.define_const("TYPE_NONE", Reflex::ContactEvent::NONE);
|
79
|
+
cContactEvent.define_const("TYPE_BEGIN", Reflex::ContactEvent::BEGIN);
|
80
|
+
cContactEvent.define_const("TYPE_END", Reflex::ContactEvent::END);
|
81
|
+
}
|
82
|
+
|
83
|
+
|
84
|
+
namespace Reflex
|
85
|
+
{
|
86
|
+
|
87
|
+
|
88
|
+
Class
|
89
|
+
contact_event_class ()
|
90
|
+
{
|
91
|
+
return cContactEvent;
|
92
|
+
}
|
93
|
+
|
94
|
+
|
95
|
+
}// Reflex
|
@@ -0,0 +1,94 @@
|
|
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
|
+
RUCY_DEF_ALLOC(alloc, klass)
|
23
|
+
{
|
24
|
+
return value(new Reflex::RubyShapeView<Reflex::EllipseShape>, klass);
|
25
|
+
}
|
26
|
+
RUCY_END
|
27
|
+
|
28
|
+
static
|
29
|
+
RUCY_DEF1(set_radius_min, radius)
|
30
|
+
{
|
31
|
+
CHECK;
|
32
|
+
THIS->set_radius_min(radius.as_f(true));
|
33
|
+
return radius;
|
34
|
+
}
|
35
|
+
RUCY_END
|
36
|
+
|
37
|
+
static
|
38
|
+
RUCY_DEF0(get_radius_min)
|
39
|
+
{
|
40
|
+
CHECK;
|
41
|
+
return value(THIS->radius_min());
|
42
|
+
}
|
43
|
+
RUCY_END
|
44
|
+
|
45
|
+
static
|
46
|
+
RUCY_DEF1(set_nsegment, nsegment)
|
47
|
+
{
|
48
|
+
CHECK;
|
49
|
+
THIS->set_nsegment(nsegment.as_i(true));
|
50
|
+
return nsegment;
|
51
|
+
}
|
52
|
+
RUCY_END
|
53
|
+
|
54
|
+
static
|
55
|
+
RUCY_DEF0(get_nsegment)
|
56
|
+
{
|
57
|
+
CHECK;
|
58
|
+
return value(THIS->nsegment());
|
59
|
+
}
|
60
|
+
RUCY_END
|
61
|
+
|
62
|
+
static
|
63
|
+
RUCY_DEF_clear_override_flags(cof, Reflex::EllipseShape);
|
64
|
+
|
65
|
+
|
66
|
+
static Class cEllipseShape;
|
67
|
+
|
68
|
+
void
|
69
|
+
Init_ellipse_shape ()
|
70
|
+
{
|
71
|
+
Module mReflex = define_module("Reflex");
|
72
|
+
|
73
|
+
cEllipseShape = mReflex.define_class("EllipseShape", Reflex::shape_view_class());
|
74
|
+
cEllipseShape.define_alloc_func(alloc);
|
75
|
+
cEllipseShape.define_private_method("radius_min=", set_radius_min);
|
76
|
+
cEllipseShape.define_method( "radius_min", get_radius_min);
|
77
|
+
cEllipseShape.define_private_method("nsegment=", set_nsegment);
|
78
|
+
cEllipseShape.define_method( "nsegment", get_nsegment);
|
79
|
+
cEllipseShape.define_clear_override_flags(cof);
|
80
|
+
}
|
81
|
+
|
82
|
+
|
83
|
+
namespace Reflex
|
84
|
+
{
|
85
|
+
|
86
|
+
|
87
|
+
Class
|
88
|
+
ellipse_shape_class ()
|
89
|
+
{
|
90
|
+
return cEllipseShape;
|
91
|
+
}
|
92
|
+
|
93
|
+
|
94
|
+
}// Reflex
|
data/ext/reflex/image_view.cpp
CHANGED
@@ -45,22 +45,6 @@ RUCY_DEF1(set_image, image)
|
|
45
45
|
}
|
46
46
|
RUCY_END
|
47
47
|
|
48
|
-
static
|
49
|
-
RUCY_DEF0(content_size)
|
50
|
-
{
|
51
|
-
CHECK;
|
52
|
-
return value(THIS->content_size());
|
53
|
-
}
|
54
|
-
RUCY_END
|
55
|
-
|
56
|
-
static
|
57
|
-
RUCY_DEF1(on_draw, event)
|
58
|
-
{
|
59
|
-
CHECK;
|
60
|
-
CALL(on_draw(to<Reflex::DrawEvent*>(event)));
|
61
|
-
}
|
62
|
-
RUCY_END
|
63
|
-
|
64
48
|
static
|
65
49
|
RUCY_DEF_clear_override_flags(cof, Reflex::ImageView);
|
66
50
|
|
@@ -76,8 +60,6 @@ Init_image_view ()
|
|
76
60
|
cImageView.define_alloc_func(alloc);
|
77
61
|
cImageView.define_private_method("set_image", set_image);
|
78
62
|
cImageView.define_method( "image", get_image);
|
79
|
-
cImageView.define_method("content_size", content_size);
|
80
|
-
cImageView.define_method("on_draw", on_draw);
|
81
63
|
cImageView.define_clear_override_flags(cof);
|
82
64
|
}
|
83
65
|
|
data/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,86 @@
|
|
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
|
+
RUCY_DEF_ALLOC(alloc, klass)
|
24
|
+
{
|
25
|
+
return value(new Reflex::RubyShapeView<Reflex::RectShape>, klass);
|
26
|
+
}
|
27
|
+
RUCY_END
|
28
|
+
|
29
|
+
static
|
30
|
+
RUCY_DEFN(set_round)
|
31
|
+
{
|
32
|
+
CHECK;
|
33
|
+
check_arg_count(__FILE__, __LINE__, "RectShape#set_fill", argc, 1, 2);
|
34
|
+
|
35
|
+
if (argc == 1 && argv[0].is_kind_of(Rays::point_class()))
|
36
|
+
THIS->set_round(to<Rays::Point&>(argv[0]));
|
37
|
+
else
|
38
|
+
{
|
39
|
+
float w = to<float>(argv[0]);
|
40
|
+
float h = (argc >= 2) ? to<float>(argv[1]) : 1;
|
41
|
+
THIS->set_round(w, h);
|
42
|
+
}
|
43
|
+
|
44
|
+
return self;
|
45
|
+
}
|
46
|
+
RUCY_END
|
47
|
+
|
48
|
+
static
|
49
|
+
RUCY_DEF0(get_round)
|
50
|
+
{
|
51
|
+
CHECK;
|
52
|
+
return value(THIS->round());
|
53
|
+
}
|
54
|
+
RUCY_END
|
55
|
+
|
56
|
+
static
|
57
|
+
RUCY_DEF_clear_override_flags(cof, Reflex::RectShape);
|
58
|
+
|
59
|
+
|
60
|
+
static Class cRectShape;
|
61
|
+
|
62
|
+
void
|
63
|
+
Init_rect_shape ()
|
64
|
+
{
|
65
|
+
Module mReflex = define_module("Reflex");
|
66
|
+
|
67
|
+
cRectShape = mReflex.define_class("RectShape", Reflex::shape_view_class());
|
68
|
+
cRectShape.define_alloc_func(alloc);
|
69
|
+
cRectShape.define_private_method("round=", set_round);
|
70
|
+
cRectShape.define_method( "round", get_round);
|
71
|
+
cRectShape.define_clear_override_flags(cof);
|
72
|
+
}
|
73
|
+
|
74
|
+
|
75
|
+
namespace Reflex
|
76
|
+
{
|
77
|
+
|
78
|
+
|
79
|
+
Class
|
80
|
+
rect_shape_class ()
|
81
|
+
{
|
82
|
+
return cRectShape;
|
83
|
+
}
|
84
|
+
|
85
|
+
|
86
|
+
}// Reflex
|
@@ -0,0 +1,161 @@
|
|
1
|
+
#include "reflex/ruby/shape_view.h"
|
2
|
+
|
3
|
+
|
4
|
+
#include <rucy.h>
|
5
|
+
#include <rays/ruby/color.h>
|
6
|
+
#include "reflex/ruby/view.h"
|
7
|
+
|
8
|
+
|
9
|
+
using namespace Rucy;
|
10
|
+
|
11
|
+
using Reflex::coord;
|
12
|
+
|
13
|
+
|
14
|
+
RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Reflex::ShapeView)
|
15
|
+
|
16
|
+
#define THIS to<Reflex::ShapeView*>(self)
|
17
|
+
|
18
|
+
#define CHECK RUCY_CHECK_OBJECT(Reflex::ShapeView, self)
|
19
|
+
|
20
|
+
#define CALL(fun) RUCY_WRAPPER_CALL(Reflex::ShapeView, THIS, fun)
|
21
|
+
|
22
|
+
|
23
|
+
static
|
24
|
+
RUCY_DEF_ALLOC(alloc, klass)
|
25
|
+
{
|
26
|
+
return value(new Reflex::RubyShapeView<Reflex::ShapeView>, klass);
|
27
|
+
}
|
28
|
+
RUCY_END
|
29
|
+
|
30
|
+
static
|
31
|
+
RUCY_DEFN(set_fill)
|
32
|
+
{
|
33
|
+
CHECK;
|
34
|
+
check_arg_count(__FILE__, __LINE__, "ShapeView#set_fill", argc, 1, 2, 3, 4);
|
35
|
+
|
36
|
+
if (argc == 1 && argv[0].is_kind_of(Rays::color_class()))
|
37
|
+
THIS->set_fill(to<Rays::Color&>(argv[0]));
|
38
|
+
else if (argc == 1 || argc == 2)
|
39
|
+
{
|
40
|
+
float v = to<float>(argv[0]);
|
41
|
+
float a = (argc >= 2) ? to<float>(argv[1]) : 1;
|
42
|
+
THIS->set_fill(v, v, v, a);
|
43
|
+
}
|
44
|
+
else
|
45
|
+
{
|
46
|
+
float r = to<float>(argv[0]);
|
47
|
+
float g = to<float>(argv[1]);
|
48
|
+
float b = to<float>(argv[2]);
|
49
|
+
float a = (argc == 4) ? to<float>(argv[3]) : 1;
|
50
|
+
THIS->set_fill(r, g, b, a);
|
51
|
+
}
|
52
|
+
|
53
|
+
return self;
|
54
|
+
}
|
55
|
+
RUCY_END
|
56
|
+
|
57
|
+
static
|
58
|
+
RUCY_DEF0(no_fill)
|
59
|
+
{
|
60
|
+
CHECK;
|
61
|
+
THIS->no_fill();
|
62
|
+
return self;
|
63
|
+
}
|
64
|
+
RUCY_END
|
65
|
+
|
66
|
+
static
|
67
|
+
RUCY_DEF0(get_fill)
|
68
|
+
{
|
69
|
+
CHECK;
|
70
|
+
return value(THIS->fill());
|
71
|
+
}
|
72
|
+
RUCY_END
|
73
|
+
|
74
|
+
static
|
75
|
+
RUCY_DEFN(set_stroke)
|
76
|
+
{
|
77
|
+
CHECK;
|
78
|
+
check_arg_count(__FILE__, __LINE__, "ShapeView#set_stroke", argc, 1, 2, 3, 4);
|
79
|
+
|
80
|
+
if (argc == 1 && argv[0].is_kind_of(Rays::color_class()))
|
81
|
+
THIS->set_stroke(to<Rays::Color&>(argv[0]));
|
82
|
+
else if (argc == 1 || argc == 2)
|
83
|
+
{
|
84
|
+
float v = to<float>(argv[0]);
|
85
|
+
float a = (argc >= 2) ? to<float>(argv[1]) : 1;
|
86
|
+
THIS->set_stroke(v, v, v, a);
|
87
|
+
}
|
88
|
+
else
|
89
|
+
{
|
90
|
+
float r = to<float>(argv[0]);
|
91
|
+
float g = to<float>(argv[1]);
|
92
|
+
float b = to<float>(argv[2]);
|
93
|
+
float a = (argc == 4) ? to<float>(argv[3]) : 1;
|
94
|
+
THIS->set_stroke(r, g, b, a);
|
95
|
+
}
|
96
|
+
|
97
|
+
return self;
|
98
|
+
}
|
99
|
+
RUCY_END
|
100
|
+
|
101
|
+
static
|
102
|
+
RUCY_DEF0(no_stroke)
|
103
|
+
{
|
104
|
+
CHECK;
|
105
|
+
THIS->no_stroke();
|
106
|
+
return self;
|
107
|
+
}
|
108
|
+
RUCY_END
|
109
|
+
|
110
|
+
static
|
111
|
+
RUCY_DEF0(get_stroke)
|
112
|
+
{
|
113
|
+
CHECK;
|
114
|
+
return value(THIS->stroke());
|
115
|
+
}
|
116
|
+
RUCY_END
|
117
|
+
|
118
|
+
static
|
119
|
+
RUCY_DEF1(on_draw_shape, event)
|
120
|
+
{
|
121
|
+
CHECK;
|
122
|
+
CALL(on_draw_shape(to<Reflex::DrawEvent*>(event)));
|
123
|
+
}
|
124
|
+
RUCY_END
|
125
|
+
|
126
|
+
static
|
127
|
+
RUCY_DEF_clear_override_flags(cof, Reflex::ShapeView);
|
128
|
+
|
129
|
+
|
130
|
+
static Class cShapeView;
|
131
|
+
|
132
|
+
void
|
133
|
+
Init_shape_view ()
|
134
|
+
{
|
135
|
+
Module mReflex = define_module("Reflex");
|
136
|
+
|
137
|
+
cShapeView = mReflex.define_class("ShapeView", Reflex::view_class());
|
138
|
+
cShapeView.define_alloc_func(alloc);
|
139
|
+
cShapeView.define_private_method("set_fill", set_fill);
|
140
|
+
cShapeView.define_method( "no_fill", no_fill);
|
141
|
+
cShapeView.define_method( "fill", get_fill);
|
142
|
+
cShapeView.define_private_method("set_stroke", set_stroke);
|
143
|
+
cShapeView.define_method( "no_stroke", no_stroke);
|
144
|
+
cShapeView.define_method( "stroke", get_stroke);
|
145
|
+
cShapeView.define_method("on_draw_shape", on_draw_shape);
|
146
|
+
cShapeView.define_clear_override_flags(cof);
|
147
|
+
}
|
148
|
+
|
149
|
+
|
150
|
+
namespace Reflex
|
151
|
+
{
|
152
|
+
|
153
|
+
|
154
|
+
Class
|
155
|
+
shape_view_class ()
|
156
|
+
{
|
157
|
+
return cShapeView;
|
158
|
+
}
|
159
|
+
|
160
|
+
|
161
|
+
}// Reflex
|
data/ext/reflex/view.cpp
CHANGED
@@ -223,7 +223,7 @@ static
|
|
223
223
|
RUCY_DEF0(content_size)
|
224
224
|
{
|
225
225
|
CHECK;
|
226
|
-
return value(
|
226
|
+
return value(CALL(content_size()));
|
227
227
|
}
|
228
228
|
RUCY_END
|
229
229
|
|
@@ -320,6 +320,14 @@ RUCY_DEF0(get_frame)
|
|
320
320
|
}
|
321
321
|
RUCY_END
|
322
322
|
|
323
|
+
static
|
324
|
+
RUCY_DEF0(get_angle)
|
325
|
+
{
|
326
|
+
CHECK;
|
327
|
+
return value(THIS->angle());
|
328
|
+
}
|
329
|
+
RUCY_END
|
330
|
+
|
323
331
|
static
|
324
332
|
RUCY_DEF1(set_capture, types)
|
325
333
|
{
|
@@ -410,46 +418,39 @@ RUCY_DEF0(body)
|
|
410
418
|
RUCY_END
|
411
419
|
|
412
420
|
static
|
413
|
-
|
421
|
+
RUCY_DEFN(meter2pixel)
|
414
422
|
{
|
415
423
|
CHECK;
|
416
|
-
|
417
|
-
return value;
|
418
|
-
}
|
419
|
-
RUCY_END
|
424
|
+
check_arg_count(__FILE__, __LINE__, "View#meter2pixel", argc, 0, 1, 2);
|
420
425
|
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
CHECK;
|
425
|
-
THIS->set_friction(value.as_f(true));
|
426
|
-
return value;
|
426
|
+
float meter = argc >= 1 ? argv[0].as_f(true) : 1;
|
427
|
+
bool create_world = argc >= 2 ? (bool) argv[1] : true;
|
428
|
+
return value(THIS->meter2pixel(meter, create_world));
|
427
429
|
}
|
428
430
|
RUCY_END
|
429
431
|
|
430
432
|
static
|
431
|
-
|
433
|
+
RUCY_DEF2(set_gravity, x, y)
|
432
434
|
{
|
433
435
|
CHECK;
|
434
|
-
THIS->
|
435
|
-
return
|
436
|
+
THIS->set_gravity(x.as_f(true), y.as_f(true));
|
437
|
+
return self;
|
436
438
|
}
|
437
439
|
RUCY_END
|
438
440
|
|
439
441
|
static
|
440
|
-
|
442
|
+
RUCY_DEF0(get_gravity)
|
441
443
|
{
|
442
444
|
CHECK;
|
443
|
-
THIS->
|
444
|
-
return self;
|
445
|
+
return value(THIS->gravity());
|
445
446
|
}
|
446
447
|
RUCY_END
|
447
448
|
|
448
449
|
static
|
449
|
-
RUCY_DEF0(
|
450
|
+
RUCY_DEF0(wall)
|
450
451
|
{
|
451
452
|
CHECK;
|
452
|
-
return value(THIS->
|
453
|
+
return value(THIS->wall());
|
453
454
|
}
|
454
455
|
RUCY_END
|
455
456
|
|
@@ -463,10 +464,10 @@ RUCY_DEF1(set_debug, state)
|
|
463
464
|
RUCY_END
|
464
465
|
|
465
466
|
static
|
466
|
-
RUCY_DEF0(
|
467
|
+
RUCY_DEF0(debugging)
|
467
468
|
{
|
468
469
|
CHECK;
|
469
|
-
return value(THIS->
|
470
|
+
return value(THIS->debugging());
|
470
471
|
}
|
471
472
|
RUCY_END
|
472
473
|
|
@@ -474,6 +475,10 @@ static
|
|
474
475
|
RUCY_DEF1(on_attach, event)
|
475
476
|
{
|
476
477
|
CHECK;
|
478
|
+
|
479
|
+
RUCY_SYM(call_attach_block);
|
480
|
+
self.call(call_attach_block);
|
481
|
+
|
477
482
|
CALL(on_attach(to<Reflex::Event*>(event)));
|
478
483
|
}
|
479
484
|
RUCY_END
|
@@ -534,6 +539,14 @@ RUCY_DEF1(on_resize, event)
|
|
534
539
|
}
|
535
540
|
RUCY_END
|
536
541
|
|
542
|
+
static
|
543
|
+
RUCY_DEF1(on_rotate, event)
|
544
|
+
{
|
545
|
+
CHECK;
|
546
|
+
CALL(on_rotate(to<Reflex::FrameEvent*>(event)));
|
547
|
+
}
|
548
|
+
RUCY_END
|
549
|
+
|
537
550
|
static
|
538
551
|
RUCY_DEF1(on_scroll, event)
|
539
552
|
{
|
@@ -630,6 +643,30 @@ RUCY_DEF1(on_capture, event)
|
|
630
643
|
}
|
631
644
|
RUCY_END
|
632
645
|
|
646
|
+
static
|
647
|
+
RUCY_DEF1(on_contact, event)
|
648
|
+
{
|
649
|
+
CHECK;
|
650
|
+
CALL(on_contact(to<Reflex::ContactEvent*>(event)));
|
651
|
+
}
|
652
|
+
RUCY_END
|
653
|
+
|
654
|
+
static
|
655
|
+
RUCY_DEF1(on_contact_begin, event)
|
656
|
+
{
|
657
|
+
CHECK;
|
658
|
+
CALL(on_contact_begin(to<Reflex::ContactEvent*>(event)));
|
659
|
+
}
|
660
|
+
RUCY_END
|
661
|
+
|
662
|
+
static
|
663
|
+
RUCY_DEF1(on_contact_end, event)
|
664
|
+
{
|
665
|
+
CHECK;
|
666
|
+
CALL(on_contact_end(to<Reflex::ContactEvent*>(event)));
|
667
|
+
}
|
668
|
+
RUCY_END
|
669
|
+
|
633
670
|
static
|
634
671
|
RUCY_DEF_clear_override_flags(cof, Reflex::View);
|
635
672
|
|
@@ -672,6 +709,7 @@ Init_view ()
|
|
672
709
|
cView.define_method("selector", get_selector);
|
673
710
|
cView.define_private_method("set_frame", set_frame);
|
674
711
|
cView.define_private_method("get_frame", get_frame);
|
712
|
+
cView.define_method("angle", get_angle);
|
675
713
|
cView.define_method("scroll_to", scroll_to);
|
676
714
|
cView.define_method("scroll_by", scroll_by);
|
677
715
|
cView.define_method("scroll", get_scroll);
|
@@ -680,21 +718,21 @@ Init_view ()
|
|
680
718
|
cView.define_method("parent", parent);
|
681
719
|
cView.define_method("window", window);
|
682
720
|
cView.define_method("body", body);
|
683
|
-
cView.define_method("
|
684
|
-
cView.define_method("
|
685
|
-
cView.define_method("
|
686
|
-
cView.define_method("
|
687
|
-
cView.define_method("gravity", get_gravity);
|
721
|
+
cView.define_method("meter2pixel", meter2pixel);
|
722
|
+
cView.define_method("set_gravity", set_gravity);
|
723
|
+
cView.define_method("gravity", get_gravity);
|
724
|
+
cView.define_method("wall", wall);
|
688
725
|
cView.define_method("debug=", set_debug);
|
689
|
-
cView.define_method("debug?",
|
690
|
-
cView.define_method("on_attach
|
691
|
-
cView.define_method("on_detach",
|
726
|
+
cView.define_method("debug?", debugging);
|
727
|
+
cView.define_method("on_attach", on_attach);
|
728
|
+
cView.define_method("on_detach", on_detach);
|
692
729
|
cView.define_method("on_show", on_show);
|
693
730
|
cView.define_method("on_hide", on_hide);
|
694
731
|
cView.define_method("on_update", on_update);
|
695
732
|
cView.define_method("on_draw", on_draw);
|
696
733
|
cView.define_method("on_move", on_move);
|
697
734
|
cView.define_method("on_resize", on_resize);
|
735
|
+
cView.define_method("on_rotate", on_rotate);
|
698
736
|
cView.define_method("on_scroll", on_scroll);
|
699
737
|
cView.define_method("on_focus", on_focus);
|
700
738
|
cView.define_method("on_blur", on_blur);
|
@@ -707,6 +745,9 @@ Init_view ()
|
|
707
745
|
cView.define_method("on_pointer_move", on_pointer_move);
|
708
746
|
cView.define_method("on_wheel", on_wheel);
|
709
747
|
cView.define_method("on_capture", on_capture);
|
748
|
+
cView.define_method("on_contact", on_contact);
|
749
|
+
cView.define_method("on_contact_begin", on_contact_begin);
|
750
|
+
cView.define_method("on_contact_end", on_contact_end);
|
710
751
|
cView.define_const("CAPTURE_NONE", Reflex::View::CAPTURE_NONE);
|
711
752
|
cView.define_const("CAPTURE_KEY", Reflex::View::CAPTURE_KEY);
|
712
753
|
cView.define_const("CAPTURE_POINTER", Reflex::View::CAPTURE_POINTER);
|