/* <copyright>
This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
(c) Copyright 2011 Motorola Mobility, Inc.  All Rights Reserved.
</copyright> */

/* 
 * shadow light - a modified camera used to describe a shadow casting light
 */
shadowLight = function() 
{
	// inherit from the base class
	this.inheritedFrom = camera;
	this.inheritedFrom();
	
	// matrices needed for shadow projection
	this.invViewMatrix=mat4.identity();
	this.mvpMatrix=mat4.identity();
	
	// texture matrix
	this.shadowMatrix=mat4.identity();           
	this.shadowMatrix=mat4.scale(this.shadowMatrix,[0.5,0.5,0.5]);
	this.shadowMatrix=mat4.translate(this.shadowMatrix,[0.5,0.5,0.5]);
	
	// cached references
	this.renderer = null;
	this.cameraManager = null;
	
	// shadow bias offset
	this.shadowBias = 0.0195;
	
	this.init = function ()
	{
		this.renderer = g_Engine.getContext().renderer;
		this.cameraManager = this.renderer.cameraManager();
	}
	
	/*
	 *	makes the light the current 'camera'
	 */
	this.activate = function()
	{
		this.cameraManager.pushCamera(this);
	}
	
	/*
	 *	restores the camera stack
	 */
	this.deactivate = function()
	{
		this.cameraManager.popCamera();	
	}
	
}