12     double vx = 
x(),    vy = 
y(),    vz = 
z();
 
   13     double xx = m.
xx(), xy = m.
xy(), xz = m.
xz();
 
   14     double yx = m.
yx(), yy = m.
yy(), yz = m.
yz();
 
   15     double zx = m.
zx(), zy = m.
zy(), zz = m.
zz();
 
   16     set((yy*zz-yz*zy)*vx+(yz*zx-yx*zz)*vy+(yx*zy-yy*zx)*vz,
 
   17     (zy*xz-zz*xy)*vx+(zz*xx-zx*xz)*vy+(zx*xy-zy*xx)*vz,
 
   18     (xy*yz-xz*yy)*vx+(xz*yx-xx*yz)*vy+(xx*yy-xy*yx)*vz);
 
   25     double vx = v.
x(),  vy = v.
y(),  vz = v.
z();
 
   26     double xx = m.
xx(), xy = m.
xy(), xz = m.
xz();
 
   27     double yx = m.
yx(), yy = m.
yy(), yz = m.
yz();
 
   28     double zx = m.
zx(), zy = m.
zy(), zz = m.
zz();
 
   30       ((yy*zz-yz*zy)*vx+(yz*zx-yx*zz)*vy+(yx*zy-yy*zx)*vz,
 
   31        (zy*xz-zz*xy)*vx+(zz*xx-zx*xz)*vy+(zx*xy-zy*xx)*vz,
 
   32        (xy*yz-xz*yy)*vx+(xz*yx-xx*yz)*vy+(xx*yy-xy*yx)*vz);
 
   38     double vx = 
x(),    vy = 
y(),    vz = 
z();
 
   39     double xx = m.
xx(), xy = m.
xy(), xz = m.
xz();
 
   40     double yx = m.
yx(), yy = m.
yy(), yz = m.
yz();
 
   41     double zx = m.
zx(), zy = m.
zy(), zz = m.
zz();
 
   42     set((yy*zz-yz*zy)*vx+(yz*zx-yx*zz)*vy+(yx*zy-yy*zx)*vz,
 
   43     (zy*xz-zz*xy)*vx+(zz*xx-zx*xz)*vy+(zx*xy-zy*xx)*vz,
 
   44     (xy*yz-xz*yy)*vx+(xz*yx-xx*yz)*vy+(xx*yy-xy*yx)*vz);
 
   51     double vx = v.
x(),  vy = v.
y(),  vz = v.
z();
 
   52     double xx = m.
xx(), xy = m.
xy(), xz = m.
xz();
 
   53     double yx = m.
yx(), yy = m.
yy(), yz = m.
yz();
 
   54     double zx = m.
zx(), zy = m.
zy(), zz = m.
zz();
 
   56       ((yy*zz-yz*zy)*vx+(yz*zx-yx*zz)*vy+(yx*zy-yy*zx)*vz,
 
   57        (zy*xz-zz*xy)*vx+(zz*xx-zx*xz)*vy+(zx*xy-zy*xx)*vz,
 
   58        (xy*yz-xz*yy)*vx+(xz*yx-xx*yz)*vy+(xx*yy-xy*yx)*vz);
 
void set(T x1, T y1, T z1)
 
static constexpr double m
 
Normal3D< float > operator*(const Transform3D &m, const Normal3D< float > &v)