class Mittsu::DirectionalLight

Attributes

cast_shadow[RW]
shadow_bias[RW]
shadow_camera[RW]
shadow_camera_bottom[RW]
shadow_camera_far[RW]
shadow_camera_left[RW]
shadow_camera_near[RW]
shadow_camera_right[RW]
shadow_camera_top[RW]
shadow_camera_visible[RW]
shadow_cascade[RW]
shadow_cascade_array[RW]
shadow_cascade_bias[RW]
shadow_cascade_count[RW]
shadow_cascade_far_z[RW]
shadow_cascade_height[RW]
shadow_cascade_near_z[RW]
shadow_cascade_offset[RW]
shadow_cascade_width[RW]
shadow_darkness[RW]
shadow_map[RW]
shadow_map_height[RW]
shadow_map_size[RW]
shadow_map_width[RW]
shadow_matrix[RW]
target[RW]

Public Class Methods

new(color = nil, intensity = 1.0) click to toggle source
Calls superclass method
# File lib/mittsu/lights/directional_light.rb, line 32
def initialize(color = nil, intensity = 1.0)
  super(color)

  @type = 'DirectionalLight'

  @position.set(0.0, 1.0, 0.0)
  @target = Object3D.new

  @intensity = intensity

  @cast_shadow = false
  @only_shadow = false

  #

  @shadow_camera_near = 50.0
  @shadow_camera_far = 5000.0

  @shadow_camera_left = -500.0
  @shadow_camera_right = 500.0
  @shadow_camera_top = 500.0
  @shadow_camera_bottom = -500.0

  @shadow_camera_visible = false

  @shadow_bias = 0
  @shadow_darkness = 0.5

  @shadow_map_width = 512
  @shadow_map_height = 512

  #

  @shadow_cascade = false

  @shadow_cascade_offset = Vector3.new(0.0, 0.0, -1000.0)
  @shadow_cascade_count = 2

  @shadow_cascade_bias = [0, 0, 0]
  @shadow_cascade_width = [512, 512, 512]
  @shadow_cascade_height = [512, 512, 512]

  @shadow_cascade_near_z = [-1.000, 0.990, 0.998]
  @shadow_cascade_far_z  = [0.990, 0.998, 1.000]

  @shadow_cascade_array = []

  #

  @shadow_map = nil
  @shadow_map_size = nil
  @shadow_camera = nil
  @shadow_matrix = nil
end

Public Instance Methods

clone() click to toggle source
Calls superclass method
# File lib/mittsu/lights/directional_light.rb, line 87
def clone
  light = DirectionalLight.new
  super(light)

  light.target = @target.clone

  light.intensity = @intensity

  light.cast_shadow = @cast_shadow
  light.only_shadow = @only_shadow

  #

  light.shadow_camera_near = @shadow_camera_near
  light.shadow_camera_far = @shadow_camera_far

  light.shadow_camera_left = @shadow_camera_left
  light.shadow_camera_right = @shadow_camera_right
  light.shadow_camera_top = @shadow_camera_top
  light.shadow_camera_bottom = @shadow_camera_bottom

  light.shadow_camera_visible = @shadow_camera_visible

  light.shadow_bias = @shadow_bias
  light.shadow_darkness = @shadow_darkness

  light.shadow_map_width = @shadow_map_width
  light.shadow_map_height = @shadow_map_height

  #

  light.shadow_cascade = @shadow_cascade

  light.shadow_cascade_offset.copy(@shadow_cascade_offset)
  light.shadow_cascade_count = @shadow_cascade_count

  light.shadow_cascade_bias = @shadow_cascade_bias.dup
  light.shadow_cascade_width = @shadow_cascade_width.dup
  light.shadow_cascade_height = @shadow_cascade_height.dup

  light.shadow_cascade_near_z = @shadow_cascade_near_z.dup
  light.shadow_cascade_far_z  = @shadow_cascade_far_z.dup
end
virtual?() click to toggle source
# File lib/mittsu/lights/directional_light.rb, line 131
def virtual?
  false
end

Protected Instance Methods

jsonify() click to toggle source
Calls superclass method
# File lib/mittsu/lights/directional_light.rb, line 137
def jsonify
  data = super
  data[:color] = self.color.get_hex
  data[:intensity] = self.intensity
  data
end