Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
HepGeom::Reflect3D Class Reference

#include <Transform3D.h>

+ Inheritance diagram for HepGeom::Reflect3D:

Public Member Functions

 Reflect3D ()
 
 Reflect3D (double a, double b, double c, double d)
 
 Reflect3D (const Normal3D< double > &normal, const Point3D< double > &point)
 
- Public Member Functions inherited from HepGeom::Transform3D
 Transform3D ()
 
 Transform3D (const CLHEP::HepRotation &m, const CLHEP::Hep3Vector &v)
 
 Transform3D (const Point3D< double > &fr0, const Point3D< double > &fr1, const Point3D< double > &fr2, const Point3D< double > &to0, const Point3D< double > &to1, const Point3D< double > &to2)
 
 Transform3D (const Transform3D &m)
 
 ~Transform3D ()
 
const Transform3D_row operator[] (int) const
 
double operator() (int, int) const
 
double xx () const
 
double xy () const
 
double xz () const
 
double yx () const
 
double yy () const
 
double yz () const
 
double zx () const
 
double zy () const
 
double zz () const
 
double dx () const
 
double dy () const
 
double dz () const
 
Transform3Doperator= (const Transform3D &m)
 
void setIdentity ()
 
Transform3D inverse () const
 
Transform3D operator* (const Transform3D &b) const
 
void getDecomposition (Scale3D &scale, Rotate3D &rotation, Translate3D &translation) const
 
bool isNear (const Transform3D &t, double tolerance=2.2E-14) const
 
CLHEP::HepRotation getRotation () const
 
CLHEP::Hep3Vector getTranslation () const
 
bool operator== (const Transform3D &transform) const
 
bool operator!= (const Transform3D &transform) const
 

Protected Member Functions

 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)
 
- Protected Member Functions inherited from HepGeom::Transform3D
 Transform3D (double XX, double XY, double XZ, double DX, double YX, double YY, double YZ, double DY, double ZX, double ZY, double ZZ, double DZ)
 
void setTransform (double XX, double XY, double XZ, double DX, double YX, double YY, double YZ, double DY, double ZX, double ZY, double ZZ, double DZ)
 

Additional Inherited Members

- Static Public Attributes inherited from HepGeom::Transform3D
static const Transform3D Identity = Transform3D ()
 
- Protected Attributes inherited from HepGeom::Transform3D
double xx_
 
double xy_
 
double xz_
 
double dx_
 
double yx_
 
double yy_
 
double yz_
 
double dy_
 
double zx_
 
double zy_
 
double zz_
 
double dz_
 

Detailed Description

Constructs a reflection transformation. This class provides additional constructors for Transform3D and should not be used as a separate class.

Example of use:

Author
Evgue.nosp@m.ni.T.nosp@m.chern.nosp@m.iaev.nosp@m.@cern.nosp@m..ch

Definition at line 622 of file Transform3D.h.

Constructor & Destructor Documentation

◆ Reflect3D() [1/4]

HepGeom::Reflect3D::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 
)
inlineprotected

Definition at line 624 of file Transform3D.h.

627 : Transform3D(XX,XY,XZ,DX, YX,YY,YZ,DY, ZX,ZY,ZZ,DZ) {}

◆ Reflect3D() [2/4]

HepGeom::Reflect3D::Reflect3D ( )
inline

Default constructor: sets the Identity transformation.

Definition at line 632 of file Transform3D.h.

632: Transform3D() {}

◆ Reflect3D() [3/4]

HepGeom::Reflect3D::Reflect3D ( double  a,
double  b,
double  c,
double  d 
)

Constructor from four numbers. Sets reflection in a plane a*x+b*y+c*z+d=0

Definition at line 276 of file Transform3D.cc.

285 {
286 double ll = a*a+b*b+c*c;
287 if (ll == 0) {
288 std::cerr << "Reflect3D: zero normal" << std::endl;
289 setIdentity();
290 }else{
291 ll = 1/ll;
292 double aa = a*a*ll, ab = a*b*ll, ac = a*c*ll, ad = a*d*ll,
293 bb = b*b*ll, bc = b*c*ll, bd = b*d*ll,
294 cc = c*c*ll, cd = c*d*ll;
295 setTransform(-aa+bb+cc, -ab-ab, -ac-ac, -ad-ad,
296 -ab-ab, aa-bb+cc, -bc-bc, -bd-bd,
297 -ac-ac, -bc-bc, aa+bb-cc, -cd-cd);
298 }
299 }
void setTransform(double XX, double XY, double XZ, double DX, double YX, double YY, double YZ, double DY, double ZX, double ZY, double ZZ, double DZ)
Definition: Transform3D.h:186

◆ Reflect3D() [4/4]

HepGeom::Reflect3D::Reflect3D ( const Normal3D< double > &  normal,
const Point3D< double > &  point 
)
inline

Constructor from a plane given by its normal and origin.


The documentation for this class was generated from the following files: