class Vec

Attributes

x[RW]
y[RW]
z[RW]

Public Class Methods

new(x, y, z) click to toggle source

include Inline

# File typeprof-0.15.2/testbed/ao.rb, line 15
def initialize(x, y, z)
  @x = x
  @y = y
  @z = z
end

Public Instance Methods

vadd(b) click to toggle source
# File typeprof-0.15.2/testbed/ao.rb, line 23
def vadd(b)
  Vec.new(@x + b.x, @y + b.y, @z + b.z)
end
vcross(b) click to toggle source

make_inline_method :vsub

# File typeprof-0.15.2/testbed/ao.rb, line 32
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) click to toggle source

make_inline_method :vcross

# File typeprof-0.15.2/testbed/ao.rb, line 39
def vdot(b)
  r = @x * b.x + @y * b.y + @z * b.z
  r
end
vlength() click to toggle source

make_inline_method :vdot

# File typeprof-0.15.2/testbed/ao.rb, line 45
def vlength
  Math.sqrt(@x * @x + @y * @y + @z * @z)
end
vnormalize() click to toggle source

make_inline_method :vlength

# File typeprof-0.15.2/testbed/ao.rb, line 50
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) click to toggle source
# File typeprof-0.15.2/testbed/ao.rb, line 27
def vsub(b)
  Vec.new(@x - b.x, @y - b.y, @z - b.z)
end