Class: Vec

Inherits:
Object show all
Defined in:
ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb

Instance Method Summary collapse

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

#vlengthObject



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

#vnormalizeObject



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

#xObject



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

#yObject



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

#zObject



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