Class: Symbol

Inherits:
Object show all
Defined in:
lib/shattered_ogrerb/vector.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#*(number) ⇒ Object

Multiplication defined for vectors carries over to their symbolic equivalence.



36
37
38
# File 'lib/shattered_ogrerb/vector.rb', line 36

def *(number)
  return to_v * number
end

#+(number) ⇒ Object

Addition for vectors



41
42
43
# File 'lib/shattered_ogrerb/vector.rb', line 41

def +(number)
  return to_v + number
end

#-(number) ⇒ Object

Subtraction for numbers



46
47
48
# File 'lib/shattered_ogrerb/vector.rb', line 46

def -(number)
	return to_v - number
end

#to_vObject

Vectors in symbol form can be any of the following:

:x => v(1,0,0)
:y => v(0,1,0)
:z => v(0,0,1),
:up => v(0,1,0)
:down => v(0,-1,0)
:left => v(-1,0,0)
:right => v(1,0,0)
:forward => v(0,0,1)
:backward => v(0,0,-1)
:zero => v(0,0,0)


25
26
27
28
29
30
31
32
33
# File 'lib/shattered_ogrerb/vector.rb', line 25

def to_v
  @definitions ||= {:x => v(1,0,0),:y => v(0,1,0),:z => v(0,0,1),
                  :up => v(0,1,0),:down => v(0,-1,0),
                  :left => v(-1,0,0),:right => v(1,0,0),
                  :forward => v(0,0,1),:backward => v(0,0,-1),
                  :zero => v(0,0,0)}
  return @definitions[self] unless @definitions[self].nil?
  raise SymbolToVectorError, "Undefined vector for symbol #{self}"
end