3D Rotation Generator

RotMatrixGenerator3

example

julia> m = rand(3,3)3×3 Matrix{Float64}:
 0.44178    0.902747   0.616936
 0.435129   0.113867   0.461802
 0.0912659  0.0400408  0.831451
julia> s = RotMatrixGenerator{3}(m - m')3×3 RotMatrixGenerator3{Float64} with indices SOneTo(3)×SOneTo(3): 0.0 0.467618 0.52567 -0.467618 0.0 0.421761 -0.52567 -0.421761 0.0
julia> exp(s)3×3 RotMatrix3{Float64} with indices SOneTo(3)×SOneTo(3): 0.766072 0.312137 0.561875 -0.521688 0.812597 0.259861 -0.375466 -0.492196 0.785346

RotationVecGenerator

example

julia> s = RotationVecGenerator(0.1,0.2,0.3)3×3 RotationVecGenerator{Float64} with indices SOneTo(3)×SOneTo(3)(0.1, 0.2, 0.3):
  0.0  -0.3   0.2
  0.3   0.0  -0.1
 -0.2   0.1   0.0
julia> exp(s)3×3 RotationVec{Float64} with indices SOneTo(3)×SOneTo(3)(0.1, 0.2, 0.3): 0.935755 -0.283165 0.210192 0.302933 0.950581 -0.0680313 -0.18054 0.127335 0.97529
julia> log(exp(s))3×3 RotationVecGenerator{Float64} with indices SOneTo(3)×SOneTo(3)(0.1, 0.2, 0.3): 0.0 -0.3 0.2 0.3 0.0 -0.1 -0.2 0.1 0.0
julia> rotation_angle(exp(s))0.37416573867739417
julia> rotation_angle(exp(2s))0.7483314773547883
julia> rotation_angle(exp(2s)) / rotation_angle(exp(s))2.0