Class: Ogre::SceneNode
Instance Method Summary collapse
-
#look_at(*args) ⇒ Object
Look at an object This function is different than the one in the Ogre SDK because it defaults to TS_LOCAL as the transform space You can send it a node, mesh, or anything with a position vector Or just a vector.
- #raw_look_at ⇒ Object
- #raw_rotate ⇒ Object
-
#rotate(axis, amount, *args) ⇒ Object
rotate works in degrees by default, and in the TS_lOCAL space.
-
#scale!(*args) ⇒ Object
scale! works with numbers, vectors, or 3 numbers and is relative.
-
#scale=(*args) ⇒ Object
scale= works with numbers, vectors, or 3 numbers and is absolute.
Instance Method Details
#look_at(*args) ⇒ Object
Look at an object This function is different than the one in the Ogre SDK because it defaults to TS_LOCAL as the transform space You can send it a node, mesh, or anything with a position vector Or just a vector
45 46 47 48 49 50 51 |
# File 'lib/shattered_ogrerb/scene_node.rb', line 45 def look_at(*args) transform = Ogre::Node::TS_LOCAL transform = args[1] if(args.length == 2) v = args[0] v = args[0].position if args[0].class.respond_to? :position raw_look_at v, transform end |
#raw_look_at ⇒ Object
38 |
# File 'lib/shattered_ogrerb/scene_node.rb', line 38 alias_method :raw_look_at, :look_at |
#raw_rotate ⇒ Object
27 |
# File 'lib/shattered_ogrerb/scene_node.rb', line 27 alias_method :raw_rotate, :rotate |
#rotate(axis, amount, *args) ⇒ Object
rotate works in degrees by default, and in the TS_lOCAL space
30 31 32 33 34 35 36 |
# File 'lib/shattered_ogrerb/scene_node.rb', line 30 def rotate(axis, amount, *args) if(args.empty?) raw_rotate(axis.to_v, Radian.new(Degree.new(amount))) else raw_rotate(axis.to_v, Radian.new(Degree.new(amount)), args[0]) end end |
#scale!(*args) ⇒ Object
scale! works with numbers, vectors, or 3 numbers and is relative
64 65 66 67 68 69 70 71 |
# File 'lib/shattered_ogrerb/scene_node.rb', line 64 def scale!(*args) v = args # This handles calling scale=0.5 or some other number v = v(v[0], v[0], v[0]) if v[0].is_a? Numeric scale(*v) end |
#scale=(*args) ⇒ Object
scale= works with numbers, vectors, or 3 numbers and is absolute
54 55 56 57 58 59 60 61 |
# File 'lib/shattered_ogrerb/scene_node.rb', line 54 def scale=(*args) v = args # This handles calling scale=0.5 or some other number v = v(v[0], v[0], v[0]) if v[0].is_a? Numeric set_scale(*v) end |