reflexion 0.1.15 → 0.1.16
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/capture_event.cpp +4 -5
- data/.doc/ext/reflex/contact_event.cpp +4 -7
- data/.doc/ext/reflex/draw_event.cpp +3 -4
- data/.doc/ext/reflex/frame_event.cpp +7 -8
- data/.doc/ext/reflex/key_event.cpp +7 -8
- data/.doc/ext/reflex/motion_event.cpp +3 -5
- data/.doc/ext/reflex/pointer_event.cpp +23 -14
- data/.doc/ext/reflex/scroll_event.cpp +8 -9
- data/.doc/ext/reflex/update_event.cpp +4 -5
- data/.doc/ext/reflex/wheel_event.cpp +5 -6
- data/VERSION +1 -1
- data/ext/reflex/capture_event.cpp +3 -4
- data/ext/reflex/contact_event.cpp +3 -6
- data/ext/reflex/draw_event.cpp +2 -3
- data/ext/reflex/frame_event.cpp +6 -7
- data/ext/reflex/key_event.cpp +6 -7
- data/ext/reflex/motion_event.cpp +2 -4
- data/ext/reflex/pointer_event.cpp +22 -13
- data/ext/reflex/scroll_event.cpp +8 -9
- data/ext/reflex/update_event.cpp +3 -4
- data/ext/reflex/wheel_event.cpp +4 -5
- data/include/reflex/event.h +15 -15
- data/include/reflex/exception.h +9 -3
- data/include/reflex/ruby/event.h +11 -11
- data/lib/reflex.rb +2 -1
- data/lib/reflex/camera.rb +13 -0
- data/lib/reflex/pointer_event.rb +4 -0
- data/samples/camera.rb +32 -0
- data/src/event.cpp +7 -7
- data/src/timer.cpp +3 -6
- data/test/test_pointer_event.rb +79 -34
- metadata +7 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 79fd61794a59ff8ba0b15f2f32515ef63064bc1e62c92adc081712bac777fa4d
|
4
|
+
data.tar.gz: 3a7fdb5fd13bcecebf019185329450ee92b09d18c9b2c5ecefcc8c08d562469c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78e88670abd02997ea2e9aee2b373687109e9fb78f1f951f74277506f2f4ad2e83fe65cd85847a1be812d34e914671ba186a522db944423df4e8e940d99d3c81
|
7
|
+
data.tar.gz: 9d334478e511ff0d6aea0575d6a11b093e652209693e1d04775eff4807479fba836759eb800f526b48715e7fa854ebbcc54e638101739e24d4695734774912f5
|
@@ -19,13 +19,12 @@ VALUE alloc(VALUE klass)
|
|
19
19
|
}
|
20
20
|
|
21
21
|
static
|
22
|
-
VALUE initialize(VALUE self)
|
22
|
+
VALUE initialize(VALUE self, VALUE begin, VALUE end)
|
23
23
|
{
|
24
24
|
CHECK;
|
25
|
-
check_arg_count(__FILE__, __LINE__, "CaptureEvent#initialize", argc, 0, 1, 2);
|
26
25
|
|
27
|
-
THIS->begin =
|
28
|
-
THIS->end =
|
26
|
+
THIS->begin = to<uint>(begin);
|
27
|
+
THIS->end = to<uint>(end);
|
29
28
|
|
30
29
|
return rb_call_super(0, NULL);
|
31
30
|
}
|
@@ -62,7 +61,7 @@ Init_capture_event ()
|
|
62
61
|
|
63
62
|
cCaptureEvent = mReflex.define_class("CaptureEvent", Reflex::event_class());
|
64
63
|
rb_define_alloc_func(cCaptureEvent, alloc);
|
65
|
-
rb_define_private_method(cCaptureEvent, "initialize", RUBY_METHOD_FUNC(initialize),
|
64
|
+
rb_define_private_method(cCaptureEvent, "initialize", RUBY_METHOD_FUNC(initialize), 2);
|
66
65
|
rb_define_private_method(cCaptureEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
|
67
66
|
rb_define_private_method(cCaptureEvent, "get_begin", RUBY_METHOD_FUNC(begin), 0);
|
68
67
|
rb_define_private_method(cCaptureEvent, "get_end", RUBY_METHOD_FUNC(end), 0);
|
@@ -20,15 +20,12 @@ VALUE alloc(VALUE klass)
|
|
20
20
|
}
|
21
21
|
|
22
22
|
static
|
23
|
-
VALUE initialize(VALUE self)
|
23
|
+
VALUE initialize(VALUE self, VALUE type, VALUE shape)
|
24
24
|
{
|
25
25
|
CHECK;
|
26
|
-
check_arg_count(__FILE__, __LINE__, "ContactEvent#initialize", argc, 0, 2);
|
27
26
|
|
28
|
-
THIS->type = (
|
29
|
-
|
30
|
-
: Reflex::ContactEvent::NONE;
|
31
|
-
THIS->shape = (argc >= 2) ? to<Reflex::Shape*>(argv[1]) : NULL;
|
27
|
+
THIS->type = (Reflex::ContactEvent::Type) to<int>(type);
|
28
|
+
THIS->shape = to<Reflex::Shape*>(shape);
|
32
29
|
|
33
30
|
return rb_call_super(0, NULL);
|
34
31
|
}
|
@@ -72,7 +69,7 @@ Init_contact_event ()
|
|
72
69
|
|
73
70
|
cContactEvent = mReflex.define_class("ContactEvent", Reflex::event_class());
|
74
71
|
rb_define_alloc_func(cContactEvent, alloc);
|
75
|
-
rb_define_private_method(cContactEvent, "initialize", RUBY_METHOD_FUNC(initialize),
|
72
|
+
rb_define_private_method(cContactEvent, "initialize", RUBY_METHOD_FUNC(initialize), 2);
|
76
73
|
rb_define_private_method(cContactEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
|
77
74
|
rb_define_method(cContactEvent, "type", RUBY_METHOD_FUNC(type), 0);
|
78
75
|
rb_define_method(cContactEvent, "shape", RUBY_METHOD_FUNC(shape), 0);
|
@@ -20,12 +20,11 @@ VALUE alloc(VALUE klass)
|
|
20
20
|
}
|
21
21
|
|
22
22
|
static
|
23
|
-
VALUE initialize(VALUE self)
|
23
|
+
VALUE initialize(VALUE self, VALUE dt)
|
24
24
|
{
|
25
25
|
CHECK;
|
26
|
-
check_arg_count(__FILE__, __LINE__, "DrawEvent#initialize", argc, 0, 1);
|
27
26
|
|
28
|
-
THIS->dt =
|
27
|
+
THIS->dt = to<float>(dt);
|
29
28
|
|
30
29
|
return rb_call_super(0, NULL);
|
31
30
|
}
|
@@ -76,7 +75,7 @@ Init_draw_event ()
|
|
76
75
|
|
77
76
|
cDrawEvent = mReflex.define_class("DrawEvent", Reflex::event_class());
|
78
77
|
rb_define_alloc_func(cDrawEvent, alloc);
|
79
|
-
rb_define_private_method(cDrawEvent, "initialize", RUBY_METHOD_FUNC(initialize),
|
78
|
+
rb_define_private_method(cDrawEvent, "initialize", RUBY_METHOD_FUNC(initialize), 1);
|
80
79
|
rb_define_private_method(cDrawEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
|
81
80
|
rb_define_method(cDrawEvent, "painter", RUBY_METHOD_FUNC(painter), 0);
|
82
81
|
rb_define_method(cDrawEvent, "bounds", RUBY_METHOD_FUNC(bounds), 0);
|
@@ -20,16 +20,15 @@ VALUE alloc(VALUE klass)
|
|
20
20
|
}
|
21
21
|
|
22
22
|
static
|
23
|
-
VALUE initialize(VALUE self)
|
23
|
+
VALUE initialize(VALUE self, VALUE frame, VALUE dx, VALUE dy, VALUE dwidth, VALUE dheight)
|
24
24
|
{
|
25
25
|
CHECK;
|
26
|
-
check_arg_count(__FILE__, __LINE__, "FrameEvent#initialize", argc, 0, 1, 2, 3, 4, 5);
|
27
26
|
|
28
|
-
THIS->frame =
|
29
|
-
THIS->dx =
|
30
|
-
THIS->dy =
|
31
|
-
THIS->dwidth =
|
32
|
-
THIS->dheight =
|
27
|
+
THIS->frame = to<Rays::Bounds>(frame);
|
28
|
+
THIS->dx = to<coord>(dx);
|
29
|
+
THIS->dy = to<coord>(dy);
|
30
|
+
THIS->dwidth = to<coord>(dwidth);
|
31
|
+
THIS->dheight = to<coord>(dheight);
|
33
32
|
|
34
33
|
return rb_call_super(0, NULL);
|
35
34
|
}
|
@@ -136,7 +135,7 @@ Init_frame_event ()
|
|
136
135
|
|
137
136
|
cFrameEvent = mReflex.define_class("FrameEvent", Reflex::event_class());
|
138
137
|
rb_define_alloc_func(cFrameEvent, alloc);
|
139
|
-
rb_define_private_method(cFrameEvent, "initialize", RUBY_METHOD_FUNC(initialize),
|
138
|
+
rb_define_private_method(cFrameEvent, "initialize", RUBY_METHOD_FUNC(initialize), 5);
|
140
139
|
rb_define_private_method(cFrameEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
|
141
140
|
rb_define_method(cFrameEvent, "frame", RUBY_METHOD_FUNC(frame), 0);
|
142
141
|
rb_define_method(cFrameEvent, "dx", RUBY_METHOD_FUNC(dx), 0);
|
@@ -18,16 +18,15 @@ VALUE alloc(VALUE klass)
|
|
18
18
|
}
|
19
19
|
|
20
20
|
static
|
21
|
-
VALUE initialize(VALUE self)
|
21
|
+
VALUE initialize(VALUE self, VALUE type, VALUE chars, VALUE code, VALUE repeat, VALUE modifiers)
|
22
22
|
{
|
23
23
|
CHECK;
|
24
|
-
check_arg_count(__FILE__, __LINE__, "KeyEvent#initialize", argc, 0, 1, 2, 3, 4, 5);
|
25
24
|
|
26
|
-
THIS->type = (
|
27
|
-
THIS->chars =
|
28
|
-
THIS->code =
|
29
|
-
THIS->repeat =
|
30
|
-
THIS->modifiers =
|
25
|
+
THIS->type = (Reflex::KeyEvent::Type) to<int>(type);
|
26
|
+
THIS->chars = chars.c_str();
|
27
|
+
THIS->code = to<int>(code);
|
28
|
+
THIS->repeat = to<int>(repeat);
|
29
|
+
THIS->modifiers = to<uint>(modifiers);
|
31
30
|
|
32
31
|
return rb_call_super(0, NULL);
|
33
32
|
}
|
@@ -92,7 +91,7 @@ Init_key_event ()
|
|
92
91
|
|
93
92
|
cKeyEvent = mReflex.define_class("KeyEvent", Reflex::event_class());
|
94
93
|
rb_define_alloc_func(cKeyEvent, alloc);
|
95
|
-
rb_define_private_method(cKeyEvent, "initialize", RUBY_METHOD_FUNC(initialize),
|
94
|
+
rb_define_private_method(cKeyEvent, "initialize", RUBY_METHOD_FUNC(initialize), 5);
|
96
95
|
rb_define_private_method(cKeyEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
|
97
96
|
rb_define_method(cKeyEvent, "type", RUBY_METHOD_FUNC(type), 0);
|
98
97
|
rb_define_method(cKeyEvent, "chars", RUBY_METHOD_FUNC(chars), 0);
|
@@ -19,13 +19,11 @@ VALUE alloc(VALUE klass)
|
|
19
19
|
}
|
20
20
|
|
21
21
|
static
|
22
|
-
VALUE initialize(VALUE self)
|
22
|
+
VALUE initialize(VALUE self, VALUE gravity)
|
23
23
|
{
|
24
24
|
CHECK;
|
25
|
-
check_arg_count(__FILE__, __LINE__, "MotionEvent#initialize", argc, 0, 1);
|
26
25
|
|
27
|
-
|
28
|
-
THIS->gravity = to<Rays::Point>(argv[0]);
|
26
|
+
THIS->gravity = to<Rays::Point>(gravity);
|
29
27
|
|
30
28
|
return rb_call_super(0, NULL);
|
31
29
|
}
|
@@ -55,7 +53,7 @@ Init_motion_event ()
|
|
55
53
|
|
56
54
|
cMotionEvent = mReflex.define_class("MotionEvent", Reflex::event_class());
|
57
55
|
rb_define_alloc_func(cMotionEvent, alloc);
|
58
|
-
rb_define_private_method(cMotionEvent, "initialize", RUBY_METHOD_FUNC(initialize),
|
56
|
+
rb_define_private_method(cMotionEvent, "initialize", RUBY_METHOD_FUNC(initialize), 1);
|
59
57
|
rb_define_private_method(cMotionEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
|
60
58
|
rb_define_method(cMotionEvent, "gravity", RUBY_METHOD_FUNC(gravity), 0);
|
61
59
|
}
|
@@ -19,19 +19,23 @@ VALUE alloc(VALUE klass)
|
|
19
19
|
}
|
20
20
|
|
21
21
|
static
|
22
|
-
VALUE initialize(VALUE self)
|
22
|
+
VALUE initialize(VALUE self, VALUE type, VALUE pointer_type, VALUE modifiers, VALUE count, VALUE drag, VALUE positions)
|
23
23
|
{
|
24
24
|
CHECK;
|
25
|
-
check_arg_count(__FILE__, __LINE__, "PointerEvent#initialize", argc, 0, 1, 2, 3, 4, 5, 6, 7);
|
26
25
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
THIS->
|
32
|
-
THIS->
|
33
|
-
THIS->
|
34
|
-
THIS->
|
26
|
+
int size = positions.size();
|
27
|
+
if (size <= 0 || Reflex::PointerEvent::MAX < size)
|
28
|
+
argument_error(__FILE__, __LINE__);
|
29
|
+
|
30
|
+
THIS->type = (Reflex::PointerEvent::Type) to<int>(type);
|
31
|
+
THIS->pointer_type = to<uint>(pointer_type);
|
32
|
+
THIS->modifiers = to<uint>(modifiers);
|
33
|
+
THIS->count = to<uint>(count);
|
34
|
+
THIS->drag = to<bool>(drag);
|
35
|
+
THIS->size = (size_t) size;
|
36
|
+
|
37
|
+
for (int i = 0; i < size; ++i)
|
38
|
+
THIS->positions[i] = to<Rays::Point>(positions[i]);
|
35
39
|
|
36
40
|
return rb_call_super(0, NULL);
|
37
41
|
}
|
@@ -118,10 +122,15 @@ VALUE position(VALUE self)
|
|
118
122
|
}
|
119
123
|
|
120
124
|
static
|
121
|
-
VALUE
|
125
|
+
VALUE get_at(VALUE self, VALUE index)
|
122
126
|
{
|
123
127
|
CHECK;
|
124
|
-
|
128
|
+
|
129
|
+
int i = to<int>(index);
|
130
|
+
if (i < 0 || THIS->size <= (size_t) i)
|
131
|
+
index_error(__FILE__, __LINE__);
|
132
|
+
|
133
|
+
return value((*THIS)[i]);
|
125
134
|
}
|
126
135
|
|
127
136
|
|
@@ -134,7 +143,7 @@ Init_pointer_event ()
|
|
134
143
|
|
135
144
|
cPointerEvent = mReflex.define_class("PointerEvent", Reflex::event_class());
|
136
145
|
rb_define_alloc_func(cPointerEvent, alloc);
|
137
|
-
rb_define_private_method(cPointerEvent, "initialize", RUBY_METHOD_FUNC(initialize),
|
146
|
+
rb_define_private_method(cPointerEvent, "initialize", RUBY_METHOD_FUNC(initialize), 6);
|
138
147
|
rb_define_private_method(cPointerEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
|
139
148
|
rb_define_method(cPointerEvent, "type", RUBY_METHOD_FUNC(type), 0);
|
140
149
|
rb_define_method(cPointerEvent, "pointer_type", RUBY_METHOD_FUNC(pointer_type), 0);
|
@@ -146,7 +155,7 @@ Init_pointer_event ()
|
|
146
155
|
rb_define_method(cPointerEvent, "x", RUBY_METHOD_FUNC(x), 0);
|
147
156
|
rb_define_method(cPointerEvent, "y", RUBY_METHOD_FUNC(y), 0);
|
148
157
|
rb_define_method(cPointerEvent, "position", RUBY_METHOD_FUNC(position), -1);
|
149
|
-
cPointerEvent.define_method("[]",
|
158
|
+
cPointerEvent.define_method("[]", get_at);
|
150
159
|
cPointerEvent.define_const("TYPE_NONE", Reflex::PointerEvent::NONE);
|
151
160
|
cPointerEvent.define_const("TYPE_DOWN", Reflex::PointerEvent::DOWN);
|
152
161
|
cPointerEvent.define_const("TYPE_UP", Reflex::PointerEvent::UP);
|
@@ -19,17 +19,16 @@ VALUE alloc(VALUE klass)
|
|
19
19
|
}
|
20
20
|
|
21
21
|
static
|
22
|
-
VALUE initialize(VALUE self)
|
22
|
+
VALUE initialize(VALUE self, VALUE x, VALUE y, VALUE z, VALUE dx, VALUE dy, VALUE dz)
|
23
23
|
{
|
24
24
|
CHECK;
|
25
|
-
check_arg_count(__FILE__, __LINE__, "ScrollEvent#initialize", argc, 0, 1, 2, 3, 4, 5, 6);
|
26
25
|
|
27
|
-
THIS->x
|
28
|
-
THIS->y
|
29
|
-
THIS->z
|
30
|
-
THIS->dx
|
31
|
-
THIS->dy
|
32
|
-
THIS->dz
|
26
|
+
THIS->x = to<coord>(x);
|
27
|
+
THIS->y = to<coord>(y);
|
28
|
+
THIS->z = to<coord>(z);
|
29
|
+
THIS->dx = to<coord>(dx);
|
30
|
+
THIS->dy = to<coord>(dy);
|
31
|
+
THIS->dz = to<coord>(dz);
|
33
32
|
|
34
33
|
return rb_call_super(0, NULL);
|
35
34
|
}
|
@@ -108,7 +107,7 @@ Init_scroll_event ()
|
|
108
107
|
|
109
108
|
cScrollEvent = mReflex.define_class("ScrollEvent", Reflex::event_class());
|
110
109
|
rb_define_alloc_func(cScrollEvent, alloc);
|
111
|
-
rb_define_private_method(cScrollEvent, "initialize", RUBY_METHOD_FUNC(initialize),
|
110
|
+
rb_define_private_method(cScrollEvent, "initialize", RUBY_METHOD_FUNC(initialize), 6);
|
112
111
|
rb_define_private_method(cScrollEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
|
113
112
|
rb_define_method(cScrollEvent, "x", RUBY_METHOD_FUNC(x), 0);
|
114
113
|
rb_define_method(cScrollEvent, "y", RUBY_METHOD_FUNC(y), 0);
|
@@ -18,13 +18,12 @@ VALUE alloc(VALUE klass)
|
|
18
18
|
}
|
19
19
|
|
20
20
|
static
|
21
|
-
VALUE initialize(VALUE self)
|
21
|
+
VALUE initialize(VALUE self, VALUE now, VALUE dt)
|
22
22
|
{
|
23
23
|
CHECK;
|
24
|
-
check_arg_count(__FILE__, __LINE__, "UpdateEvent#initialize", argc, 0, 1, 2);
|
25
24
|
|
26
|
-
THIS->now =
|
27
|
-
THIS->dt =
|
25
|
+
THIS->now = to<double>(now);
|
26
|
+
THIS->dt = to<float>(dt);
|
28
27
|
|
29
28
|
return rb_call_super(0, NULL);
|
30
29
|
}
|
@@ -61,7 +60,7 @@ Init_update_event ()
|
|
61
60
|
|
62
61
|
cUpdateEvent = mReflex.define_class("UpdateEvent", Reflex::event_class());
|
63
62
|
rb_define_alloc_func(cUpdateEvent, alloc);
|
64
|
-
rb_define_private_method(cUpdateEvent, "initialize", RUBY_METHOD_FUNC(initialize),
|
63
|
+
rb_define_private_method(cUpdateEvent, "initialize", RUBY_METHOD_FUNC(initialize), 2);
|
65
64
|
rb_define_private_method(cUpdateEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
|
66
65
|
rb_define_method(cUpdateEvent, "now", RUBY_METHOD_FUNC(now), 0);
|
67
66
|
rb_define_method(cUpdateEvent, "dt", RUBY_METHOD_FUNC(dt), 0);
|
@@ -19,14 +19,13 @@ VALUE alloc(VALUE klass)
|
|
19
19
|
}
|
20
20
|
|
21
21
|
static
|
22
|
-
VALUE initialize(VALUE self)
|
22
|
+
VALUE initialize(VALUE self, VALUE dx, VALUE dy, VALUE dz)
|
23
23
|
{
|
24
24
|
CHECK;
|
25
|
-
check_arg_count(__FILE__, __LINE__, "WheelEvent#initialize", argc, 0, 1, 2, 3);
|
26
25
|
|
27
|
-
THIS->dx =
|
28
|
-
THIS->dy =
|
29
|
-
THIS->dz =
|
26
|
+
THIS->dx = to<coord>(dx);
|
27
|
+
THIS->dy = to<coord>(dy);
|
28
|
+
THIS->dz = to<coord>(dz);
|
30
29
|
|
31
30
|
return rb_call_super(0, NULL);
|
32
31
|
}
|
@@ -98,7 +97,7 @@ Init_wheel_event ()
|
|
98
97
|
|
99
98
|
cWheelEvent = mReflex.define_class("WheelEvent", Reflex::event_class());
|
100
99
|
rb_define_alloc_func(cWheelEvent, alloc);
|
101
|
-
rb_define_private_method(cWheelEvent, "initialize", RUBY_METHOD_FUNC(initialize),
|
100
|
+
rb_define_private_method(cWheelEvent, "initialize", RUBY_METHOD_FUNC(initialize), 3);
|
102
101
|
rb_define_private_method(cWheelEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
|
103
102
|
rb_define_method(cWheelEvent, "dx", RUBY_METHOD_FUNC(dx), 0);
|
104
103
|
rb_define_method(cWheelEvent, "dy", RUBY_METHOD_FUNC(dy), 0);
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.16
|
@@ -20,13 +20,12 @@ RUCY_DEF_ALLOC(alloc, klass)
|
|
20
20
|
RUCY_END
|
21
21
|
|
22
22
|
static
|
23
|
-
|
23
|
+
RUCY_DEF2(initialize, begin, end)
|
24
24
|
{
|
25
25
|
CHECK;
|
26
|
-
check_arg_count(__FILE__, __LINE__, "CaptureEvent#initialize", argc, 0, 1, 2);
|
27
26
|
|
28
|
-
THIS->begin =
|
29
|
-
THIS->end =
|
27
|
+
THIS->begin = to<uint>(begin);
|
28
|
+
THIS->end = to<uint>(end);
|
30
29
|
|
31
30
|
return rb_call_super(0, NULL);
|
32
31
|
}
|
@@ -21,15 +21,12 @@ RUCY_DEF_ALLOC(alloc, klass)
|
|
21
21
|
RUCY_END
|
22
22
|
|
23
23
|
static
|
24
|
-
|
24
|
+
RUCY_DEF2(initialize, type, shape)
|
25
25
|
{
|
26
26
|
CHECK;
|
27
|
-
check_arg_count(__FILE__, __LINE__, "ContactEvent#initialize", argc, 0, 2);
|
28
27
|
|
29
|
-
THIS->type = (
|
30
|
-
|
31
|
-
: Reflex::ContactEvent::NONE;
|
32
|
-
THIS->shape = (argc >= 2) ? to<Reflex::Shape*>(argv[1]) : NULL;
|
28
|
+
THIS->type = (Reflex::ContactEvent::Type) to<int>(type);
|
29
|
+
THIS->shape = to<Reflex::Shape*>(shape);
|
33
30
|
|
34
31
|
return rb_call_super(0, NULL);
|
35
32
|
}
|
data/ext/reflex/draw_event.cpp
CHANGED
@@ -21,12 +21,11 @@ RUCY_DEF_ALLOC(alloc, klass)
|
|
21
21
|
RUCY_END
|
22
22
|
|
23
23
|
static
|
24
|
-
|
24
|
+
RUCY_DEF1(initialize, dt)
|
25
25
|
{
|
26
26
|
CHECK;
|
27
|
-
check_arg_count(__FILE__, __LINE__, "DrawEvent#initialize", argc, 0, 1);
|
28
27
|
|
29
|
-
THIS->dt =
|
28
|
+
THIS->dt = to<float>(dt);
|
30
29
|
|
31
30
|
return rb_call_super(0, NULL);
|
32
31
|
}
|
data/ext/reflex/frame_event.cpp
CHANGED
@@ -21,16 +21,15 @@ RUCY_DEF_ALLOC(alloc, klass)
|
|
21
21
|
RUCY_END
|
22
22
|
|
23
23
|
static
|
24
|
-
|
24
|
+
RUCY_DEF5(initialize, frame, dx, dy, dwidth, dheight)
|
25
25
|
{
|
26
26
|
CHECK;
|
27
|
-
check_arg_count(__FILE__, __LINE__, "FrameEvent#initialize", argc, 0, 1, 2, 3, 4, 5);
|
28
27
|
|
29
|
-
THIS->frame =
|
30
|
-
THIS->dx =
|
31
|
-
THIS->dy =
|
32
|
-
THIS->dwidth =
|
33
|
-
THIS->dheight =
|
28
|
+
THIS->frame = to<Rays::Bounds>(frame);
|
29
|
+
THIS->dx = to<coord>(dx);
|
30
|
+
THIS->dy = to<coord>(dy);
|
31
|
+
THIS->dwidth = to<coord>(dwidth);
|
32
|
+
THIS->dheight = to<coord>(dheight);
|
34
33
|
|
35
34
|
return rb_call_super(0, NULL);
|
36
35
|
}
|
data/ext/reflex/key_event.cpp
CHANGED
@@ -19,16 +19,15 @@ RUCY_DEF_ALLOC(alloc, klass)
|
|
19
19
|
RUCY_END
|
20
20
|
|
21
21
|
static
|
22
|
-
|
22
|
+
RUCY_DEF5(initialize, type, chars, code, repeat, modifiers)
|
23
23
|
{
|
24
24
|
CHECK;
|
25
|
-
check_arg_count(__FILE__, __LINE__, "KeyEvent#initialize", argc, 0, 1, 2, 3, 4, 5);
|
26
25
|
|
27
|
-
THIS->type = (
|
28
|
-
THIS->chars =
|
29
|
-
THIS->code =
|
30
|
-
THIS->repeat =
|
31
|
-
THIS->modifiers =
|
26
|
+
THIS->type = (Reflex::KeyEvent::Type) to<int>(type);
|
27
|
+
THIS->chars = chars.c_str();
|
28
|
+
THIS->code = to<int>(code);
|
29
|
+
THIS->repeat = to<int>(repeat);
|
30
|
+
THIS->modifiers = to<uint>(modifiers);
|
32
31
|
|
33
32
|
return rb_call_super(0, NULL);
|
34
33
|
}
|
data/ext/reflex/motion_event.cpp
CHANGED
@@ -20,13 +20,11 @@ RUCY_DEF_ALLOC(alloc, klass)
|
|
20
20
|
RUCY_END
|
21
21
|
|
22
22
|
static
|
23
|
-
|
23
|
+
RUCY_DEF1(initialize, gravity)
|
24
24
|
{
|
25
25
|
CHECK;
|
26
|
-
check_arg_count(__FILE__, __LINE__, "MotionEvent#initialize", argc, 0, 1);
|
27
26
|
|
28
|
-
|
29
|
-
THIS->gravity = to<Rays::Point>(argv[0]);
|
27
|
+
THIS->gravity = to<Rays::Point>(gravity);
|
30
28
|
|
31
29
|
return rb_call_super(0, NULL);
|
32
30
|
}
|
@@ -20,19 +20,23 @@ RUCY_DEF_ALLOC(alloc, klass)
|
|
20
20
|
RUCY_END
|
21
21
|
|
22
22
|
static
|
23
|
-
|
23
|
+
RUCY_DEF6(initialize, type, pointer_type, modifiers, count, drag, positions)
|
24
24
|
{
|
25
25
|
CHECK;
|
26
|
-
check_arg_count(__FILE__, __LINE__, "PointerEvent#initialize", argc, 0, 1, 2, 3, 4, 5, 6, 7);
|
27
26
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
THIS->
|
33
|
-
THIS->
|
34
|
-
THIS->
|
35
|
-
THIS->
|
27
|
+
int size = positions.size();
|
28
|
+
if (size <= 0 || Reflex::PointerEvent::MAX < size)
|
29
|
+
argument_error(__FILE__, __LINE__);
|
30
|
+
|
31
|
+
THIS->type = (Reflex::PointerEvent::Type) to<int>(type);
|
32
|
+
THIS->pointer_type = to<uint>(pointer_type);
|
33
|
+
THIS->modifiers = to<uint>(modifiers);
|
34
|
+
THIS->count = to<uint>(count);
|
35
|
+
THIS->drag = to<bool>(drag);
|
36
|
+
THIS->size = (size_t) size;
|
37
|
+
|
38
|
+
for (int i = 0; i < size; ++i)
|
39
|
+
THIS->positions[i] = to<Rays::Point>(positions[i]);
|
36
40
|
|
37
41
|
return rb_call_super(0, NULL);
|
38
42
|
}
|
@@ -131,10 +135,15 @@ RUCY_DEFN(position)
|
|
131
135
|
RUCY_END
|
132
136
|
|
133
137
|
static
|
134
|
-
RUCY_DEF1(
|
138
|
+
RUCY_DEF1(get_at, index)
|
135
139
|
{
|
136
140
|
CHECK;
|
137
|
-
|
141
|
+
|
142
|
+
int i = to<int>(index);
|
143
|
+
if (i < 0 || THIS->size <= (size_t) i)
|
144
|
+
index_error(__FILE__, __LINE__);
|
145
|
+
|
146
|
+
return value((*THIS)[i]);
|
138
147
|
}
|
139
148
|
RUCY_END
|
140
149
|
|
@@ -160,7 +169,7 @@ Init_pointer_event ()
|
|
160
169
|
cPointerEvent.define_method("x", x);
|
161
170
|
cPointerEvent.define_method("y", y);
|
162
171
|
cPointerEvent.define_method("position", position);
|
163
|
-
cPointerEvent.define_method("[]",
|
172
|
+
cPointerEvent.define_method("[]", get_at);
|
164
173
|
cPointerEvent.define_const("TYPE_NONE", Reflex::PointerEvent::NONE);
|
165
174
|
cPointerEvent.define_const("TYPE_DOWN", Reflex::PointerEvent::DOWN);
|
166
175
|
cPointerEvent.define_const("TYPE_UP", Reflex::PointerEvent::UP);
|
data/ext/reflex/scroll_event.cpp
CHANGED
@@ -20,17 +20,16 @@ RUCY_DEF_ALLOC(alloc, klass)
|
|
20
20
|
RUCY_END
|
21
21
|
|
22
22
|
static
|
23
|
-
|
23
|
+
RUCY_DEF6(initialize, x, y, z, dx, dy, dz)
|
24
24
|
{
|
25
25
|
CHECK;
|
26
|
-
|
27
|
-
|
28
|
-
THIS->
|
29
|
-
THIS->
|
30
|
-
THIS->
|
31
|
-
THIS->
|
32
|
-
THIS->
|
33
|
-
THIS->dz = (argc >= 6) ? to<coord>(argv[5]) : 0;
|
26
|
+
|
27
|
+
THIS->x = to<coord>(x);
|
28
|
+
THIS->y = to<coord>(y);
|
29
|
+
THIS->z = to<coord>(z);
|
30
|
+
THIS->dx = to<coord>(dx);
|
31
|
+
THIS->dy = to<coord>(dy);
|
32
|
+
THIS->dz = to<coord>(dz);
|
34
33
|
|
35
34
|
return rb_call_super(0, NULL);
|
36
35
|
}
|
data/ext/reflex/update_event.cpp
CHANGED
@@ -19,13 +19,12 @@ RUCY_DEF_ALLOC(alloc, klass)
|
|
19
19
|
RUCY_END
|
20
20
|
|
21
21
|
static
|
22
|
-
|
22
|
+
RUCY_DEF2(initialize, now, dt)
|
23
23
|
{
|
24
24
|
CHECK;
|
25
|
-
check_arg_count(__FILE__, __LINE__, "UpdateEvent#initialize", argc, 0, 1, 2);
|
26
25
|
|
27
|
-
THIS->now =
|
28
|
-
THIS->dt =
|
26
|
+
THIS->now = to<double>(now);
|
27
|
+
THIS->dt = to<float>(dt);
|
29
28
|
|
30
29
|
return rb_call_super(0, NULL);
|
31
30
|
}
|
data/ext/reflex/wheel_event.cpp
CHANGED
@@ -20,14 +20,13 @@ RUCY_DEF_ALLOC(alloc, klass)
|
|
20
20
|
RUCY_END
|
21
21
|
|
22
22
|
static
|
23
|
-
|
23
|
+
RUCY_DEF3(initialize, dx, dy, dz)
|
24
24
|
{
|
25
25
|
CHECK;
|
26
|
-
check_arg_count(__FILE__, __LINE__, "WheelEvent#initialize", argc, 0, 1, 2, 3);
|
27
26
|
|
28
|
-
THIS->dx =
|
29
|
-
THIS->dy =
|
30
|
-
THIS->dz =
|
27
|
+
THIS->dx = to<coord>(dx);
|
28
|
+
THIS->dy = to<coord>(dy);
|
29
|
+
THIS->dz = to<coord>(dz);
|
31
30
|
|
32
31
|
return rb_call_super(0, NULL);
|
33
32
|
}
|
data/include/reflex/event.h
CHANGED
@@ -37,16 +37,6 @@ namespace Reflex
|
|
37
37
|
};// Event
|
38
38
|
|
39
39
|
|
40
|
-
struct MotionEvent : public Event
|
41
|
-
{
|
42
|
-
|
43
|
-
Point gravity;
|
44
|
-
|
45
|
-
MotionEvent (const Point& gravity = Point(0, 9.8));
|
46
|
-
|
47
|
-
};// MotionEvent
|
48
|
-
|
49
|
-
|
50
40
|
struct UpdateEvent : public Event
|
51
41
|
{
|
52
42
|
|
@@ -115,14 +105,14 @@ namespace Reflex
|
|
115
105
|
{
|
116
106
|
struct {coord x, y, z;};
|
117
107
|
|
118
|
-
|
108
|
+
Coord3 scroll_;
|
119
109
|
};
|
120
110
|
|
121
111
|
union
|
122
112
|
{
|
123
113
|
struct {coord dx, dy, dz;};
|
124
114
|
|
125
|
-
|
115
|
+
Coord3 delta_;
|
126
116
|
};
|
127
117
|
|
128
118
|
ScrollEvent ();
|
@@ -203,7 +193,7 @@ namespace Reflex
|
|
203
193
|
{
|
204
194
|
struct {coord x, y, z;};
|
205
195
|
|
206
|
-
|
196
|
+
Coord3 positions[MAX];
|
207
197
|
};
|
208
198
|
|
209
199
|
PointerEvent ();
|
@@ -234,14 +224,14 @@ namespace Reflex
|
|
234
224
|
{
|
235
225
|
struct {coord dx, dy, dz;};
|
236
226
|
|
237
|
-
|
227
|
+
Coord3 delta_;
|
238
228
|
};
|
239
229
|
|
240
230
|
union
|
241
231
|
{
|
242
232
|
struct {coord x, y, z;};
|
243
233
|
|
244
|
-
|
234
|
+
Coord3 position_;
|
245
235
|
};
|
246
236
|
|
247
237
|
uint modifiers;
|
@@ -315,6 +305,16 @@ namespace Reflex
|
|
315
305
|
};// ContactEvent
|
316
306
|
|
317
307
|
|
308
|
+
struct MotionEvent : public Event
|
309
|
+
{
|
310
|
+
|
311
|
+
Point gravity;
|
312
|
+
|
313
|
+
MotionEvent (const Point& gravity = Point(0, 9.8));
|
314
|
+
|
315
|
+
};// MotionEvent
|
316
|
+
|
317
|
+
|
318
318
|
}// Reflex
|
319
319
|
|
320
320
|
|
data/include/reflex/exception.h
CHANGED
@@ -38,11 +38,17 @@ namespace Reflex
|
|
38
38
|
|
39
39
|
using namespace Xot::ErrorFunctions;
|
40
40
|
|
41
|
-
|
41
|
+
[[noreturn]]
|
42
|
+
void reflex_error (
|
43
|
+
const char* file, int line, const char* format = NULL, ...);
|
42
44
|
|
43
|
-
|
45
|
+
[[noreturn]]
|
46
|
+
void layout_error (
|
47
|
+
const char* file, int line, const char* format = NULL, ...);
|
44
48
|
|
45
|
-
|
49
|
+
[[noreturn]]
|
50
|
+
void physics_error (
|
51
|
+
const char* file, int line, const char* format = NULL, ...);
|
46
52
|
|
47
53
|
}// ErrorFunctions
|
48
54
|
|
data/include/reflex/ruby/event.h
CHANGED
@@ -17,9 +17,6 @@ namespace Reflex
|
|
17
17
|
Rucy::Class event_class ();
|
18
18
|
// class Reflex::Event
|
19
19
|
|
20
|
-
Rucy::Class motion_event_class ();
|
21
|
-
// class Reflex::MotionEvent
|
22
|
-
|
23
20
|
Rucy::Class update_event_class ();
|
24
21
|
// class Reflex::UpdateEvent
|
25
22
|
|
@@ -53,14 +50,15 @@ namespace Reflex
|
|
53
50
|
Rucy::Class contact_event_class ();
|
54
51
|
// class Reflex::ContactEvent
|
55
52
|
|
53
|
+
Rucy::Class motion_event_class ();
|
54
|
+
// class Reflex::MotionEvent
|
55
|
+
|
56
56
|
|
57
57
|
}// Reflex
|
58
58
|
|
59
59
|
|
60
60
|
RUCY_DECLARE_VALUE_FROM_TO(Reflex::Event)
|
61
61
|
|
62
|
-
RUCY_DECLARE_VALUE_FROM_TO(Reflex::MotionEvent)
|
63
|
-
|
64
62
|
RUCY_DECLARE_VALUE_FROM_TO(Reflex::UpdateEvent)
|
65
63
|
|
66
64
|
RUCY_DECLARE_VALUE_FROM_TO(Reflex::DrawEvent)
|
@@ -83,6 +81,8 @@ RUCY_DECLARE_VALUE_FROM_TO(Reflex::TimerEvent)
|
|
83
81
|
|
84
82
|
RUCY_DECLARE_VALUE_FROM_TO(Reflex::ContactEvent)
|
85
83
|
|
84
|
+
RUCY_DECLARE_VALUE_FROM_TO(Reflex::MotionEvent)
|
85
|
+
|
86
86
|
|
87
87
|
namespace Rucy
|
88
88
|
{
|
@@ -94,12 +94,6 @@ namespace Rucy
|
|
94
94
|
return Reflex::event_class();
|
95
95
|
}
|
96
96
|
|
97
|
-
template <> inline Class
|
98
|
-
get_ruby_class<Reflex::MotionEvent> ()
|
99
|
-
{
|
100
|
-
return Reflex::motion_event_class();
|
101
|
-
}
|
102
|
-
|
103
97
|
template <> inline Class
|
104
98
|
get_ruby_class<Reflex::UpdateEvent> ()
|
105
99
|
{
|
@@ -166,6 +160,12 @@ namespace Rucy
|
|
166
160
|
return Reflex::contact_event_class();
|
167
161
|
}
|
168
162
|
|
163
|
+
template <> inline Class
|
164
|
+
get_ruby_class<Reflex::MotionEvent> ()
|
165
|
+
{
|
166
|
+
return Reflex::motion_event_class();
|
167
|
+
}
|
168
|
+
|
169
169
|
|
170
170
|
}// Rucy
|
171
171
|
|
data/lib/reflex.rb
CHANGED
@@ -9,13 +9,14 @@ require 'reflex/bounds'
|
|
9
9
|
require 'reflex/color'
|
10
10
|
require 'reflex/color_space'
|
11
11
|
require 'reflex/matrix'
|
12
|
+
require 'reflex/painter'
|
12
13
|
require 'reflex/polyline'
|
13
14
|
require 'reflex/polygon'
|
14
15
|
require 'reflex/bitmap'
|
15
16
|
require 'reflex/image'
|
16
17
|
require 'reflex/font'
|
17
18
|
require 'reflex/shader'
|
18
|
-
require 'reflex/
|
19
|
+
require 'reflex/camera'
|
19
20
|
|
20
21
|
require 'reflex/reflex'
|
21
22
|
require 'reflex/helper'
|
data/lib/reflex/pointer_event.rb
CHANGED
@@ -64,6 +64,10 @@ module Reflex
|
|
64
64
|
(get_pointer_type & POINTER_PEN) != 0
|
65
65
|
end
|
66
66
|
|
67
|
+
def positions ()
|
68
|
+
size.times.map {|i| position i}
|
69
|
+
end
|
70
|
+
|
67
71
|
def inspect ()
|
68
72
|
"#<Reflex::PointerEvent type:#{type}/#{pointer_type} x:#{x} y:#{y} size:#{size} mod:#{modifiers} count:#{count} drag:#{drag?}>"
|
69
73
|
end
|
data/samples/camera.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
|
4
|
+
%w[xot rays reflex]
|
5
|
+
.map {|s| File.expand_path "../../../#{s}/lib", __FILE__}
|
6
|
+
.each {|s| $:.unshift s if !$:.include?(s) && File.directory?(s)}
|
7
|
+
|
8
|
+
require 'reflex'
|
9
|
+
|
10
|
+
|
11
|
+
class Win < Reflex::Window
|
12
|
+
|
13
|
+
def initialize ()
|
14
|
+
super title: "Camera Example", frame: [100, 100, 800, 600]
|
15
|
+
@camera = Rays::Camera.new {start}
|
16
|
+
end
|
17
|
+
|
18
|
+
def on_draw (e)
|
19
|
+
p = e.painter
|
20
|
+
p.image @camera.image, 0, 0 if @camera.image
|
21
|
+
p.text "#{e.fps.to_i} FPS", 10, 10
|
22
|
+
end
|
23
|
+
|
24
|
+
def on_update (e)
|
25
|
+
redraw
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
Reflex.start do
|
31
|
+
Win.new.show
|
32
|
+
end
|
data/src/event.cpp
CHANGED
@@ -28,12 +28,6 @@ namespace Reflex
|
|
28
28
|
}
|
29
29
|
|
30
30
|
|
31
|
-
MotionEvent::MotionEvent (const Point& gravity)
|
32
|
-
: gravity(gravity)
|
33
|
-
{
|
34
|
-
}
|
35
|
-
|
36
|
-
|
37
31
|
UpdateEvent::UpdateEvent (double now, float dt)
|
38
32
|
: now(now), dt(dt)
|
39
33
|
{
|
@@ -170,7 +164,7 @@ namespace Reflex
|
|
170
164
|
if (positions_)
|
171
165
|
{
|
172
166
|
for (size_t i = 0; i < size; ++i)
|
173
|
-
positions[i] = *(
|
167
|
+
positions[i] = *(Coord3*) &positions_[i];
|
174
168
|
}
|
175
169
|
}
|
176
170
|
|
@@ -302,4 +296,10 @@ namespace Reflex
|
|
302
296
|
}
|
303
297
|
|
304
298
|
|
299
|
+
MotionEvent::MotionEvent (const Point& gravity)
|
300
|
+
: gravity(gravity)
|
301
|
+
{
|
302
|
+
}
|
303
|
+
|
304
|
+
|
305
305
|
}// Reflex
|
data/src/timer.cpp
CHANGED
@@ -162,8 +162,7 @@ namespace Reflex
|
|
162
162
|
{
|
163
163
|
assert(timer && *timer);
|
164
164
|
|
165
|
-
|
166
|
-
for (List::iterator it = timers.begin(); it != end; ++it)
|
165
|
+
for (auto it = timers.begin(), end = timers.end(); it != end; ++it)
|
167
166
|
{
|
168
167
|
if (timer->self->next_time < (*it)->self->next_time)
|
169
168
|
{
|
@@ -219,8 +218,7 @@ namespace Reflex
|
|
219
218
|
if (!timer)
|
220
219
|
argument_error(__FILE__, __LINE__);
|
221
220
|
|
222
|
-
|
223
|
-
for (List::iterator it = timers.begin(); it != end; ++it)
|
221
|
+
for (auto it = timers.begin(), end = timers.end(); it != end; ++it)
|
224
222
|
{
|
225
223
|
if (timer->id() == (*it)->id())
|
226
224
|
timers.erase(it);
|
@@ -261,8 +259,7 @@ namespace Reflex
|
|
261
259
|
void
|
262
260
|
Timers::fire (double now)
|
263
261
|
{
|
264
|
-
|
265
|
-
for (List::iterator it = timers.begin(); it != end; ++it)
|
262
|
+
for (auto it = timers.begin(), end = timers.end(); it != end; ++it)
|
266
263
|
{
|
267
264
|
Timer* timer = it->get();
|
268
265
|
if (!is_time_to_fire(timer, now))
|
data/test/test_pointer_event.rb
CHANGED
@@ -6,80 +6,125 @@ require_relative 'helper'
|
|
6
6
|
|
7
7
|
class TestPointerEvent < Test::Unit::TestCase
|
8
8
|
|
9
|
+
E = Reflex::PointerEvent
|
9
10
|
T = true
|
10
11
|
F = false
|
11
12
|
|
12
|
-
|
13
|
-
|
13
|
+
TYPE_NONE = E::TYPE_NONE
|
14
|
+
DOWN = E::TYPE_DOWN
|
15
|
+
UP = E::TYPE_UP
|
16
|
+
MOVE = E::TYPE_MOVE
|
17
|
+
|
18
|
+
POINTER_NONE = E::POINTER_NONE
|
19
|
+
LEFT = E::POINTER_MOUSE_LEFT
|
20
|
+
RIGHT = E::POINTER_MOUSE_RIGHT
|
21
|
+
MIDDLE = E::POINTER_MOUSE_MIDDLE
|
22
|
+
TOUCH = E::POINTER_TOUCH
|
23
|
+
PEN = E::POINTER_PEN
|
24
|
+
|
25
|
+
def event (
|
26
|
+
type = TYPE_NONE, pointer_type = POINTER_NONE,
|
27
|
+
modifiers = 0, count = 0, drag = false,
|
28
|
+
positions: [0])
|
29
|
+
|
30
|
+
Reflex::PointerEvent.new type, pointer_type, modifiers, count, drag, positions
|
14
31
|
end
|
15
32
|
|
16
|
-
def
|
17
|
-
event
|
18
|
-
|
19
|
-
|
20
|
-
end
|
21
|
-
end
|
33
|
+
def test_initialize ()
|
34
|
+
assert_nothing_raised {event positions: 10.times.to_a}
|
35
|
+
assert_raise(ArgumentError) {event positions: 11.times.to_a}
|
36
|
+
assert_raise(ArgumentError) {event positions: []}
|
22
37
|
end
|
23
38
|
|
24
39
|
def test_type ()
|
25
|
-
|
40
|
+
def type (arg)
|
41
|
+
event(arg).tap do |o|
|
42
|
+
def o.test ()
|
43
|
+
[type, down?, up?, move?]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
o = type TYPE_NONE
|
26
49
|
assert_equal [:none, F, F, F], o.test
|
27
50
|
|
28
|
-
o = type
|
51
|
+
o = type DOWN
|
29
52
|
assert_equal [:down, T, F, F], o.test
|
30
53
|
|
31
|
-
o = type
|
54
|
+
o = type UP
|
32
55
|
assert_equal [:up, F, T, F], o.test
|
33
56
|
|
34
|
-
o = type
|
57
|
+
o = type MOVE
|
35
58
|
assert_equal [:move, F, F, T], o.test
|
36
59
|
end
|
37
60
|
|
38
|
-
def
|
39
|
-
|
40
|
-
|
41
|
-
|
61
|
+
def test_pointer_type ()
|
62
|
+
def pointer_type (arg)
|
63
|
+
event(TYPE_NONE, arg).tap do |o|
|
64
|
+
def o.test ()
|
65
|
+
[pointer_type, left?, right?, middle?, touch?, pen?]
|
66
|
+
end
|
42
67
|
end
|
43
68
|
end
|
44
|
-
end
|
45
69
|
|
46
|
-
|
47
|
-
o = pointer_type Reflex::PointerEvent::POINTER_NONE
|
70
|
+
o = pointer_type POINTER_NONE
|
48
71
|
assert_equal [[], F, F, F, F, F], o.test
|
49
72
|
|
50
|
-
o = pointer_type
|
73
|
+
o = pointer_type LEFT
|
51
74
|
assert_equal [[:mouse_left], T, F, F, F, F], o.test
|
52
75
|
|
53
|
-
o = pointer_type
|
76
|
+
o = pointer_type RIGHT
|
54
77
|
assert_equal [[:mouse_right], F, T, F, F, F], o.test
|
55
78
|
|
56
|
-
o = pointer_type
|
79
|
+
o = pointer_type MIDDLE
|
57
80
|
assert_equal [[:mouse_middle], F, F, T, F, F], o.test
|
58
81
|
|
59
|
-
o = pointer_type
|
82
|
+
o = pointer_type TOUCH
|
60
83
|
assert_equal [[:touch], F, F, F, T, F], o.test
|
61
84
|
|
62
|
-
o = pointer_type
|
85
|
+
o = pointer_type PEN
|
63
86
|
assert_equal [[:pen], F, F, F, F, T], o.test
|
64
87
|
|
65
|
-
o = pointer_type
|
66
|
-
Reflex::PointerEvent::POINTER_MOUSE_RIGHT
|
88
|
+
o = pointer_type LEFT | RIGHT
|
67
89
|
types = [:mouse_left, :mouse_right]
|
68
90
|
assert_equal [types, T, T, F, F, F], o.test
|
69
91
|
|
70
|
-
o = pointer_type
|
71
|
-
Reflex::PointerEvent::POINTER_MOUSE_RIGHT |
|
72
|
-
Reflex::PointerEvent::POINTER_MOUSE_MIDDLE
|
92
|
+
o = pointer_type LEFT | RIGHT | MIDDLE
|
73
93
|
types = [:mouse_left, :mouse_right, :mouse_middle]
|
74
94
|
assert_equal [types, T, T, T, F, F], o.test
|
75
95
|
|
76
|
-
o = pointer_type
|
77
|
-
Reflex::PointerEvent::POINTER_MOUSE_RIGHT |
|
78
|
-
Reflex::PointerEvent::POINTER_MOUSE_MIDDLE |
|
79
|
-
Reflex::PointerEvent::POINTER_TOUCH |
|
80
|
-
Reflex::PointerEvent::POINTER_PEN
|
96
|
+
o = pointer_type LEFT | RIGHT | MIDDLE | TOUCH | PEN
|
81
97
|
types = [:mouse_left, :mouse_right, :mouse_middle, :touch, :pen]
|
82
98
|
assert_equal [types, T, T, T, T, T], o.test
|
83
99
|
end
|
84
100
|
|
101
|
+
def test_size ()
|
102
|
+
assert_equal 1, event(positions: [0] ).size
|
103
|
+
assert_equal 2, event(positions: [0, 1]).size
|
104
|
+
end
|
105
|
+
|
106
|
+
def test_xy ()
|
107
|
+
assert_equal 0, event(positions: [[0, 1], [2, 3]]).x
|
108
|
+
assert_equal 1, event(positions: [[0, 1], [2, 3]]).y
|
109
|
+
end
|
110
|
+
|
111
|
+
def test_position ()
|
112
|
+
assert_equal [0, 1], event(positions: [[0, 1], [2, 3]]).position.to_a
|
113
|
+
end
|
114
|
+
|
115
|
+
def test_positions ()
|
116
|
+
assert_equal [[0, 0]], event(positions: [0] ).positions.map(&:to_a)
|
117
|
+
assert_equal [[0, 0], [1, 1]], event(positions: [0, 1]).positions.map(&:to_a)
|
118
|
+
|
119
|
+
assert_equal [[0, 1]], event(positions: [[0, 1]] ).positions.map(&:to_a)
|
120
|
+
assert_equal [[0, 1], [2, 3]], event(positions: [[0, 1], [2, 3]]).positions.map(&:to_a)
|
121
|
+
end
|
122
|
+
|
123
|
+
def test_at ()
|
124
|
+
assert_equal [0, 1], event(positions: [[0, 1], [2, 3]])[0].to_a
|
125
|
+
assert_equal [2, 3], event(positions: [[0, 1], [2, 3]])[1].to_a
|
126
|
+
assert_raise(IndexError) {event(positions: [[0, 1], [2, 3]])[-1]}
|
127
|
+
assert_raise(IndexError) {event(positions: [[0, 1], [2, 3]])[2]}
|
128
|
+
end
|
129
|
+
|
85
130
|
end# TestPointerEvent
|
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.
|
4
|
+
version: 0.1.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- xordog
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xot
|
@@ -200,6 +200,7 @@ files:
|
|
200
200
|
- lib/reflex/bitmap.rb
|
201
201
|
- lib/reflex/bounds.rb
|
202
202
|
- lib/reflex/button.rb
|
203
|
+
- lib/reflex/camera.rb
|
203
204
|
- lib/reflex/capture_event.rb
|
204
205
|
- lib/reflex/color.rb
|
205
206
|
- lib/reflex/color_space.rb
|
@@ -249,6 +250,7 @@ files:
|
|
249
250
|
- reflex.gemspec
|
250
251
|
- samples/app.rb
|
251
252
|
- samples/bats.rb
|
253
|
+
- samples/camera.rb
|
252
254
|
- samples/checker.rb
|
253
255
|
- samples/fans.rb
|
254
256
|
- samples/fps.rb
|
@@ -359,7 +361,7 @@ files:
|
|
359
361
|
homepage: https://github.com/xord/reflex
|
360
362
|
licenses: []
|
361
363
|
metadata: {}
|
362
|
-
post_install_message:
|
364
|
+
post_install_message:
|
363
365
|
rdoc_options: []
|
364
366
|
require_paths:
|
365
367
|
- lib
|
@@ -375,7 +377,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
375
377
|
version: '0'
|
376
378
|
requirements: []
|
377
379
|
rubygems_version: 3.0.3
|
378
|
-
signing_key:
|
380
|
+
signing_key:
|
379
381
|
specification_version: 4
|
380
382
|
summary: A Graphical User Interface Tool Kit.
|
381
383
|
test_files:
|