diff --git a/LinearAlgebra/Spherical.cs b/LinearAlgebra/Spherical.cs index e9c2b5b..e755444 100644 --- a/LinearAlgebra/Spherical.cs +++ b/LinearAlgebra/Spherical.cs @@ -43,5 +43,22 @@ namespace Passer.LinearAlgebra { Vector3 v = new Vector3(x, y, z); return v; } + + public Vector3 ToVector3() { + float verticalRad = (UnityEngine.Mathf.PI / 2) - this.direction.vertical * UnityEngine.Mathf.Deg2Rad; + float horizontalRad = this.direction.horizontal * UnityEngine.Mathf.Deg2Rad; + float cosVertical = UnityEngine.Mathf.Cos(verticalRad); + float sinVertical = UnityEngine.Mathf.Sin(verticalRad); + float cosHorizontal = UnityEngine.Mathf.Cos(horizontalRad); + float sinHorizontal = UnityEngine.Mathf.Sin(horizontalRad); + + float x = this.distance * sinVertical * sinHorizontal; + float y = this.distance * cosVertical; + float z = this.distance * sinVertical * cosHorizontal; + + Vector3 v = new Vector3(x, y, z); + return v; + + } } } \ No newline at end of file