16 #ifndef MOAB_AFFINE_XFORM_HPP
17 #define MOAB_AFFINE_XFORM_HPP
58 static inline AffineXform scale(
const double* fractions,
const double* point );
107 inline bool scale()
const;
129 : mMatrix( three_by_three ), mOffset( trans )
149 const Matrix3 m1( c, -a[2] * s, a[1] * s, a[2] * s, c, -a[0] * s, -a[1] * s, a[0] * s, c );
155 double i = plane_normal[0];
156 double j = plane_normal[1];
157 double k = plane_normal[2];
158 Matrix3 m( j * j + k * k - i * i, -2.0 * i * j, -2.0 * i * k, -2.0 * i * j, i * i + k * k - j * j, -2.0 * j * k,
159 -2.0 * i * k, -2.0 * j * k, i * i + j * j - k * k );
160 m *= 1.0 / ( i * i + j * j + k * k );
176 double fs[] = { f, f, f };
182 double offset[] = { p[0] * ( 1 - f[0] ), p[1] * ( 1 - f[1] ), p[2] * ( 1 - f[2] ) };
217 double input[] = { in_out[0], in_out[1], in_out[2] };
234 return fabs( fabs(
mMatrix.
determinant() ) - 1 ) > std::numeric_limits< double >::epsilon();