Class: Array

Inherits:
Object show all
Defined in:
lib/glimr/util.rb,
lib/glimr/eventlistener.rb

Direct Known Subclasses

GlimR::AngleAxis, GlimR::Quaternion

Instance Method Summary collapse

Instance Method Details

#-@Object



240
241
242
# File 'lib/glimr/util.rb', line 240

def -@
  map{|i| -i}
end

#add(x) ⇒ Object Also known as: add!



199
200
201
202
203
204
205
206
# File 'lib/glimr/util.rb', line 199

def add(x)
  i = 0
  x.each{|v|
    self[i] += v
    i += 1
  }
  self
end

#cross_product(v) ⇒ Object



228
229
230
231
232
233
# File 'lib/glimr/util.rb', line 228

def cross_product(v)
  u = self
  [ u[1]*v[2] - v[1]*u[2],
    v[0]*u[2] - u[0]*v[2],
    u[0]*v[1] - v[0]*u[1]]
end

#delete_first(item) ⇒ Object



6
7
8
9
# File 'lib/glimr/eventlistener.rb', line 6

def delete_first(item)
  i = index(item)
  delete_at i if i
end

#dot(x) ⇒ Object



220
221
222
223
224
225
226
# File 'lib/glimr/util.rb', line 220

def dot(x)
  if x.is_a? Array
    zip(x).map{|i,j| i*j}
  else
    map{|i| i*x}
  end
end

#normalizeObject



235
236
237
238
# File 'lib/glimr/util.rb', line 235

def normalize
  l = Math.sqrt(inject(0){|s,i| s+i**2})
  map{|i| i / l }
end

#sub(x) ⇒ Object Also known as: sub!



208
209
210
211
212
213
214
215
# File 'lib/glimr/util.rb', line 208

def sub(x)
  i = 0
  x.each{|v|
    self[i] -= v
    i += 1
  }
  self
end