9 #include <utl/config.h>
10 #include <utl/TransformationMatrix.h>
11 #include <CLHEP/Geometry/Transform3D.h>
44 class TransformWithDistance :
public HepGeom::Transform3D {
46 TransformWithDistance(
const HepGeom::Transform3D& t)
47 : HepGeom::Transform3D(t) { }
48 double Distance(
const TransformWithDistance& t) {
50 (xx_-t.xx_)*(xx_-t.xx_) + (xy_-t.xy_)*(xy_-t.xy_) + (xz_-t.xz_)*(xz_-t.xz_) +
51 (yx_-t.yx_)*(yx_-t.yx_) + (yy_-t.yy_)*(yy_-t.yy_) + (yz_-t.yz_)*(yz_-t.yz_) +
52 (zx_-t.zx_)*(zx_-t.zx_) + (zy_-t.zy_)*(zy_-t.zy_) + (zz_-t.zz_)*(zz_-t.zz_) +
53 (dx_-t.dx_)*(dx_-t.dx_) + (dy_-t.dy_)*(dy_-t.dy_) + (dz_-t.dz_)*(dz_-t.dz_);
70 boost::tuple<TransformationMatrix, TransformationMatrix>
74 HepGeom::Scale3D scale;
75 HepGeom::Rotate3D rotation;
76 HepGeom::Translate3D translation;
78 fTransform.getDecomposition(scale, rotation, translation);
104 const double x,
const double y,
const double z)
118 HepGeom::Rotate3D(angle, HepGeom::Vector3D<double>(v.get<0>(), v.get<1>(), v.get<2>()))
155 const double x2,
const double y2,
const double z2,
156 const double x3,
const double y3,
const double z3)
158 class TC :
public HepGeom::Transform3D {
160 TC(
const double xx,
const double xy,
const double xz,
161 const double yx,
const double yy,
const double yz,
162 const double zx,
const double zy,
const double zz)
163 : HepGeom::Transform3D(xx, xy, xz, 0,
186 s << (i ?
" " :
"") <<
'[';
Stream & operator<<(Stream &s, MessageLoggerConfig &mlc)
Applies the configuration to the given stream.