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)
188 double YX,
double YY,
double YZ,
double DY,
189 double ZX,
double ZY,
double ZZ,
double DZ) {
201 class Transform3D_row {
375 class Rotate3D :
public Transform3D {
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) {}
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"
Reflect3D(const Normal3D< double > &normal, const Point3D< double > &point)
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)
Reflect3D(double a, double b, double c, double d)
Rotate3D(const CLHEP::HepRotation &m)
Rotate3D(double a, const Vector3D< double > &v)
Rotate3D(double a, const Point3D< double > &p1, const Point3D< double > &p2)
Rotate3D(const Point3D< double > &fr1, const Point3D< double > &fr2, const Point3D< double > &to1, const Point3D< double > &to2)
Scale3D(double x, double y, double z)
Translate3D(double x, double y, double z)
Translate3D(const CLHEP::Hep3Vector &v)