I decided to test my LDCad scripting api whith this as an exercise, it might hold some info for you.
Source:
Output:
Source:
Code:
src=ldc.matrix(
0, -4, 0,
4.243, 0, -4.243,
0, -8, 0,
-4.243, 0, -4.243
);
print('org: ', src);
a,b,c,d,e,f,g,h,i=src:getOri();
vx=ldc.vector(a, b, c);
vy=ldc.vector(d, e, f);
vz=ldc.vector(g, h, i);
lx=vx:length();
ly=vy:length();
lz=vz:length();
vx:normalize();
vy:normalize();
vz:normalize();
ori=ldc.matrix(vx, vy, vz);
print('ori: ', ori);
scale=ldc.matrix(
lx, 0, 0,
0, ly, 0,
0, 0, lz
);
print('scale: ', scale);
test=scale*ori;
print('scale*ori: ', test);
Output:
Code:
org: 0 -4 0 4.243 0 -4.243 0 -8 0 -4.243 0 -4.243
ori: 0 0 0 0.707 0 -0.707 0 -1 0 -0.707 0 -0.707
scale: 0 0 0 6.001 0 0 0 8 0 0 0 6.001
scale*ori: 0 0 0 4.243 0 -4.243 0 -8 0 -4.243 0 -4.243