ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/cal/cal/mat3.cal
(Generate patch)

Comparing ray/src/cal/cal/mat3.cal (file contents):
Revision 1.2 by greg, Tue Mar 24 01:41:40 2009 UTC vs.
Revision 1.3 by greg, Fri Dec 2 02:04:49 2022 UTC

# Line 1 | Line 1
1   { RCSid $Id$ }
2   {
3          3x3 Matrix operations
4 +
5 +        i's are rows, j's are columns, indexed from 0
6   }
7  
8 + sq(x) : x*x;
9 +
10   MatDot(A,B,i,j) : A(i,0)*B(0,j) + A(i,1)*B(1,j) + A(i,2)*B(2,j);
11  
12   MatDotVec(A,v,i) : A(i,0)*v(0) + A(i,1)*v(1) + A(i,2)*v(2);
# Line 18 | Line 22 | Det(M) : M(0,0)*MinorDet(M,0,0) +
22  
23   Inv(M,i,j) : MinorDet(M,j,i) / Det(M);
24  
25 + NormV(v,i) : v(i) / sqrt(sq(v(0))+sq(v(1))+sq(v(2)));
26 +
27 + { Rotation matrix computed from normalized quaternion [W X Y Z] }
28 +
29 + NormQ(q,i) : q(i) / sqrt(sq(q(0))+sq(q(1))+sq(q(2))+sq(q(3)));
30 +
31 + RotMatQ(q,i,j) : select(3*i+j+1,
32 +        1 - 2*(sq(q(2))+sq(q(3))),
33 +                2*(q(1)*q(2) - q(0)*q(3)),
34 +                2*(q(0)*q(2) + q(1)*q(3)),
35 +        2*(q(1)*q(2) + q(0)*q(3)),
36 +                1 - 2*(sq(q(1))+sq(q(3))),
37 +                2*(q(2)*q(3) - q(0)*q(1)),
38 +        2*(q(1)*q(3) - q(0)*q(2)),
39 +                2*(q(0)*q(1) + q(2)*q(3)),
40 +                1 - 2*(sq(q(1))+sq(q(2))) );

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines