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
@@ -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);
|