Merge pull request #13 from therabbitwindfall/master

Add setPosition, lookAt to Camera3D and converting between Radians and Degrees in Object3DUtils
This commit is contained in:
Andrey Kopysov
2012-07-18 12:15:35 -07:00
2 changed files with 37 additions and 0 deletions

View File

@@ -407,6 +407,29 @@ public class Camera3D extends Object3D {
occluders.length = 0;
context3D = null;
}
/**
* Setup Camera3D position using x, y, z coordinates
*/
public function setPosition(x:Number, y:Number, z:Number):void{
this.x = x;
this.y = y;
this.z = z;
}
/**
* Camera3D lookAt method
*/
public function lookAt(x:Number, y:Number, z:Number):void{
var deltaX:Number = x - this.x;
var deltaY:Number = y - this.y;
var deltaZ:Number = z - this.z;
var rotX = Math.atan2(deltaZ, Math.sqrt(deltaX * deltaX + deltaY * deltaY));
rotationX = rotX - 0.5 * Math.PI;
rotationY = 0;
rotationZ = - Math.atan2(deltaX,deltaY);
}
/**
* @private

View File

@@ -22,6 +22,20 @@ package alternativa.engine3d.utils {
private static const toRootTransform:Transform3D = new Transform3D();
private static const fromRootTransform:Transform3D = new Transform3D();
/**
* @public
* Convert Degress to Radians and Radians to Degrees
*/
public static function toRadians(degrees:Number):Number{
return degrees * Math.PI / 180;
}
public static function toDegrees(radians:Number):Number{
return radians * 180 / Math.PI;
}
/**
* @private