Open ianmackenzie opened 5 years ago
Along the same lines, Frame2d
could be internally represented using something like an Angle
instead of a pair of basis directions.
One issue to keep in mind: it's also necessary to be able to represent left-handed frames. Is it sufficient to just have an internal Bool
flag? Is there a better way?
Using quaternions internally would be more compact (fewer allocations!) and would avoid the potential issue of basis directions becoming denormalized/non-orthogonal after repeated rotations. On the other hand, using quaternions could mean that
placeIn
/relativeTo
would be slower (a bit more math to do) and would mean that anything that calledFrame3d.xDirection
(directly, or indirectly viaFrame3d.xAxis
etc.) would require allocating a newDirection3d
value instead of simply returning the internalDirection3d
. To be benchmarked!