Method: CGLM::Mat4#initialize

Defined in:
lib/cglm/mat4.rb

#initialize(initial_values = nil, **args) ⇒ Mat4

Returns a new instance of Mat4.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/cglm/mat4.rb', line 3

def initialize(initial_values = nil, **args)
  super(**args)
  case initial_values
  when Mat3
    initial_values.to_a.each_with_index { |row, i| self[i] = row }
  when Mat4
    addr[0, self.class.size] = initial_values.addr[0, self.class.size]
  when Array
    initial_values.each_with_index do |row, i|
      self[i] = row
    end
  when nil
  else
    raise ArgumentError, 'initial values should be a Mat4, a Mat3 or an array of Array/Vec3/Vec4'
  end
end