lib/cyberarm_engine/opengl/light.rb in cyberarm_engine-0.19.0 vs lib/cyberarm_engine/opengl/light.rb in cyberarm_engine-0.19.1
- old
+ new
@@ -1,50 +1,50 @@
-module CyberarmEngine
- class Light
- DIRECTIONAL = 0
- POINT = 1
- SPOT = 2
-
- attr_reader :light_id
- attr_accessor :type, :ambient, :diffuse, :specular, :position, :direction, :intensity
-
- def initialize(
- id:,
- type: Light::POINT,
- ambient: Vector.new(0.5, 0.5, 0.5),
- diffuse: Vector.new(1, 1, 1),
- specular: Vector.new(0.2, 0.2, 0.2),
- position: Vector.new(0, 0, 0),
- direction: Vector.new(0, 0, 0),
- intensity: 1
- )
- @light_id = id
- @type = type
-
- @ambient = ambient
- @diffuse = diffuse
- @specular = specular
- @position = position
- @direction = direction
-
- @intensity = intensity
- end
-
- def draw
- glLightfv(@light_id, GL_AMBIENT, convert(@ambient).pack("f*"))
- glLightfv(@light_id, GL_DIFFUSE, convert(@diffuse, true).pack("f*"))
- glLightfv(@light_id, GL_SPECULAR, convert(@specular, true).pack("f*"))
- glLightfv(@light_id, GL_POSITION, convert(@position).pack("f*"))
- glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, 1)
- glEnable(GL_LIGHTING)
- glEnable(@light_id)
- end
-
- def convert(struct, apply_intensity = false)
- if apply_intensity
- struct.to_a.compact.map { |i| i * @intensity }
- else
- struct.to_a.compact
- end
- end
- end
-end
+module CyberarmEngine
+ class Light
+ DIRECTIONAL = 0
+ POINT = 1
+ SPOT = 2
+
+ attr_reader :light_id
+ attr_accessor :type, :ambient, :diffuse, :specular, :position, :direction, :intensity
+
+ def initialize(
+ id:,
+ type: Light::POINT,
+ ambient: Vector.new(0.5, 0.5, 0.5),
+ diffuse: Vector.new(1, 1, 1),
+ specular: Vector.new(0.2, 0.2, 0.2),
+ position: Vector.new(0, 0, 0),
+ direction: Vector.new(0, 0, 0),
+ intensity: 1
+ )
+ @light_id = id
+ @type = type
+
+ @ambient = ambient
+ @diffuse = diffuse
+ @specular = specular
+ @position = position
+ @direction = direction
+
+ @intensity = intensity
+ end
+
+ def draw
+ glLightfv(@light_id, GL_AMBIENT, convert(@ambient).pack("f*"))
+ glLightfv(@light_id, GL_DIFFUSE, convert(@diffuse, true).pack("f*"))
+ glLightfv(@light_id, GL_SPECULAR, convert(@specular, true).pack("f*"))
+ glLightfv(@light_id, GL_POSITION, convert(@position).pack("f*"))
+ glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, 1)
+ glEnable(GL_LIGHTING)
+ glEnable(@light_id)
+ end
+
+ def convert(struct, apply_intensity = false)
+ if apply_intensity
+ struct.to_a.compact.map { |i| i * @intensity }
+ else
+ struct.to_a.compact
+ end
+ end
+ end
+end