function FirstPersonControls()
{
	Group.call(this);

	this.name = "controls";
	this.type = "FirstPersonControls";

	/**
	 * Mouse sensitivity.
	 * 
	 * @property sensitivity
	 * @type {number}
	 */
	this.sensitivity = 0.005;

	/**
	 * Flag to indicate if the button left button needs to be pressed to rotate the object.
	 * 
	 * @property needsButtonPressed
	 * @default true
	 * @type {boolean}
	 */
	this.needsButtonPressed = true;

	/**
	 * Indicates if its possible to move the object using the Keyboard keys.
	 * 
	 * @property movementEnabled
	 * @default true
	 * @type {boolean}
	 */
	this.movementEnabled = true;

	/**
	 * Movement speed, relative to the world.
	 * 
	 * @property moveSpeed
	 * @default moveSpeed
	 * @type {number}
	 */
	this.moveSpeed = 0.05;

	/**
	 * If set to true the object will only move on X and Z axis.
	 * 
	 * @property moveOnPlane
	 * @default false
	 * @type {boolean}
	 */
	this.moveOnPlane = false;

	/**
	 * Array with keys to be used to move the object.
	 *  - Forward
	 *  - Backward
	 *  - Left
	 *  - Right
	 * 
	 * @property moveKeys
	 * @type {Array}
	 */
	this.moveKeys = [Keyboard.W, Keyboard.S, Keyboard.A, Keyboard.D];
	
	/**
	 * Orientation of the camera.
	 *
	 * X is the horizontal orientation and Y the vertical orientation.
	 *
	 * @property vector
	 * @type {Vector2}
	 */	
	this.vector = new Vector2(0, 0);

	this.mouse = null;
	this.keyboard = null;

	this.tempVector = new Vector3();
}
First person controls can be controlled using the mouse and keyboard.

Provides a navigations system familiar to the one found on FPS games.

The mouse left button can be used to look around, and the keyboard arrows for movement.

@class FirstPersonControls
@extends {Group}
@module Controls