added option to return angleAxis as flat list

This commit is contained in:
Philip Eisenlohr 2018-12-07 22:02:30 -05:00
parent d7f505f24e
commit 3d7a73a0de
1 changed files with 11 additions and 5 deletions

View File

@ -257,7 +257,8 @@ class Quaternion:
]) ])
def asAngleAxis(self, def asAngleAxis(self,
degrees = False): degrees = False,
flat = False):
if self.q > 1.: if self.q > 1.:
self.normalize() self.normalize()
@ -270,6 +271,10 @@ class Quaternion:
angle *= -1. angle *= -1.
s *= -1. s *= -1.
if flat:
return np.hstack((np.degrees(angle) if degrees else angle,
np.array([1.0, 0.0, 0.0] if np.abs(angle) < 1e-6 else self.p / s)))
else:
return (np.degrees(angle) if degrees else angle, return (np.degrees(angle) if degrees else angle,
np.array([1.0, 0.0, 0.0] if np.abs(angle) < 1e-6 else self.p / s)) np.array([1.0, 0.0, 0.0] if np.abs(angle) < 1e-6 else self.p / s))
@ -749,8 +754,9 @@ class Orientation:
rodrigues = property(asRodrigues) rodrigues = property(asRodrigues)
def asAngleAxis(self, def asAngleAxis(self,
degrees = False): degrees = False,
return self.quaternion.asAngleAxis(degrees) flat = False):
return self.quaternion.asAngleAxis(degrees,flat)
angleAxis = property(asAngleAxis) angleAxis = property(asAngleAxis)
def asMatrix(self): def asMatrix(self):