Class: Miyako::SquareStruct
- Defined in:
- lib/Miyako/API/struct_square.rb
Overview
Square構造体用クラス
位置変更メソッドを追加
Instance Method Summary collapse
-
#*(other) ⇒ Object
インスタンスのかけ算 もう一方が整数のとき、x,yにotherを掛けたものを返す Point構造体や配列など、[]メソッドがつかえるもののとき、x,y同士を掛けたものを返す それ以外の時は例外が発生する 自分自身の値は変わらない other:: 整数もしくはPoint構造体 返却値:: Point構造体.
-
#+(other) ⇒ Object
インスタンスの足し算 もう一方が整数のとき、x,yにotherを足したものを返す Point構造体や配列など、[]メソッドがつかえるもののとき、x,y同士を足したものを返す それ以外の時は例外が発生する 自分自身の値は変わらない other:: 整数もしくはPoint構造体 返却値:: Point構造体.
-
#-(other) ⇒ Object
インスタンスの引き算 もう一方が整数のとき、x,yからotherを引いたものを返す Point構造体や配列など、[]メソッドがつかえるもののとき、x,y同士を引いたものを返す それ以外の時は例外が発生する 自分自身の値は変わらない other:: 整数もしくはPoint構造体 返却値:: Point構造体.
-
#/(other) ⇒ Object
インスタンスの割り算 もう一方が整数のとき、x,yからotherを割ったものを返す Point構造体や配列など、[]メソッドがつかえるもののとき、x,y同士を割ったものを返す それ以外の時は例外が発生する 自分自身の値は変わらない other:: 整数もしくはPoint構造体 返却値:: Point構造体.
-
#between?(x, y) ⇒ Boolean
指定の座標が矩形の範囲内かを問い合わせる x:: 指定のx座標 y:: 指定のy座標 返却値:: 座標が矩形の範囲内ならtrueを返す.
-
#in_range?(x, y) ⇒ Boolean
指定の座標が矩形の範囲内かを問い合わせる x:: 指定のx座標 y:: 指定のy座標 返却値:: 座標が矩形の範囲内ならtrueを返す.
-
#move(dx, dy) ⇒ Object
位置を変更したインスタンスを返す(変化量を指定) 引数で指定したぶん移動させたときの位置を新しくインスタンスを生成して返す 自分自身の値は変わらない dx:: 移動量(x方向)。単位はピクセル dy:: 移動量(y方向)。単位はピクセル 返却値:: 自分自身の複製を更新したインスタンス.
-
#move!(dx, dy) ⇒ Object
位置を変更する(変化量を指定) ブロックを渡したとき、ブロックの評価した結果、偽になったときは移動させた値を元に戻す dx:: 移動量(x方向)。単位はピクセル dy:: 移動量(y方向)。単位はピクセル 返却値:: 自分自身を返す.
-
#move_to(x, y) ⇒ Object
位置を変更したインスタンスを返す(位置指定) 引数で指定したぶん移動させたときの位置を新しくインスタンスを生成して返す 自分自身の値は変わらない x:: 移動先位置(x方向)。単位はピクセル y:: 移動先位置(y方向)。単位はピクセル 返却値:: 自分自身の複製を更新したインスタンス.
-
#move_to!(x, y) ⇒ Object
位置を変更する(位置指定) ブロックを渡したとき、ブロックの評価した結果、偽になったときは移動させた値を元に戻す x:: 移動先位置(x方向)。単位はピクセル y:: 移動先位置(y方向)。単位はピクセル 返却値:: 自分自身を返す.
-
#pos ⇒ Object
矩形の左上位置部分のみ返す 返却値:: Position構造体のインスタンス.
-
#resize(dw, dh) ⇒ Object
サイズを変更したインスタンスを返す(変化量を指定) 引数で指定したぶん変えたときの大きさを新しくインスタンスを生成して返す 自分自身の値は変わらない dw:: 幅変更。単位はピクセル dh:: 高さ変更。単位はピクセル 返却値:: 自分自身の複製を更新したインスタンス.
-
#resize!(dw, dh) ⇒ Object
サイズを変更する(変化量を指定) ブロックを渡したとき、ブロックの評価した結果、偽になったときは移動させた値を元に戻す dw:: 幅変更。単位はピクセル dh:: 高さ変更。単位はピクセル 返却値:: 自分自身を返す.
-
#resize_to(w, h) ⇒ Object
サイズを変更したインスタンスを返す 引数で指定したぶん変えたときの大きさを新しくインスタンスを生成して返す 自分自身の値は変わらない w:: 幅変更。単位はピクセル h:: 高さ変更。単位はピクセル 返却値:: 自分自身の複製を更新したインスタンス.
-
#resize_to!(w, h) ⇒ Object
サイズを変更する ブロックを渡したとき、ブロックの評価した結果、偽になったときは移動させた値を元に戻す w:: 幅変更。単位はピクセル h:: 高さ変更。単位はピクセル 返却値:: 自分自身を返す.
-
#size ⇒ Object
矩形の大きさのみ返す 返却値:: Size構造体のインスタンス.
-
#to_ary ⇒ Object
矩形情報を配列に変換する [left, top, right, bottom]の配列を生成して返す。 返却値:: 生成した配列.
-
#to_rect ⇒ Object
矩形情報をRect構造体に変換する 返却値:: 生成したRect構造体.
Instance Method Details
#*(other) ⇒ Object
インスタンスのかけ算
もう一方が整数のとき、x,yにotherを掛けたものを返す Point構造体や配列など、[]メソッドがつかえるもののとき、x,y同士を掛けたものを返す それ以外の時は例外が発生する 自分自身の値は変わらない
- other
-
整数もしくはPoint構造体
- 返却値
-
Point構造体
156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
# File 'lib/Miyako/API/struct_square.rb', line 156 def *(other) ret = self.dup w = ret[2] - ret[0] h = ret[3] - ret[1] if other.kind_of?(Numeric) ret[0] *= other ret[1] *= other ret[2] = ret[0] + w ret[3] = ret[1] + h elsif other.methods.include?(:[]) ret[0] *= other[0] ret[1] *= other[1] ret[2] = ret[0] + w ret[3] = ret[1] + h else raise MiyakoError, "this parameter cannot access!" end ret end |
#+(other) ⇒ Object
インスタンスの足し算
もう一方が整数のとき、x,yにotherを足したものを返す Point構造体や配列など、[]メソッドがつかえるもののとき、x,y同士を足したものを返す それ以外の時は例外が発生する 自分自身の値は変わらない
- other
-
整数もしくはPoint構造体
- 返却値
-
Point構造体
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/Miyako/API/struct_square.rb', line 106 def +(other) ret = self.dup if other.kind_of?(Numeric) ret[0] += other ret[1] += other ret[2] += other ret[3] += other elsif other.methods.include?(:[]) ret[0] += other[0] ret[1] += other[1] ret[2] += other[0] ret[3] += other[1] else raise MiyakoError, "this parameter cannot access!" end ret end |
#-(other) ⇒ Object
インスタンスの引き算
もう一方が整数のとき、x,yからotherを引いたものを返す Point構造体や配列など、[]メソッドがつかえるもののとき、x,y同士を引いたものを返す それ以外の時は例外が発生する 自分自身の値は変わらない
- other
-
整数もしくはPoint構造体
- 返却値
-
Point構造体
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
# File 'lib/Miyako/API/struct_square.rb', line 131 def -(other) ret = self.dup if other.kind_of?(Numeric) ret[0] -= other ret[1] -= other ret[2] -= other ret[3] -= other elsif other.methods.include?(:[]) ret[0] -= other[0] ret[1] -= other[1] ret[2] -= other[0] ret[3] -= other[1] else raise MiyakoError, "this parameter cannot access!" end ret end |
#/(other) ⇒ Object
インスタンスの割り算
もう一方が整数のとき、x,yからotherを割ったものを返す Point構造体や配列など、[]メソッドがつかえるもののとき、x,y同士を割ったものを返す それ以外の時は例外が発生する 自分自身の値は変わらない
- other
-
整数もしくはPoint構造体
- 返却値
-
Point構造体
183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 |
# File 'lib/Miyako/API/struct_square.rb', line 183 def /(other) ret = self.dup w = ret[2] - ret[0] h = ret[3] - ret[1] if other.kind_of?(Numeric) raise MiyakoValueError, "0 div!" if other == 0 ret[0] /= other ret[1] /= other ret[2] = ret[0] + w ret[3] = ret[1] + h elsif other.methods.include?(:[]) raise MiyakoValueError, "0 div!" if (other[0] == 0 || other[1] == 0) ret[0] /= other[0] ret[1] /= other[1] ret[2] = ret[0] + w ret[3] = ret[1] + h else raise MiyakoError, "this parameter cannot access!" end ret end |
#between?(x, y) ⇒ Boolean
指定の座標が矩形の範囲内かを問い合わせる
- x
-
指定のx座標
- y
-
指定のy座標
- 返却値
-
座標が矩形の範囲内ならtrueを返す
217 218 219 |
# File 'lib/Miyako/API/struct_square.rb', line 217 def between?(x, y) return in_range?(x, y) end |
#in_range?(x, y) ⇒ Boolean
指定の座標が矩形の範囲内かを問い合わせる
- x
-
指定のx座標
- y
-
指定のy座標
- 返却値
-
座標が矩形の範囲内ならtrueを返す
209 210 211 |
# File 'lib/Miyako/API/struct_square.rb', line 209 def in_range?(x, y) return (x >= self[0] && y >= self[1] && x <= self[2] && y <= self[3]) end |
#move(dx, dy) ⇒ Object
位置を変更したインスタンスを返す(変化量を指定)
引数で指定したぶん移動させたときの位置を新しくインスタンスを生成して返す 自分自身の値は変わらない
- dx
-
移動量(x方向)。単位はピクセル
- dy
-
移動量(y方向)。単位はピクセル
- 返却値
-
自分自身の複製を更新したインスタンス
49 50 51 |
# File 'lib/Miyako/API/struct_square.rb', line 49 def move(dx, dy) self.dup.move!(dx, dy) end |
#move!(dx, dy) ⇒ Object
位置を変更する(変化量を指定)
ブロックを渡したとき、ブロックの評価した結果、偽になったときは移動させた値を元に戻す
- dx
-
移動量(x方向)。単位はピクセル
- dy
-
移動量(y方向)。単位はピクセル
- 返却値
-
自分自身を返す
32 33 |
# File 'lib/Miyako/API/struct_square.rb', line 32 def move!(dx, dy) end |
#move_to(x, y) ⇒ Object
位置を変更したインスタンスを返す(位置指定)
引数で指定したぶん移動させたときの位置を新しくインスタンスを生成して返す 自分自身の値は変わらない
- x
-
移動先位置(x方向)。単位はピクセル
- y
-
移動先位置(y方向)。単位はピクセル
- 返却値
-
自分自身の複製を更新したインスタンス
59 60 61 |
# File 'lib/Miyako/API/struct_square.rb', line 59 def move_to(x, y) self.dup.move_to!(x, y) end |
#move_to!(x, y) ⇒ Object
位置を変更する(位置指定)
ブロックを渡したとき、ブロックの評価した結果、偽になったときは移動させた値を元に戻す
- x
-
移動先位置(x方向)。単位はピクセル
- y
-
移動先位置(y方向)。単位はピクセル
- 返却値
-
自分自身を返す
40 41 |
# File 'lib/Miyako/API/struct_square.rb', line 40 def move_to!(x, y) end |
#pos ⇒ Object
矩形の左上位置部分のみ返す
- 返却値
-
Position構造体のインスタンス
223 224 225 |
# File 'lib/Miyako/API/struct_square.rb', line 223 def pos return Point.new(self[0], self[1]) end |
#resize(dw, dh) ⇒ Object
サイズを変更したインスタンスを返す(変化量を指定)
引数で指定したぶん変えたときの大きさを新しくインスタンスを生成して返す 自分自身の値は変わらない
- dw
-
幅変更。単位はピクセル
- dh
-
高さ変更。単位はピクセル
- 返却値
-
自分自身の複製を更新したインスタンス
85 86 87 |
# File 'lib/Miyako/API/struct_square.rb', line 85 def resize(dw, dh) self.dup.resize!(dw,dh) end |
#resize!(dw, dh) ⇒ Object
サイズを変更する(変化量を指定)
ブロックを渡したとき、ブロックの評価した結果、偽になったときは移動させた値を元に戻す
- dw
-
幅変更。単位はピクセル
- dh
-
高さ変更。単位はピクセル
- 返却値
-
自分自身を返す
68 69 |
# File 'lib/Miyako/API/struct_square.rb', line 68 def resize!(dw, dh) end |
#resize_to(w, h) ⇒ Object
サイズを変更したインスタンスを返す
引数で指定したぶん変えたときの大きさを新しくインスタンスを生成して返す 自分自身の値は変わらない
- w
-
幅変更。単位はピクセル
- h
-
高さ変更。単位はピクセル
- 返却値
-
自分自身の複製を更新したインスタンス
95 96 97 |
# File 'lib/Miyako/API/struct_square.rb', line 95 def resize_to(w, h) self.dup.resize_to!(w,h) end |
#resize_to!(w, h) ⇒ Object
サイズを変更する
ブロックを渡したとき、ブロックの評価した結果、偽になったときは移動させた値を元に戻す
- w
-
幅変更。単位はピクセル
- h
-
高さ変更。単位はピクセル
- 返却値
-
自分自身を返す
76 77 |
# File 'lib/Miyako/API/struct_square.rb', line 76 def resize_to!(w, h) end |
#size ⇒ Object
矩形の大きさのみ返す
- 返却値
-
Size構造体のインスタンス
229 230 231 |
# File 'lib/Miyako/API/struct_square.rb', line 229 def size return Size.new(self[2]-self[0]+1, self[3]-self[1]+1) end |
#to_ary ⇒ Object
矩形情報を配列に変換する
[left, top, right, bottom]の配列を生成して返す。
- 返却値
-
生成した配列
236 237 238 |
# File 'lib/Miyako/API/struct_square.rb', line 236 def to_ary [self[0], self[1], self[2], self[3]] end |