From 4b1f6a74dea183f1044668b405314ab152702ea4 Mon Sep 17 00:00:00 2001 From: therabbitwindfall Date: Sun, 15 Jul 2012 02:10:41 +0300 Subject: [PATCH 1/2] added Camera setPosition and lookAt methods --- src/alternativa/engine3d/core/Camera3D.as | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/alternativa/engine3d/core/Camera3D.as b/src/alternativa/engine3d/core/Camera3D.as index 9b75688..5b74db6 100644 --- a/src/alternativa/engine3d/core/Camera3D.as +++ b/src/alternativa/engine3d/core/Camera3D.as @@ -406,6 +406,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 From ddbb8109ce6dc96baf60ff4359cd36cf2d4ee549 Mon Sep 17 00:00:00 2001 From: therabbitwindfall Date: Sun, 15 Jul 2012 02:16:30 +0300 Subject: [PATCH 2/2] Converting between Radians and Degrees --- src/alternativa/engine3d/utils/Object3DUtils.as | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/alternativa/engine3d/utils/Object3DUtils.as b/src/alternativa/engine3d/utils/Object3DUtils.as index 1f5917c..417c905 100644 --- a/src/alternativa/engine3d/utils/Object3DUtils.as +++ b/src/alternativa/engine3d/utils/Object3DUtils.as @@ -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