Class: Mittsu::OpenGLPointLight

Inherits:
OpenGLLight show all
Defined in:
lib/mittsu/renderers/opengl/lights/opengl_point_light.rb

Defined Under Namespace

Classes: Cache

Constant Summary collapse

TYPE =
:point

Instance Attribute Summary

Attributes inherited from OpenGLLight

#camera_helper

Attributes inherited from OpenGLObject3D

#active, #model_view_matrix, #morph_target_influences

Instance Method Summary collapse

Methods inherited from OpenGLLight

#initialize, null_remaining_lights, #project, #setup, #type

Methods inherited from OpenGLObject3D

#active?, #add_opengl_object, #buffer_material, #init, #init_geometry, #initialize, #load_uniforms_matrices, #project, #setup_matrices

Constructor Details

This class inherits a constructor from Mittsu::OpenGLLight

Instance Method Details

#setup_specific(index) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/mittsu/renderers/opengl/lights/opengl_point_light.rb', line 15

def setup_specific(index)
  offset = index * 3;

  OpenGLHelper.set_color_linear(@cache.colors, offset, @light.color, @light.intensity)

  @_vector3.set_from_matrix_position(@light.matrix_world)

  positions = @cache.positions
  positions[offset]     = @_vector3.x
  positions[offset + 1] = @_vector3.y
  positions[offset + 2] = @_vector3.z

  # distance is 0 if decay is 0, because there is no attenuation at all.
  @cache.distances[index] = @light.distance
  @cache.decays[index] = @light.distance.zero? ? 0.0 : @light.decay
end

#to_symObject



32
33
34
# File 'lib/mittsu/renderers/opengl/lights/opengl_point_light.rb', line 32

def to_sym
  :point
end