// File: srajangarg[P]raytracer/src/core/SceneLoader.cpp
// Function: SceneLoader::setLightDefaults(SceneGroup*)
void SceneLoader::setLightDefaults(SceneGroup * n)
{
  // set default values for unset variables
  if (n->light_->angularFalloff_ == NULL)
    n->light_->angularFalloff_ = new ConstValue(0);

  if (n->light_->color_ == NULL)
  {
    n->light_->color_ = new ParametricColor();
    n->light_->color_->color_[0] = new ConstValue(0);
    n->light_->color_->color_[1] = new ConstValue(0);
    n->light_->color_->color_[2] = new ConstValue(0);
  }

  if (n->light_->offset_ == NULL)
    n->light_->offset_ = new ConstValue(.15);

  if (n->light_->deadDistance_ == NULL)
    n->light_->deadDistance_ = new ConstValue(.1);

  if (n->light_->falloff_ == NULL)
    n->light_->falloff_ = new ConstValue(0);

  if (n->light_->type_ == NULL)
    n->light_->type_ = new ConstValue(LIGHT_AMBIENT);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
cmpq $0x0, 0x18(%rax)
jne 0x10aee
movl $0x10, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x28(%rbp)
xorps %xmm0, %xmm0
callq 0x12f80
jmp 0x10abd
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq %rcx, 0x18(%rax)
jmp 0x10aee
movq -0x28(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0x10, %esi
callq 0x5410
jmp 0x10dbf
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0x10c3f
movl $0x18, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x30(%rbp)
callq 0x132f0
jmp 0x10b1c
movq -0x30(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq %rcx, 0x8(%rax)
movl $0x10, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x38(%rbp)
xorps %xmm0, %xmm0
callq 0x12f80
jmp 0x10b4a
movq -0x38(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rcx, (%rax)
movl $0x10, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x40(%rbp)
xorps %xmm0, %xmm0
callq 0x12f80
jmp 0x10b7b
movq -0x40(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x8(%rax)
movl $0x10, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x48(%rbp)
xorps %xmm0, %xmm0
callq 0x12f80
jmp 0x10bad
movq -0x48(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x10(%rax)
jmp 0x10c3f
movq -0x30(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0x18, %esi
callq 0x5410
jmp 0x10dbf
movq -0x38(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0x10, %esi
callq 0x5410
jmp 0x10dbf
movq -0x40(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0x10, %esi
callq 0x5410
jmp 0x10dbf
movq -0x48(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0x10, %esi
callq 0x5410
jmp 0x10dbf
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
cmpq $0x0, 0x28(%rax)
jne 0x10ca2
movl $0x10, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x50(%rbp)
movsd 0x36526(%rip), %xmm0    # 0x47190
callq 0x12f80
jmp 0x10c71
movq -0x50(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq %rcx, 0x28(%rax)
jmp 0x10ca2
movq -0x50(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0x10, %esi
callq 0x5410
jmp 0x10dbf
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
cmpq $0x0, 0x20(%rax)
jne 0x10d05
movl $0x10, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x58(%rbp)
movsd 0x364cb(%rip), %xmm0    # 0x47198
callq 0x12f80
jmp 0x10cd4
movq -0x58(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq %rcx, 0x20(%rax)
jmp 0x10d05
movq -0x58(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0x10, %esi
callq 0x5410
jmp 0x10dbf
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
cmpq $0x0, 0x10(%rax)
jne 0x10d60
movl $0x10, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x60(%rbp)
xorps %xmm0, %xmm0
callq 0x12f80
jmp 0x10d32
movq -0x60(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq %rcx, 0x10(%rax)
jmp 0x10d60
movq -0x60(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0x10, %esi
callq 0x5410
jmp 0x10dbf
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
cmpq $0x0, (%rax)
jne 0x10db9
movl $0x10, %edi
callq 0x5400
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x68(%rbp)
xorps %xmm0, %xmm0
callq 0x12f80
jmp 0x10d8c
movq -0x68(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq %rcx, (%rax)
jmp 0x10db9
movq -0x68(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
movl $0x10, %esi
callq 0x5410
jmp 0x10dbf
addq $0x70, %rsp
popq %rbp
retq
movq -0x18(%rbp), %rdi
callq 0x5720
nopl (%rax,%rax)