A class to generate a matrix representing a rotation of real or complex spherical harmonics, around three axes, in a specified order of rotations.
Use of HoaMatrixXformer's various rotation methods, which use this class internally, is more convenient for most rotation operations and is advised. See HoaMatrixXformer: *newRotate, *newRTT, *newYPR, *newRotateAxis.
Generate an HoaMatrixRotation
r1 |
The first rotation angle, in radians. |
r2 |
The second rotation angle, in radians. |
r3 |
The third rotation angle, in radians. |
axes |
A Symbol defining the order of rotations, by axis. E.g. |
order |
Ambisonic order. Defaults to |
Return the Matrix object representing the rotation.
Return the Matrix representing the original 3x3 rotation of degree l = 1
, which is then used to recursively build the full rotation matrix of higher order. The user will not typically need this rotation kernel, but is provided for introspection.
Return the ambisonic order of the rotation matrix.
Return a rotation Matrix of complex spherical harmonics.
Test axial rotations via HoaMatrixXformer: -newRotateAxis(which uses HoaMatrixRotation internally).
The underlying utilities used here are largely a port of spherical harmonic rotations from Archontis Politis's Spherical-Harmonic-Transform Library for Matlab/Octave. 1 2
The technique was originally authored by Ivanic and Ruedenberg. 3 4
Politis's code for real SH rotations is itself a port of Bing Jian's implementations of the above technique. 5