package away3dPlus.cameras
{
import away3d.core.scene.Object3D;
import away3d.core.math.Number3D;
import away3d.cameras.TargetCamera3D;
/**
* A camera which keeps looking at a target when it is translated.
* This makes the camera easier to use with Tweener
*/
public class TargetedCamera extends TargetCamera3D
{
public var upAxis:Number3D;
function TargetedCamera(target:Object3D) {
super({target:target})
upAxis = new Number3D(0,1,0);
}
override public function set x(value:Number):void {
super.x = value;
if (target!= null) lookAt(target.position, upAxis);
}
override public function set y(value:Number):void {
super.y = value;
if (target!= null) lookAt(target.position, upAxis);
}
override public function set z(value:Number):void {
super.z = value;
if (target!= null) lookAt(target.position, upAxis);
}
public function get upAxisX():Number {
return upAxis.x;
}
public function set upAxisX(n:Number):void {
upAxis.x = n;
if (target!= null) lookAt(target.position, upAxis);
}
public function get upAxisY():Number {
return upAxis.y;
}
public function set upAxisY(n:Number):void {
upAxis.y = n;
if (target!= null) lookAt(target.position, upAxis);
}
public function get upAxisZ():Number {
return upAxis.z;
}
public function set upAxisZ(n:Number):void {
upAxis.z = n;
if (target!= null) lookAt(target.position, upAxis);
}
}
}