|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4AffineTransform is a class for geometric affine transformations. It supports efficient arbitrary rotation & transformation of vectors and the computation of compound & inverse transformations. A 'rotation flag' is maintained internally for greater computational efficiency for transforms that do not involve rotation. More...
#include <G4AffineTransform.hh>
G4AffineTransform is a class for geometric affine transformations. It supports efficient arbitrary rotation & transformation of vectors and the computation of compound & inverse transformations. A 'rotation flag' is maintained internally for greater computational efficiency for transforms that do not involve rotation.
Definition at line 68 of file G4AffineTransform.hh.
|
inline |
Constructor for G4AffineTransform. Initialises components to zero.
Referenced by G4AffineTransform(), G4AffineTransform(), Inverse(), InverseProduct(), Invert(), operator!=(), operator*(), operator*=(), operator+=(), operator-=(), operator=(), operator=(), operator==(), and Product().
|
inline |
Constructor for Translation only: under t'form, translate point at origin by 'tlate'.
|
inline |
Constructor for Rotation only: under t'form, rotate by 'rot'.
|
inline |
Constructor for Translation and Rotation: under t'form, rotate by 'rot' then translate by 'tlate'.
|
inline |
Alternative Constructor optionally rotating by 'rot' by pointer then translate by 'tlate' - 'rot' may be null.
|
inlinedefault |
Copy & move constructor.
|
inlinedefault |
|
inlinedefault |
Default Destructor.
|
inline |
Transforms the specified 'axis' (in place): sets axis=axis*rot.
| [in,out] | axis | The axis to transform. |
|
inline |
Transforms the specified point 'vec' (in place): sets vec=vec*rot+tlate.
| [in,out] | vec | The point to transform. |
Referenced by G4PolyconeSide::CalculateExtent().
|
inline |
Returns the inverse of the current transform.
Referenced by G4DrawVoxels::DrawVoxels().
|
inline |
Returns the inverse net rotation matrix.
Referenced by G4TouchableHistory::G4TouchableHistory().
|
inline |
Returns the inverse net translation vector.
Referenced by G4TouchableHistory::G4TouchableHistory().
|
inline |
[Modifying] Inverse Product function. Sets self=tf1*(tf2^-1).
| [in] | tf1 | First transformation operand. |
| [in] | tf2 | Second transformation operand. |
|
inline |
Transforms the specified 'axis' using inverse transformation.
Referenced by G4RegularNavigation::ComputeStep(), G4ReplicaNavigation::ComputeStep(), and G4Navigator::GetLocalExitNormal().
|
inline |
Transforms the specified point 'vec' using inverse transformation.
Referenced by G4PVParameterised::CheckOverlaps(), G4PVPlacement::CheckOverlaps(), G4RegularNavigation::ComputeStep(), G4RegularNavigation::ComputeStepSkippingEqualMaterials(), and G4LogicalVolumeModel::DescribeYourselfTo().
|
inline |
[Modifying] Sets self=inverse of self.
Referenced by G4NormalNavigation::ComputeSafety(), G4ParameterisedNavigation::ComputeSafety(), G4ReplicaNavigation::ComputeSafety(), G4VoxelNavigation::ComputeSafety(), G4NormalNavigation::ComputeStep(), G4ParameterisedNavigation::ComputeStep(), G4ReplicaNavigation::ComputeStep(), G4VoxelNavigation::ComputeStep(), G4ITNavigator1::GetMotherToDaughterTransform(), G4ITNavigator2::GetMotherToDaughterTransform(), G4Navigator::GetMotherToDaughterTransform(), G4ElNeutrinoNucleusProcess::PostStepDoIt(), G4MuNeutrinoNucleusProcess::PostStepDoIt(), G4NeutrinoElectronProcess::PostStepDoIt(), G4TauNeutrinoNucleusProcess::PostStepDoIt(), G4VXTRenergyLoss::PostStepDoIt(), and G4VoxelSafety::SafetyForVoxelNode().
|
inline |
Returns true if transform includes rotation.
Referenced by G4PVPlacement::CheckOverlaps().
|
inline |
Returns true if transform includes translation.
|
inline |
Returns the net rotation matrix.
Referenced by G4ScaledSolid::CalculateExtent(), G4DrawVoxels::DrawVoxels(), G4tgbGeometryDumper::DumpBooleanVolume(), and G4VIntersectionLocator::GetGlobalSurfaceNormal().
|
inline |
Returns the net translation vector.
Referenced by G4AdjointCrossSurfChecker::AddaSphericalSurfaceWithCenterAtTheCenterOfAVolume(), G4ScaledSolid::CalculateExtent(), G4PVPlacement::CheckOverlaps(), G4DrawVoxels::DrawVoxels(), and G4VIntersectionLocator::GetGlobalSurfaceNormal().
|
inline |
Conversion operator (cast) to G4Transform3D.
|
inline |
|
inline |
Compound Transforms: tf2=tf2*tf1 equivalent to tf2*=tf1.
| [in] | tf | Transformation to combine. |
|
inline |
[Modifying] compound Transforms: Multiplies self by 'tf'.
| [in] | tf | Transformation to combine. |
|
inline |
[Modifying] Adjust the net translation by the given vector.
|
inline |
|
inline |
Assignment & move operators.
|
inlinedefault |
|
inline |
Equality and inequality operators.
|
inline |
[Modifying] Product function, for avoiding (potential) temporaries: c.Product(a,b) equivalent to c=a*b c.InverseProduct(a*b,b ) equivalent to c=a Sets self=tf1*tf2.
| [in] | tf1 | First transformation operand. |
| [in] | tf2 | Second transformation operand. |
Referenced by G4DisplacedSolid::CalculateExtent().
|
inline |
Setters for rotation and translation.
|
inline |
|
inline |
Transforms the specified 'axis'.
Referenced by G4RayTrajectory::AppendStep(), G4PolyconeSide::CalculateExtent(), G4PolyhedraSide::CalculateExtent(), G4PolyPhiFace::CalculateExtent(), G4ITNavigator1::ComputeStep(), G4ITNavigator2::ComputeStep(), G4NormalNavigation::ComputeStep(), G4ParameterisedNavigation::ComputeStep(), G4ReplicaNavigation::ComputeStep(), G4VoxelNavigation::ComputeStep(), G4ITNavigator1::GetGlobalExitNormal(), G4ITNavigator2::GetGlobalExitNormal(), G4VIntersectionLocator::GetGlobalSurfaceNormal(), G4RegularNavigation::LevelLocate(), G4ElNeutrinoNucleusProcess::PostStepDoIt(), G4MuNeutrinoNucleusProcess::PostStepDoIt(), G4NeutrinoElectronProcess::PostStepDoIt(), G4TauNeutrinoNucleusProcess::PostStepDoIt(), G4VXTRenergyLoss::PostStepDoIt(), G4PSCylinderSurfaceFlux::ProcessHits(), G4PSFlatSurfaceFlux::ProcessHits(), G4PSSphereSurfaceFlux::ProcessHits(), G4PSVolumeFlux::ProcessHits(), and G4ITNavigator2::RecheckDistanceToCurrentBoundary().
|
inline |
Transforms the specified point 'vec'.
Referenced by G4ReplicaNavigation::BackLocate(), G4PolyPhiFace::CalculateExtent(), G4PVParameterised::CheckOverlaps(), G4PVPlacement::CheckOverlaps(), G4NormalNavigation::ComputeSafety(), G4ParameterisedNavigation::ComputeSafety(), G4ReplicaNavigation::ComputeSafety(), G4VoxelNavigation::ComputeSafety(), G4NormalNavigation::ComputeStep(), G4ParameterisedNavigation::ComputeStep(), G4ReplicaNavigation::ComputeStep(), G4VoxelNavigation::ComputeStep(), G4RegularNavigation::ComputeStepSkippingEqualMaterials(), G4DNAMolecularDissociation::DecayIt(), G4LogicalVolumeModel::DescribeYourselfTo(), G4ITNavigator1::GetLocalExitNormal(), G4ITNavigator2::GetLocalExitNormal(), G4Navigator::GetLocalExitNormal(), G4ITNavigator1::GetLocalExitNormalAndCheck(), G4ITNavigator2::GetLocalExitNormalAndCheck(), G4Navigator::GetLocalExitNormalAndCheck(), G4ITNavigator2::GetRandomInCurrentVolume(), G4ITNavigator2::InsideCurrentVolume(), G4PSCylinderSurfaceCurrent::IsSelectedSurface(), G4PSCylinderSurfaceFlux::IsSelectedSurface(), G4PSFlatSurfaceCurrent::IsSelectedSurface(), G4PSFlatSurfaceFlux::IsSelectedSurface(), G4PSSphereSurfaceCurrent::IsSelectedSurface(), G4PSSphereSurfaceFlux::IsSelectedSurface(), G4ParameterisedNavigation::LevelLocate(), G4RegularNavigation::LevelLocate(), G4VIntersectionLocator::LocateGlobalPointWithinVolumeAndCheck(), G4FastSimHitMaker::make(), G4ElNeutrinoNucleusProcess::PostStepDoIt(), G4MuNeutrinoNucleusProcess::PostStepDoIt(), G4NeutrinoElectronProcess::PostStepDoIt(), G4TauNeutrinoNucleusProcess::PostStepDoIt(), G4VXTRenergyLoss::PostStepDoIt(), G4PSSphereSurfaceFlux::ProcessHits(), G4PSVolumeFlux::ProcessHits(), G4ITNavigator2::RecheckDistanceToCurrentBoundary(), and G4VoxelSafety::SafetyForVoxelNode().