18 #include "cal3d/global.h"
44 inline CalMatrix() : dxdx(0.0), dydx(0.0), dzdx(0.0),
45 dxdy(0.0), dydy(0.0), dzdy(0.0),
46 dxdz(0.0), dydz(0.0), dzdz(0.0)
74 dxdx=m.dxdx; dxdy=m.dxdy; dxdz=m.dxdz;
75 dydx=m.dydx; dydy=m.dydy; dydz=m.dydz;
76 dzdx=m.dzdx; dzdy=m.dzdy; dzdz=m.dzdz;
78 inline void operator *= (
const CalMatrix &m)
80 float ndxdx=m.dxdx*dxdx+m.dxdy*dydx+m.dxdz*dzdx;
81 float ndydx=m.dydx*dxdx+m.dydy*dydx+m.dydz*dzdx;
82 float ndzdx=m.dzdx*dxdx+m.dzdy*dydx+m.dzdz*dzdx;
84 float ndxdy=m.dxdx*dxdy+m.dxdy*dydy+m.dxdz*dzdy;
85 float ndydy=m.dydx*dxdy+m.dydy*dydy+m.dydz*dzdy;
86 float ndzdy=m.dzdx*dxdy+m.dzdy*dydy+m.dzdz*dzdy;
88 float ndxdz=m.dxdx*dxdz+m.dxdy*dydz+m.dxdz*dzdz;
89 float ndydz=m.dydx*dxdz+m.dydy*dydz+m.dydz*dzdz;
90 float ndzdz=m.dzdx*dxdz+m.dzdy*dydz+m.dzdz*dzdz;
103 inline void operator *= (
float factor)
115 inline void blend(
float factor,
const CalMatrix& m)
117 dxdx += m.dxdx*factor;
118 dydx += m.dydx*factor;
119 dzdx += m.dzdx*factor;
120 dxdy += m.dxdy*factor;
121 dydy += m.dydy*factor;
122 dzdy += m.dzdy*factor;
123 dxdz += m.dxdz*factor;
124 dydz += m.dydz*factor;
125 dzdz += m.dzdz*factor;
130 return dxdx * (dydy*dzdz-dydz*dzdy)
131 -dxdy* ( dydx*dzdz-dzdx*dydz)
132 +dxdz* (dydx*dzdy-dzdx*dydy);
The matrix class.
Definition: matrix.h:34
The quaternion class.
Definition: quaternion.h:35