I think rotation.map in set.east/north etc. needs a second vector pair to define the correct rotation
otherwise you can accidentally change the first screen direction when setting the other one in the constructor:
pC = plottingConvention(vector3d.Z,-vector3d.X)
% pC = plottingConvention
%
% outOfScreen: (0,0,-1)
% north : (0,1,0)
% east : (-1,0,0)
pC.rot
% ans = rotation
%
% Bunge Euler angles in degree
% phi1 Phi phi2
% 90 180 270
pC.outOfScreen
% ans = vector3d
% x y z
% 0 0 -1
% % this is wrong
% try to set outOfScreen again
pC.outOfScreen = vector3d.Z
pC.rot
% pC = plottingConvention
%
% outOfScreen: (0,0,1)
% north : (0,-1,0)
% east : (-1,0,0)
%
% ans = rotation
%
% Bunge Euler angles in degree
% phi1 Phi phi2
% 180 0 0
pC.outOfScreen
% ans = vector3d
% x y z
% 0 0 1
% this is now correct
Hi Vivian,
thank you for pointing this out. The reason I implemented it in this way, was that sometimes changing one axis requires a change of the second axis as well. I will include a try catch statement.
Ralf.
I think rotation.map in set.east/north etc. needs a second vector pair to define the correct rotation
otherwise you can accidentally change the first screen direction when setting the other one in the constructor: