Class: Vec
- Defined in:
- ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb
Instance Method Summary collapse
-
#initialize(x, y, z) ⇒ Vec
constructor
A new instance of Vec.
- #vadd(b) ⇒ Object
- #vcross(b) ⇒ Object
- #vdot(b) ⇒ Object
- #vlength ⇒ Object
- #vnormalize ⇒ Object
- #vsub(b) ⇒ Object
- #x ⇒ Object
- #x=(v) ⇒ Object
- #y ⇒ Object
- #y=(v) ⇒ Object
- #z ⇒ Object
- #z=(v) ⇒ Object
Constructor Details
#initialize(x, y, z) ⇒ Vec
Returns a new instance of Vec.
32 33 34 35 36 |
# File 'ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb', line 32 def initialize(x, y, z) @x = x @y = y @z = z end |
Instance Method Details
#vadd(b) ⇒ Object
45 46 47 |
# File 'ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb', line 45 def vadd(b) Vec.new(@x + b.x, @y + b.y, @z + b.z) end |
#vcross(b) ⇒ Object
53 54 55 56 57 |
# File 'ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb', line 53 def vcross(b) Vec.new(@y * b.z - @z * b.y, @z * b.x - @x * b.z, @x * b.y - @y * b.x) end |
#vdot(b) ⇒ Object
59 60 61 62 |
# File 'ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb', line 59 def vdot(b) r = @x * b.x + @y * b.y + @z * b.z r end |
#vlength ⇒ Object
64 65 66 |
# File 'ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb', line 64 def vlength Math.sqrt(@x * @x + @y * @y + @z * @z) end |
#vnormalize ⇒ Object
68 69 70 71 72 73 74 75 76 77 |
# File 'ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb', line 68 def vnormalize len = vlength v = Vec.new(@x, @y, @z) if len > 1.0e-17 v.x = v.x / len v.y = v.y / len v.z = v.z / len end v end |
#vsub(b) ⇒ Object
49 50 51 |
# File 'ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb', line 49 def vsub(b) Vec.new(@x - b.x, @y - b.y, @z - b.z) end |
#x ⇒ Object
41 |
# File 'ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb', line 41 def x; @x; end |
#x=(v) ⇒ Object
38 |
# File 'ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb', line 38 def x=(v); @x = v; end |
#y ⇒ Object
42 |
# File 'ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb', line 42 def y; @y; end |
#y=(v) ⇒ Object
39 |
# File 'ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb', line 39 def y=(v); @y = v; end |
#z ⇒ Object
43 |
# File 'ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb', line 43 def z; @z; end |
#z=(v) ⇒ Object
40 |
# File 'ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb', line 40 def z=(v); @z = v; end |