Class: Ray::View
- Inherits:
-
Object
- Object
- Ray::View
- Defined in:
- lib/ray/view.rb,
ext/view.c
Instance Method Summary collapse
- #==(other) ⇒ Object
- #center ⇒ Object
- #center=(val) ⇒ Object
- #h ⇒ Object
- #h=(val) ⇒ Object
- #initialize(*args) ⇒ Object constructor
- #initialize_copy(orig) ⇒ Object
- #inspect ⇒ Object
- #matrix ⇒ Object
- #matrix=(val) ⇒ Object
-
#rect ⇒ Ray::Rect
Rect representing the part of the world that can be seen through this view.
- #size ⇒ Object
- #size=(val) ⇒ Object
-
#unzoom_by(value) ⇒ Object
Decreases zoom (making object appear smaller).
- #viewport ⇒ Object
- #viewport=(val) ⇒ Object
- #w ⇒ Object
- #w=(val) ⇒ Object
- #x ⇒ Object
- #x=(val) ⇒ Object
- #y ⇒ Object
- #y=(val) ⇒ Object
-
#zoom_by(value) ⇒ Object
Increases zoom (making object appear bigger).
Constructor Details
#initialize(center, size, viewport = [0, 0, 1, 1]) ⇒ Object #initialize(matrix) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'ext/view.c', line 38
static
VALUE ray_view_init(int argc, VALUE *argv, VALUE self) {
say_view *view = ray_rb2view(self);
if (argc == 1) {
say_view_set_matrix(view, ray_rb2matrix(argv[0]));
}
else {
VALUE center, size, viewport = Qnil;
rb_scan_args(argc, argv, "21", ¢er, &size, &viewport);
say_view_set_center(view, ray_convert_to_vector2(center));
say_view_set_size(view, ray_convert_to_vector2(size));
if (!NIL_P(viewport)) {
say_view_set_viewport(view, ray_convert_to_rect(viewport));
}
}
return self;
}
|
Instance Method Details
#==(other) ⇒ Object
3 4 5 |
# File 'lib/ray/view.rb', line 3 def ==(other) other.is_a?(Ray::View) && self.matrix == other.matrix end |
#center ⇒ Object
78 79 80 81 |
# File 'ext/view.c', line 78 static VALUE ray_view_center(VALUE self) { return ray_vector2_to_rb(say_view_get_center(ray_rb2view(self))); } |
#center=(val) ⇒ Object
83 84 85 86 87 88 |
# File 'ext/view.c', line 83
static
VALUE ray_view_set_center(VALUE self, VALUE val) {
rb_check_frozen(self);
say_view_set_center(ray_rb2view(self), ray_convert_to_vector2(val));
return val;
}
|
#h ⇒ Object
36 |
# File 'lib/ray/view.rb', line 36 def h; size.h; end |
#h=(val) ⇒ Object
41 |
# File 'lib/ray/view.rb', line 41 def h=(val); self.size = [w, val]; end |
#initialize_copy(orig) ⇒ Object
60 61 62 63 64 |
# File 'ext/view.c', line 60
static
VALUE ray_view_init_copy(VALUE self, VALUE orig) {
say_view_copy(ray_rb2view(self), ray_rb2view(orig));
return self;
}
|
#inspect ⇒ Object
43 44 45 |
# File 'lib/ray/view.rb', line 43 def inspect "#<#{self.class} center=#{center} size=#{size} viewport=#{}>" end |
#matrix ⇒ Object
102 103 104 105 |
# File 'ext/view.c', line 102 static VALUE ray_view_matrix(VALUE self) { return ray_matrix2rb(say_view_get_matrix(ray_rb2view(self))); } |
#matrix=(val) ⇒ Object
107 108 109 110 111 112 |
# File 'ext/view.c', line 107
static
VALUE ray_view_set_matrix(VALUE self, VALUE val) {
rb_check_frozen(self);
say_view_set_matrix(ray_rb2view(self), ray_rb2matrix(val));
return val;
}
|
#rect ⇒ Ray::Rect
Returns Rect representing the part of the world that can be seen through this view.
26 27 28 29 30 31 |
# File 'lib/ray/view.rb', line 26 def rect size = self.size pos = self.center Ray::Rect[pos.x - size.x / 2, pos.y - size.y / 2, size.x, size.y] end |
#size ⇒ Object
66 67 68 69 |
# File 'ext/view.c', line 66 static VALUE ray_view_size(VALUE self) { return ray_vector2_to_rb(say_view_get_size(ray_rb2view(self))); } |
#size=(val) ⇒ Object
71 72 73 74 75 76 |
# File 'ext/view.c', line 71
static
VALUE ray_view_set_size(VALUE self, VALUE val) {
rb_check_frozen(self);
say_view_set_size(ray_rb2view(self), ray_convert_to_vector2(val));
return val;
}
|
#unzoom_by(value) ⇒ Object
Decreases zoom (making object appear smaller).
20 21 22 |
# File 'lib/ray/view.rb', line 20 def unzoom_by(value) self.size *= value end |
#viewport ⇒ Object
90 91 92 93 |
# File 'ext/view.c', line 90 static VALUE (VALUE self) { return ray_rect2rb((ray_rb2view(self))); } |
#viewport=(val) ⇒ Object
95 96 97 98 99 100 |
# File 'ext/view.c', line 95
static
VALUE ray_view_set_viewport(VALUE self, VALUE val) {
rb_check_frozen(self);
say_view_set_viewport(ray_rb2view(self), ray_convert_to_rect(val));
return val;
}
|
#w ⇒ Object
35 |
# File 'lib/ray/view.rb', line 35 def w; size.w; end |
#w=(val) ⇒ Object
40 |
# File 'lib/ray/view.rb', line 40 def w=(val); self.size = [val, h]; end |
#x ⇒ Object
33 |
# File 'lib/ray/view.rb', line 33 def x; center.x; end |
#x=(val) ⇒ Object
38 |
# File 'lib/ray/view.rb', line 38 def x=(val); self.center = [val, y]; end |
#y ⇒ Object
34 |
# File 'lib/ray/view.rb', line 34 def y; center.y; end |
#y=(val) ⇒ Object
39 |
# File 'lib/ray/view.rb', line 39 def y=(val); self.center = [x, val]; end |
#zoom_by(value) ⇒ Object
Increases zoom (making object appear bigger). The center of the view and its viewport aren’t affected by this.
12 13 14 |
# File 'lib/ray/view.rb', line 12 def zoom_by(value) self.size /= value end |