Geant4  v4-10.4-release
HepGeom::Transform3D 클래스 참조

#include <Transform3D.h>

HepGeom::Transform3D에 대한 상속 다이어그램 :

## 클래스

class  Transform3D_row

## Public 멤버 함수

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

## 정적 Public 속성

static DLL_API const Transform3D Identity = Transform3D ()

## Protected 멤버 함수

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)

double xx_

double xy_

double xz_

double dx_

double yx_

double yy_

double yz_

double dy_

double zx_

double zy_

double zz_

double dz_

## 상세한 설명

Class for transformation of 3D geometrical objects. It allows different translations, rotations, scalings and reflections. Several specialized classes are derived from it:

The idea behind these classes is to provide some additional constructors for Transform3D, they normally should not be used as separate classes.

Example:

*

Remark: For the reason that the operator* is left associative, the notation

* v2 = m3*(m2*(m1*v1));
*

is much more effective then the notation

* v2 = m3*m2*m1*v1;
*

In the first case three operations Transform3D*Vector3D are executed, in the second case two operations Transform3D*Transform3D and one Transform3D*Vector3D are performed. Transform3D*Transform3D is roughly three times slower than Transform3D*Vector3D.

Transform3D.h 파일의 171 번째 라인에서 정의되었습니다.

## 생성자 & 소멸자 문서화

 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 )
inlineprotected

Transform3D.h 파일의 178 번째 라인에서 정의되었습니다.

 HepGeom::Transform3D::Transform3D ( )
inline

Default constructor - sets the Identity transformation.

Transform3D.h 파일의 211 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : inverse(), operator*().

 HepGeom::Transform3D::Transform3D ( const CLHEP::HepRotation & m, const CLHEP::Hep3Vector & v )
inline

Constructor: rotation and then translation.

 HepGeom::Transform3D::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 )

Constructor: transformation of basis (assumed - no reflection).

Transform3D.cc 파일의 63 번째 라인에서 정의되었습니다.

 HepGeom::Transform3D::Transform3D ( const Transform3D & m )
inline

Copy constructor.

Transform3D.h 파일의 231 번째 라인에서 정의되었습니다.

 HepGeom::Transform3D::~Transform3D ( )
inline

Destructor. Virtual for now as some persistency mechanism needs that, in future releases this might go away again.

Transform3D.h 파일의 241 번째 라인에서 정의되었습니다.

## 멤버 함수 문서화

 double HepGeom::Transform3D::dx ( ) const
inline

Gets dx-element of the transformation matrix.

Transform3D.h 파일의 279 번째 라인에서 정의되었습니다.

다음을 참조함 : dx_.

 double HepGeom::Transform3D::dy ( ) const
inline

Gets dy-element of the transformation matrix.

Transform3D.h 파일의 282 번째 라인에서 정의되었습니다.

다음을 참조함 : dy_.

 double HepGeom::Transform3D::dz ( ) const
inline

Gets dz-element of the transformation matrix.

Transform3D.h 파일의 285 번째 라인에서 정의되었습니다.

다음을 참조함 : dz_.

 void HepGeom::Transform3D::getDecomposition ( Scale3D & scale, Rotate3D & rotation, Translate3D & translation ) const

Decomposition of general transformation. This function gets decomposition of the transformation in three consequentive specific transformations: Scale3D, then Rotate3D, then Translate3, i.e.

* Transform3D = Translate3D * Rotate3D * Scale3D
*
매개변수
 scale output: scaling transformation; if there was a reflection, then scale factor for z-component (scale(2,2)) will be negative. rotation output: rotation transformaion. translation output: translation transformaion.

Transform3D.cc 파일의 174 번째 라인에서 정의되었습니다.

다음을 참조함 : scale.

 CLHEP::HepRotation HepGeom::Transform3D::getRotation ( ) const
inline
 CLHEP::Hep3Vector HepGeom::Transform3D::getTranslation ( ) const
inline
 Transform3D HepGeom::Transform3D::inverse ( ) const
 bool HepGeom::Transform3D::isNear ( const Transform3D & t, double tolerance = 2.2E-14 ) const

Returns true if the difference between corresponding matrix elements is less than the tolerance.

Transform3D.cc 파일의 204 번째 라인에서 정의되었습니다.

다음을 참조함 : dx_, dy_, dz_, xx_, xy_, xz_, yx_, yy_, yz_, zx_, zy_, zz_.

 bool HepGeom::Transform3D::operator!= ( const Transform3D & transform ) const
inline

Test for inequality.

Transform3D.h 파일의 353 번째 라인에서 정의되었습니다.

다음을 참조함 : operator==().

 double HepGeom::Transform3D::operator() ( int i, int j ) const

Fortran-style subscripting: returns (i,j) element of the matrix.

Transform3D.cc 파일의 24 번째 라인에서 정의되었습니다.

다음을 참조함 : dx_, dy_, dz_, xx_, xy_, xz_, yx_, yy_, yz_, zx_, zy_, zz_.

 Transform3D HepGeom::Transform3D::operator* ( const Transform3D & b ) const

Transformation by another Transform3D.

Transform3D.cc 파일의 52 번째 라인에서 정의되었습니다.

다음을 참조함 : dx_, dy_, dz_, Transform3D(), xx_, xy_, xz_, yx_, yy_, yz_, zx_, zy_, zz_.

 Transform3D& HepGeom::Transform3D::operator= ( const Transform3D & m )
inline

Assignment.

Transform3D.h 파일의 289 번째 라인에서 정의되었습니다.

다음을 참조함 : dx_, dy_, dz_, xx_, xy_, xz_, yx_, yy_, yz_, zx_, zy_, zz_.

 bool HepGeom::Transform3D::operator== ( const Transform3D & transform ) const

Test for equality.

Transform3D.cc 파일의 221 번째 라인에서 정의되었습니다.

다음을 참조함 : dx_, dy_, dz_, xx_, xy_, xz_, yx_, yy_, yz_, zx_, zy_, zz_.

다음에 의해서 참조됨 : operator!=().

 const Transform3D_row HepGeom::Transform3D::operator[] ( int ) const
inline

Returns object of the helper class for C-style subscripting r[i][j]

 void HepGeom::Transform3D::setIdentity ( )
inline

Sets the Identity transformation.

Transform3D.h 파일의 298 번째 라인에서 정의되었습니다.

다음을 참조함 : dx_, dy_, dz_, xx_, xy_, xz_, yx_, yy_, yz_, zx_, zy_, zz_.

다음에 의해서 참조됨 : HepGeom::Reflect3D::Reflect3D(), Transform3D().

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

Transform3D.h 파일의 186 번째 라인에서 정의되었습니다.

다음을 참조함 : dx_, dy_, dz_, xx_, xy_, xz_, yx_, yy_, yz_, zx_, zy_, zz_.

 double HepGeom::Transform3D::xx ( ) const
inline
 double HepGeom::Transform3D::xy ( ) const
inline

Gets xy-element of the transformation matrix.

Transform3D.h 파일의 255 번째 라인에서 정의되었습니다.

다음을 참조함 : xy_.

 double HepGeom::Transform3D::xz ( ) const
inline

Gets xz-element of the transformation matrix.

Transform3D.h 파일의 258 번째 라인에서 정의되었습니다.

다음을 참조함 : xz_.

 double HepGeom::Transform3D::yx ( ) const
inline

Gets yx-element of the transformation matrix.

Transform3D.h 파일의 261 번째 라인에서 정의되었습니다.

다음을 참조함 : yx_.

 double HepGeom::Transform3D::yy ( ) const
inline
 double HepGeom::Transform3D::yz ( ) const
inline

Gets yz-element of the transformation matrix.

Transform3D.h 파일의 267 번째 라인에서 정의되었습니다.

다음을 참조함 : yz_.

 double HepGeom::Transform3D::zx ( ) const
inline

Gets zx-element of the transformation matrix.

Transform3D.h 파일의 270 번째 라인에서 정의되었습니다.

다음을 참조함 : zx_.

 double HepGeom::Transform3D::zy ( ) const
inline

Gets zy-element of the transformation matrix.

Transform3D.h 파일의 273 번째 라인에서 정의되었습니다.

다음을 참조함 : zy_.

 double HepGeom::Transform3D::zz ( ) const
inline

## 멤버 데이타 문서화

 double HepGeom::Transform3D::dx_
protected

Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.

 double HepGeom::Transform3D::dy_
protected

Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.

 double HepGeom::Transform3D::dz_
protected

Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.

 const Transform3D HepGeom::Transform3D::Identity = Transform3D ()
static

Global identity transformation.

Transform3D.h 파일의 197 번째 라인에서 정의되었습니다.

 double HepGeom::Transform3D::xx_
protected

Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.

 double HepGeom::Transform3D::xy_
protected

Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.

 double HepGeom::Transform3D::xz_
protected

Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.

 double HepGeom::Transform3D::yx_
protected

Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.

 double HepGeom::Transform3D::yy_
protected

Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.

 double HepGeom::Transform3D::yz_
protected

Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.

 double HepGeom::Transform3D::zx_
protected

Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.

 double HepGeom::Transform3D::zy_
protected

Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.

 double HepGeom::Transform3D::zz_
protected

Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.

이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: