#include <Transform3D.h>
클래스 | |
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 |
Transform3D & | operator= (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
is much more effective then the notation
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 번째 라인에서 정의되었습니다.
|
inlineprotected |
Transform3D.h 파일의 178 번째 라인에서 정의되었습니다.
|
inline |
Default constructor - sets the Identity transformation.
Transform3D.h 파일의 211 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : inverse(), operator*().
|
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().
|
inline |
Copy constructor.
Transform3D.h 파일의 231 번째 라인에서 정의되었습니다.
|
inline |
Destructor. Virtual for now as some persistency mechanism needs that, in future releases this might go away again.
Transform3D.h 파일의 241 번째 라인에서 정의되었습니다.
|
inline |
Gets dx-element of the transformation matrix.
Transform3D.h 파일의 279 번째 라인에서 정의되었습니다.
다음을 참조함 : dx_.
다음에 의해서 참조됨 : G4BoundingEnvelope::BoundingBoxVsVoxelLimits(), G4ReflectedSolid::BoundingLimits(), G4BoundingEnvelope::CalculateExtent(), G4PhysicalVolumeModel::DescribeAndDescend(), HepGeom::operator*(), operator<<(), HepGeom::Point3D< float >::transform(), HepGeom::Point3D< double >::transform().
|
inline |
Gets dy-element of the transformation matrix.
Transform3D.h 파일의 282 번째 라인에서 정의되었습니다.
다음을 참조함 : dy_.
다음에 의해서 참조됨 : G4BoundingEnvelope::BoundingBoxVsVoxelLimits(), G4ReflectedSolid::BoundingLimits(), G4BoundingEnvelope::CalculateExtent(), G4PhysicalVolumeModel::DescribeAndDescend(), HepGeom::operator*(), operator<<(), HepGeom::Point3D< float >::transform(), HepGeom::Point3D< double >::transform().
|
inline |
Gets dz-element of the transformation matrix.
Transform3D.h 파일의 285 번째 라인에서 정의되었습니다.
다음을 참조함 : dz_.
다음에 의해서 참조됨 : G4BoundingEnvelope::BoundingBoxVsVoxelLimits(), G4ReflectedSolid::BoundingLimits(), G4BoundingEnvelope::CalculateExtent(), G4PhysicalVolumeModel::DescribeAndDescend(), HepGeom::operator*(), operator<<(), HepGeom::Point3D< float >::transform(), HepGeom::Point3D< double >::transform().
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.
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.
다음에 의해서 참조됨 : G4AssemblyVolume::AddPlacedAssembly(), G4AssemblyVolume::AddPlacedVolume(), G4Voxelizer::BuildVoxelLimits(), G4PhysicalVolumeModel::DescribeAndDescend(), G4MultiUnion::GetGlobalVector(), G4MultiUnion::GetLocalVector(), G4GDMLWriteSolids::MultiUnionWrite(), operator<<(), G4GDMLWriteStructure::PhysvolWrite(), G4ReflectionFactory::Place().
|
inline |
Extracts the rotation matrix. This functions is obsolete - use getDecomposition() instead.
다음에 의해서 참조됨 : G4AssemblyVolume::AddPlacedAssembly(), G4AssemblyVolume::AddPlacedVolume(), G4GMocrenFileSceneHandler::AddPrimitive(), G4GMocrenFileSceneHandler::AddSolid(), G4ReflectedSolid::BoundingLimits(), G4ReflectedSolid::CalculateExtent(), G4GMocrenFileSceneHandler::EndSavingGdd(), G4DisplacedSolid::G4DisplacedSolid(), G4PVPlacement::G4PVPlacement(), operator<<(), G4GDMLWriteStructure::PhysvolWrite(), G4VisCommandSceneAddLogo::SetNewValue(), G4VisCommandSceneAddScale::SetNewValue(), G4ReflectedSolid::StreamInfo(), G4MultiUnion::StreamInfo().
|
inline |
Extracts the translation vector. This functions is obsolete - use getDecomposition() instead.
다음에 의해서 참조됨 : G4AssemblyVolume::AddPlacedAssembly(), G4AssemblyVolume::AddPlacedVolume(), G4GMocrenFileSceneHandler::AddPrimitive(), G4GMocrenFileSceneHandler::AddSolid(), G4ReflectedSolid::BoundingLimits(), G4Voxelizer::BuildVoxelLimits(), G4ReflectedSolid::CalculateExtent(), G4GMocrenFileSceneHandler::EndSavingGdd(), G4DisplacedSolid::G4DisplacedSolid(), G4GDMLWriteSolids::MultiUnionWrite(), operator<<(), G4GDMLWriteStructure::PhysvolWrite(), G4VisCommandSceneAddLogo::SetNewValue(), G4VisCommandSceneAddScale::SetNewValue(), G4ReflectedSolid::StreamInfo(), G4MultiUnion::StreamInfo(), G4BoundingEnvelope::TransformVertices().
Transform3D HepGeom::Transform3D::inverse | ( | ) | const |
Returns the inverse transformation.
Transform3D.cc 파일의 142 번째 라인에서 정의되었습니다.
다음을 참조함 : dx_, dy_, dz_, Transform3D(), xx_, xy_, xz_, yx_, yy_, yz_, zx_, zy_, zz_.
다음에 의해서 참조됨 : G4PhysicalVolumeModel::CalculateExtent(), G4PhysicalVolumeModel::DescribeAndDescend(), G4PhysicalVolumeModel::DescribeSolid(), G4ScoringCylinder::Draw(), G4ScoringBox::Draw(), G4ScoringCylinder::DrawColumn(), G4ScoringBox::DrawColumn(), G4GMocrenFileSceneHandler::ExtractDetector(), G3toG4BuildPVTree(), G3toG4MANY(), G4MultiUnion::GetLocalPoint(), G4MultiUnion::GetLocalVector(), G4ReflectedSolid::GetTransform3D(), GetTransform3D(), G4ReflectionFactory::Place(), G4ReflectionFactory::ReflectPVPlacement(), SubstractSolids(), G4GDMLWriteStructure::TraverseVolumeTree().
bool HepGeom::Transform3D::isNear | ( | const Transform3D & | t, |
double | tolerance = 2.2E-14 |
||
) | const |
|
inline |
Transform3D HepGeom::Transform3D::operator* | ( | const Transform3D & | b | ) | const |
|
inline |
bool HepGeom::Transform3D::operator== | ( | const Transform3D & | transform | ) | const |
|
inline |
Returns object of the helper class for C-style subscripting r[i][j]
|
inline |
|
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().
|
inline |
Gets xx-element of the transformation matrix.
Transform3D.h 파일의 252 번째 라인에서 정의되었습니다.
다음을 참조함 : xx_.
다음에 의해서 참조됨 : G4BoundingEnvelope::BoundingBoxVsVoxelLimits(), G4ReflectedSolid::BoundingLimits(), G4BoundingEnvelope::CalculateExtent(), G4BoundingEnvelope::FindScaleFactor(), G4GDMLWriteSolids::MultiUnionWrite(), HepGeom::operator*(), operator<<(), G4GDMLWriteSolids::ScaledWrite(), HepGeom::Normal3D< float >::transform(), HepGeom::Vector3D< float >::transform(), HepGeom::Point3D< float >::transform(), HepGeom::Normal3D< double >::transform(), HepGeom::Vector3D< double >::transform(), HepGeom::Point3D< double >::transform(), G4BoundingEnvelope::TransformVertices().
|
inline |
Gets xy-element of the transformation matrix.
Transform3D.h 파일의 255 번째 라인에서 정의되었습니다.
다음을 참조함 : xy_.
다음에 의해서 참조됨 : G4BoundingEnvelope::CalculateExtent(), G4BoundingEnvelope::FindScaleFactor(), G4GDMLWriteSolids::MultiUnionWrite(), HepGeom::operator*(), operator<<(), HepGeom::Normal3D< float >::transform(), HepGeom::Vector3D< float >::transform(), HepGeom::Point3D< float >::transform(), HepGeom::Normal3D< double >::transform(), HepGeom::Vector3D< double >::transform(), HepGeom::Point3D< double >::transform().
|
inline |
Gets xz-element of the transformation matrix.
Transform3D.h 파일의 258 번째 라인에서 정의되었습니다.
다음을 참조함 : xz_.
다음에 의해서 참조됨 : G4BoundingEnvelope::CalculateExtent(), G4BoundingEnvelope::FindScaleFactor(), G4GDMLWriteSolids::MultiUnionWrite(), HepGeom::operator*(), operator<<(), HepGeom::Normal3D< float >::transform(), HepGeom::Vector3D< float >::transform(), HepGeom::Point3D< float >::transform(), HepGeom::Normal3D< double >::transform(), HepGeom::Vector3D< double >::transform(), HepGeom::Point3D< double >::transform().
|
inline |
Gets yx-element of the transformation matrix.
Transform3D.h 파일의 261 번째 라인에서 정의되었습니다.
다음을 참조함 : yx_.
다음에 의해서 참조됨 : G4BoundingEnvelope::CalculateExtent(), G4BoundingEnvelope::FindScaleFactor(), G4GDMLWriteSolids::MultiUnionWrite(), HepGeom::operator*(), operator<<(), HepGeom::Normal3D< float >::transform(), HepGeom::Vector3D< float >::transform(), HepGeom::Point3D< float >::transform(), HepGeom::Normal3D< double >::transform(), HepGeom::Vector3D< double >::transform(), HepGeom::Point3D< double >::transform().
|
inline |
Gets yy-element of the transformation matrix.
Transform3D.h 파일의 264 번째 라인에서 정의되었습니다.
다음을 참조함 : yy_.
다음에 의해서 참조됨 : G4BoundingEnvelope::BoundingBoxVsVoxelLimits(), G4ReflectedSolid::BoundingLimits(), G4BoundingEnvelope::CalculateExtent(), G4BoundingEnvelope::FindScaleFactor(), G4GDMLWriteSolids::MultiUnionWrite(), HepGeom::operator*(), operator<<(), G4GDMLWriteSolids::ScaledWrite(), HepGeom::Normal3D< float >::transform(), HepGeom::Vector3D< float >::transform(), HepGeom::Point3D< float >::transform(), HepGeom::Normal3D< double >::transform(), HepGeom::Vector3D< double >::transform(), HepGeom::Point3D< double >::transform(), G4BoundingEnvelope::TransformVertices().
|
inline |
Gets yz-element of the transformation matrix.
Transform3D.h 파일의 267 번째 라인에서 정의되었습니다.
다음을 참조함 : yz_.
다음에 의해서 참조됨 : G4BoundingEnvelope::CalculateExtent(), G4BoundingEnvelope::FindScaleFactor(), G4GDMLWriteSolids::MultiUnionWrite(), HepGeom::operator*(), operator<<(), HepGeom::Normal3D< float >::transform(), HepGeom::Vector3D< float >::transform(), HepGeom::Point3D< float >::transform(), HepGeom::Normal3D< double >::transform(), HepGeom::Vector3D< double >::transform(), HepGeom::Point3D< double >::transform().
|
inline |
Gets zx-element of the transformation matrix.
Transform3D.h 파일의 270 번째 라인에서 정의되었습니다.
다음을 참조함 : zx_.
다음에 의해서 참조됨 : G4BoundingEnvelope::CalculateExtent(), G4BoundingEnvelope::FindScaleFactor(), G4GDMLWriteSolids::MultiUnionWrite(), HepGeom::operator*(), operator<<(), HepGeom::Normal3D< float >::transform(), HepGeom::Vector3D< float >::transform(), HepGeom::Point3D< float >::transform(), HepGeom::Normal3D< double >::transform(), HepGeom::Vector3D< double >::transform(), HepGeom::Point3D< double >::transform().
|
inline |
Gets zy-element of the transformation matrix.
Transform3D.h 파일의 273 번째 라인에서 정의되었습니다.
다음을 참조함 : zy_.
다음에 의해서 참조됨 : G4BoundingEnvelope::CalculateExtent(), G4BoundingEnvelope::FindScaleFactor(), G4GDMLWriteSolids::MultiUnionWrite(), HepGeom::operator*(), operator<<(), HepGeom::Normal3D< float >::transform(), HepGeom::Vector3D< float >::transform(), HepGeom::Point3D< float >::transform(), HepGeom::Normal3D< double >::transform(), HepGeom::Vector3D< double >::transform(), HepGeom::Point3D< double >::transform().
|
inline |
Gets zz-element of the transformation matrix.
Transform3D.h 파일의 276 번째 라인에서 정의되었습니다.
다음을 참조함 : zz_.
다음에 의해서 참조됨 : G4BoundingEnvelope::BoundingBoxVsVoxelLimits(), G4ReflectedSolid::BoundingLimits(), G4BoundingEnvelope::CalculateExtent(), G4BoundingEnvelope::FindScaleFactor(), G4GDMLWriteSolids::MultiUnionWrite(), HepGeom::operator*(), operator<<(), G4GDMLWriteSolids::ScaledWrite(), HepGeom::Normal3D< float >::transform(), HepGeom::Vector3D< float >::transform(), HepGeom::Point3D< float >::transform(), HepGeom::Normal3D< double >::transform(), HepGeom::Vector3D< double >::transform(), HepGeom::Point3D< double >::transform(), G4BoundingEnvelope::TransformVertices().
|
protected |
Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : dx(), inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform().
|
protected |
Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : dy(), inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform().
|
protected |
Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : dz(), inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform().
|
static |
Global identity transformation.
Transform3D.h 파일의 197 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : G4GMocrenFileSceneHandler::Detector::clear(), G4GDMLWriteStructure::TraverseVolumeTree(), G4GDMLWrite::Write().
|
protected |
Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), xx().
|
protected |
Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), xy().
|
protected |
Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), xz().
|
protected |
Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), yx().
|
protected |
Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), yy().
|
protected |
Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), yz().
|
protected |
Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), zx().
|
protected |
Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), zy().
|
protected |
Transform3D.h 파일의 173 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : inverse(), isNear(), operator()(), operator*(), operator=(), operator==(), setIdentity(), setTransform(), zz().