120 #ifndef HEP_TRANSFROM3D_H
121 #define HEP_TRANSFROM3D_H
124 #include "CLHEP/Vector/ThreeVector.h"
128 template<
class T>
class Point3D;
129 template<
class T>
class Vector3D;
130 template<
class T>
class Normal3D;
180 double YX,
double YY,
double YZ,
double DY,
181 double ZX,
double ZY,
double ZZ,
double DZ)
182 : xx_(XX), xy_(XY), xz_(XZ), dx_(DX),
183 yx_(YX), yy_(YY), yz_(YZ), dy_(DY),
184 zx_(ZX), zy_(ZY), zz_(ZZ), dz_(DZ) {}
188 double YX,
double YY,
double YZ,
double DY,
189 double ZX,
double ZY,
double ZZ,
double DZ) {
190 xx_ = XX; xy_ = XY; xz_ = XZ; dx_ = DX;
191 yx_ = YX; yy_ = YY; yz_ = YZ; dy_ = DY;
192 zx_ = ZX; zy_ = ZY; zz_ = ZZ; dz_ = DZ;
201 class Transform3D_row {
213 : xx_(1), xy_(0), xz_(0), dx_(0),
214 yx_(0), yy_(1), yz_(0), dy_(0),
215 zx_(0), zy_(0), zz_(1), dz_(0) {}
233 : xx_(m.xx_), xy_(m.xy_), xz_(m.xz_), dx_(m.dx_),
234 yx_(m.yx_), yy_(m.yy_), yz_(m.yz_), dy_(m.dy_),
235 zx_(m.zx_), zy_(m.zy_), zz_(m.zz_), dz_(m.dz_) {}
246 inline const Transform3D_row
operator [] (
int)
const;
291 xx_= m.xx_; xy_= m.xy_; xz_= m.xz_; dx_= m.dx_;
292 yx_= m.yx_; yy_= m.yy_; yz_= m.yz_; dy_= m.dy_;
293 zx_= m.zx_; zy_= m.zy_; zz_= m.zz_; dz_= m.dz_;
300 xy_= xz_= dx_= yx_= yz_= dy_= zx_= zy_= dz_= 0; xx_= yy_= zz_= 1;
375 class Rotate3D :
public Transform3D {
430 class RotateX3D :
public Rotate3D {
439 double cosa = std::cos(a), sina = std::sin(a);
440 setTransform(1,0,0,0, 0,cosa,-sina,0, 0,sina,cosa,0);
458 class RotateY3D :
public Rotate3D {
467 double cosa = std::cos(a), sina = std::sin(a);
468 setTransform(cosa,0,sina,0, 0,1,0,0, -sina,0,cosa,0);
486 class RotateZ3D :
public Rotate3D {
495 double cosa = std::cos(a), sina = std::sin(a);
496 setTransform(cosa,-sina,0,0, sina,cosa,0,0, 0,0,1,0);
516 class Translate3D :
public Transform3D {
529 :
Transform3D(1,0,0,x, 0,1,0,y, 0,0,1,z) {}
546 class TranslateX3D :
public Translate3D {
571 class TranslateY3D :
public Translate3D {
596 class TranslateZ3D :
public Translate3D {
623 class Reflect3D :
public Transform3D {
626 double YX,
double YY,
double YZ,
double DY,
627 double ZX,
double ZY,
double ZZ,
double DZ)
628 :
Transform3D(XX,XY,XZ,DX, YX,YY,YZ,DY, ZX,ZY,ZZ,DZ) {}
661 class ReflectX3D :
public Reflect3D {
665 ReflectX3D(
double x=0) :
Reflect3D(-1,0,0,x+x, 0,1,0,0, 0,0,1,0) {}
682 class ReflectY3D :
public Reflect3D {
686 ReflectY3D(
double y=0) :
Reflect3D(1,0,0,0, 0,-1,0,y+y, 0,0,1,0) {}
703 class ReflectZ3D :
public Reflect3D {
707 ReflectZ3D(
double z=0) :
Reflect3D(1,0,0,0, 0,1,0,0, 0,0,-1,z+z) {}
726 class Scale3D :
public Transform3D {
736 :
Transform3D(x,0,0,0, 0,y,0,0, 0,0,z,0) {}
741 :
Transform3D(s,0,0,0, 0,s,0,0, 0,0,s,0) {}
758 class ScaleX3D :
public Scale3D {
783 class ScaleY3D :
public Scale3D {
808 class ScaleZ3D :
public Scale3D {
819 #ifdef ENABLE_BACKWARDS_COMPATIBILITY
840 #include "CLHEP/Geometry/Transform3D.icc"
Scale3D(double x, double y, double z)
Reflect3D(double XX, double XY, double XZ, double DX, double YX, double YY, double YZ, double DY, double ZX, double ZY, double ZZ, double DZ)
Translate3D(double x, double y, double z)