Class: Symbol

Inherits:
Object show all
Defined in:
lib/shattered_view/ogrerb/vector.rb,
lib/shattered_model/input.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#*(number) ⇒ Object

Multiplication defined for vectors carries over to their symbolic equivalence.



61
62
63
# File 'lib/shattered_view/ogrerb/vector.rb', line 61

def *(number)
  to_v * number
end

#+(number) ⇒ Object

Addition for vectors



66
67
68
# File 'lib/shattered_view/ogrerb/vector.rb', line 66

def +(number)
  to_v + number
end

#-(number) ⇒ Object

Subtraction for vectors



71
72
73
# File 'lib/shattered_view/ogrerb/vector.rb', line 71

def -(number)
	to_v - number
end

#-@Object

Negation for vector symbols



76
77
78
# File 'lib/shattered_view/ogrerb/vector.rb', line 76

def -@
 -to_v
end

#to_mouse_idObject

Raises:

  • (Exception)


9
10
11
12
13
14
15
16
17
18
# File 'lib/shattered_model/input.rb', line 9

def to_mouse_id
  if self == :left
    return 0
  elsif self == :right
    return 1
  elsif self == :middle
    return 2
  end
  raise Exception.new("Could not convert symbol #{self} to mouse button")
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)


50
51
52
53
54
55
56
57
58
# File 'lib/shattered_view/ogrerb/vector.rb', line 50

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