Geant4  v4-10.4-release
 모두 클래스 네임스페이스들 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 Friends 매크로 그룹들 페이지들
클래스 | Public 멤버 함수 | 정적 Public 속성 | Protected 멤버 함수 | Protected 속성 | 모든 멤버 목록
HepGeom::Transform3D 클래스 참조

#include <Transform3D.h>

HepGeom::Transform3D에 대한 상속 다이어그램 :
HepGeom::Reflect3D HepGeom::Rotate3D HepGeom::Scale3D HepGeom::Translate3D HepGeom::ReflectX3D HepGeom::ReflectY3D HepGeom::ReflectZ3D HepGeom::RotateX3D HepGeom::RotateY3D HepGeom::RotateZ3D HepGeom::ScaleX3D HepGeom::ScaleY3D HepGeom::ScaleZ3D HepGeom::TranslateX3D HepGeom::TranslateY3D HepGeom::TranslateZ3D

클래스

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)
 

Protected 속성

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:

TranslateX3D, TranslateY3D, TranslateZ3D, Translate3D,
RotateX3D, RotateY3D, RotateZ3D, Rotate3D,
ScaleX3D, ScaleY3D, ScaleZ3D, Scale3D,
ReflectX3D, ReflectY3D, ReflectZ3D, Reflect3D.

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.

작성자
Evgue.nosp@m.ni.T.nosp@m.chern.nosp@m.iaev.nosp@m.@cern.nosp@m..ch

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::BasicVector3D< T >::cross(), setIdentity(), setTransform(), HepGeom::BasicVector3D< T >::x(), x1, x2, HepGeom::BasicVector3D< T >::y(), y1, y2, HepGeom::BasicVector3D< T >::z().

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
double HepGeom::Transform3D::dy ( ) const
inline
double HepGeom::Transform3D::dz ( ) const
inline
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
*
매개변수
scaleoutput: scaling transformation; if there was a reflection, then scale factor for z-component (scale(2,2)) will be negative.
rotationoutput: rotation transformaion.
translationoutput: translation transformaion.

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

다음을 참조함 : scale.

다음에 의해서 참조됨 : G4AssemblyVolume::AddPlacedAssembly(), G4AssemblyVolume::AddPlacedVolume(), G4Voxelizer::BuildVoxelLimits(), G4PhysicalVolumeModel::DescribeAndDescend(), G4MultiUnion::GetGlobalVector(), G4MultiUnion::GetLocalVector(), G4GDMLWriteSolids::MultiUnionWrite(), operator<<(), G4GDMLWriteStructure::PhysvolWrite(), G4ReflectionFactory::Place().

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_.

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

double HepGeom::Transform3D::xx ( ) const
inline
double HepGeom::Transform3D::xy ( ) const
inline
double HepGeom::Transform3D::xz ( ) const
inline
double HepGeom::Transform3D::yx ( ) const
inline
double HepGeom::Transform3D::yy ( ) const
inline
double HepGeom::Transform3D::yz ( ) const
inline
double HepGeom::Transform3D::zx ( ) const
inline
double HepGeom::Transform3D::zy ( ) const
inline
double HepGeom::Transform3D::zz ( ) const
inline

멤버 데이타 문서화

double HepGeom::Transform3D::dx_
protected

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

다음에 의해서 참조됨 : dx(), inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform().

double HepGeom::Transform3D::dy_
protected

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

다음에 의해서 참조됨 : dy(), inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform().

double HepGeom::Transform3D::dz_
protected

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

다음에 의해서 참조됨 : dz(), inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform().

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

Global identity transformation.

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

다음에 의해서 참조됨 : G4GMocrenFileSceneHandler::Detector::clear(), G4GDMLWriteStructure::TraverseVolumeTree(), G4GDMLWrite::Write().

double HepGeom::Transform3D::xx_
protected

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

다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), xx().

double HepGeom::Transform3D::xy_
protected

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

다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), xy().

double HepGeom::Transform3D::xz_
protected

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

다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), xz().

double HepGeom::Transform3D::yx_
protected

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

다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), yx().

double HepGeom::Transform3D::yy_
protected

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

다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), yy().

double HepGeom::Transform3D::yz_
protected

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

다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), yz().

double HepGeom::Transform3D::zx_
protected

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

다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), zx().

double HepGeom::Transform3D::zy_
protected

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

다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), zy().

double HepGeom::Transform3D::zz_
protected

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

다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), zz().


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