1234567891011121314151617181920212223242526272829303132 |
- """
- Copyright (c) Contributors to the Open 3D Engine Project.
- For complete copyright and license terms please see the LICENSE at the root of this distribution.
- SPDX-License-Identifier: Apache-2.0 OR MIT
- """
- # setup path
- import azlmbr.object
- import azlmbr.math as math
- # returns a Vector3 of cartesian coordinates from spherical coordinates
- # phi and theta are in degrees
- def spherical_to_cartesian(phi, theta, dist=1.0):
- phi = math.Math_DegToRad(phi)
- theta = math.Math_DegToRad(theta)
- x = float(dist) * float(math.Math_Sin(phi)) * float(math.Math_Cos(theta))
- y = float(dist) * float(math.Math_Sin(phi)) * float(math.Math_Sin(theta))
- z = float(dist) * float(math.Math_Cos(phi))
- return math.Vector3(x, y, z)
- # converts two Cartesian points into their midpoint, normalized into a vector of size r
- def normalize_midpoint(pos1, pos2, r=1.0):
- pos = pos1.Add(pos2).MultiplyFloat(0.5)
- pos.Normalize()
- return pos.MultiplyFloat(r)
|