Improper Rotations edit page

Improper rotations are coordinate transformations from a left handed into a right handed coordinate system as, e.g. a mirroring or an inversion. In MTEX the inversion is defined as the negative identical rotation

I = - rotation.byEuler(0,0,0)
I = rotation
 
  Bunge Euler angles in degree
  phi1  Phi phi2 Inv.
     0    0    0    1

Note that this is convenient as both groupings of the operations - and * should give the same result

- (rotation.byEuler(0,0,0) * xvector)
(- rotation.byEuler(0,0,0)) * xvector
ans = vector3d
   x  y  z
  -1  0  0
 
ans = vector3d
   x  y  z
  -1  0  0

Mirroring

As a mirroring is nothing else than a rotation of 180 degree about the normal of the mirroring plane followed by a inversion, we can defined a mirroring about the axis (111) by

mir = -rotation.byAxisAngle(vector3d(1,1,1),180*degree)
mir = rotation
 
  Bunge Euler angles in degree
  phi1     Phi    phi2    Inv.
   135 109.471      45       1

A convenient shortcut is the command

mir = reflection(vector3d(1,1,1))
mir = rotation
 
  Bunge Euler angles in degree
  phi1     Phi    phi2    Inv.
   135 109.471      45       1

To check whether a rotation is improper or not you can do

mir.isImproper
ans =
  logical
   1