G4AffineTransform Class Reference

#include <G4AffineTransform.hh>


Public Member Functions

 G4AffineTransform ()
 G4AffineTransform (const G4ThreeVector &tlate)
 G4AffineTransform (const G4RotationMatrix &rot)
 G4AffineTransform (const G4RotationMatrix &rot, const G4ThreeVector &tlate)
 G4AffineTransform (const G4RotationMatrix *rot, const G4ThreeVector &tlate)
G4AffineTransform operator * (const G4AffineTransform &tf) const
G4AffineTransformoperator *= (const G4AffineTransform &tf)
G4AffineTransformProduct (const G4AffineTransform &tf1, const G4AffineTransform &tf2)
G4AffineTransformInverseProduct (const G4AffineTransform &tf1, const G4AffineTransform &tf2)
G4ThreeVector TransformPoint (const G4ThreeVector &vec) const
G4ThreeVector TransformAxis (const G4ThreeVector &axis) const
void ApplyPointTransform (G4ThreeVector &vec) const
void ApplyAxisTransform (G4ThreeVector &axis) const
G4AffineTransform Inverse () const
G4AffineTransformInvert ()
G4AffineTransformoperator+= (const G4ThreeVector &tlate)
G4AffineTransformoperator-= (const G4ThreeVector &tlate)
G4bool operator== (const G4AffineTransform &tf) const
G4bool operator!= (const G4AffineTransform &tf) const
G4double operator[] (const G4int n) const
G4bool IsRotated () const
G4bool IsTranslated () const
G4RotationMatrix NetRotation () const
G4ThreeVector NetTranslation () const
void SetNetRotation (const G4RotationMatrix &rot)
void SetNetTranslation (const G4ThreeVector &tlate)


Detailed Description

Definition at line 69 of file G4AffineTransform.hh.


Constructor & Destructor Documentation

G4AffineTransform::G4AffineTransform (  )  [inline]

Definition at line 34 of file G4AffineTransform.icc.

Referenced by Inverse(), and operator *().

00035  : rxx(1),rxy(0),rxz(0),
00036    ryx(0),ryy(1),ryz(0),
00037    rzx(0),rzy(0),rzz(1),
00038    tx(0),ty(0),tz(0)
00039 {}

G4AffineTransform::G4AffineTransform ( const G4ThreeVector tlate  )  [inline]

Definition at line 41 of file G4AffineTransform.icc.

00042  : rxx(1),rxy(0),rxz(0),
00043    ryx(0),ryy(1),ryz(0),
00044    rzx(0),rzy(0),rzz(1),
00045    tx(tlate.x()),ty(tlate.y()),tz(tlate.z())
00046 {}

G4AffineTransform::G4AffineTransform ( const G4RotationMatrix rot  )  [inline]

Definition at line 48 of file G4AffineTransform.icc.

00049  : rxx(rot.xx()),rxy(rot.xy()),rxz(rot.xz()),
00050    ryx(rot.yx()),ryy(rot.yy()),ryz(rot.yz()),
00051    rzx(rot.zx()),rzy(rot.zy()),rzz(rot.zz()),
00052    tx(0),ty(0),tz(0)
00053 {}

G4AffineTransform::G4AffineTransform ( const G4RotationMatrix rot,
const G4ThreeVector tlate 
) [inline]

Definition at line 55 of file G4AffineTransform.icc.

00057  : rxx(rot.xx()),rxy(rot.xy()),rxz(rot.xz()),
00058    ryx(rot.yx()),ryy(rot.yy()),ryz(rot.yz()),
00059    rzx(rot.zx()),rzy(rot.zy()),rzz(rot.zz()),
00060    tx(tlate.x()),ty(tlate.y()),tz(tlate.z())
00061 {}

G4AffineTransform::G4AffineTransform ( const G4RotationMatrix rot,
const G4ThreeVector tlate 
) [inline]

Definition at line 63 of file G4AffineTransform.icc.

00065  : tx(tlate.x()),ty(tlate.y()),tz(tlate.z())
00066 {
00067   if (rot)
00068     {
00069       rxx=rot->xx();rxy=rot->xy();rxz=rot->xz();
00070       ryx=rot->yx();ryy=rot->yy();ryz=rot->yz();
00071       rzx=rot->zx();rzy=rot->zy();rzz=rot->zz();
00072     }
00073   else
00074     {
00075       rxx=1; rxy=0; rxz=0;
00076       ryx=0; ryy=1; ryz=0;
00077       rzx=0; rzy=0; rzz=1;
00078     }
00079 }


Member Function Documentation

void G4AffineTransform::ApplyAxisTransform ( G4ThreeVector axis  )  const [inline]

Definition at line 222 of file G4AffineTransform.icc.

00223 {
00224         G4double x = axis.x()*rxx + axis.y()*ryx + axis.z()*rzx;
00225         G4double y = axis.x()*rxy + axis.y()*ryy + axis.z()*rzy;
00226         G4double z = axis.x()*rxz + axis.y()*ryz + axis.z()*rzz;
00227 
00228         axis.setX(x);
00229         axis.setY(y);
00230         axis.setZ(z);
00231 }

void G4AffineTransform::ApplyPointTransform ( G4ThreeVector vec  )  const [inline]

Definition at line 210 of file G4AffineTransform.icc.

Referenced by G4TessellatedSolid::CalculateExtent(), G4PolyconeSide::CalculateExtent(), G4Hype::CalculateExtent(), G4EllipticalTube::CalculateExtent(), and G4EllipticalCone::CalculateExtent().

00211 {
00212         G4double x = vec.x()*rxx + vec.y()*ryx + vec.z()*rzx    + tx;
00213         G4double y = vec.x()*rxy + vec.y()*ryy + vec.z()*rzy    + ty;
00214         G4double z = vec.x()*rxz + vec.y()*ryz + vec.z()*rzz    + tz;
00215 
00216         vec.setX(x);
00217         vec.setY(y);
00218         vec.setZ(z);
00219 }

G4AffineTransform G4AffineTransform::Inverse (  )  const [inline]

Definition at line 234 of file G4AffineTransform.icc.

References G4AffineTransform().

Referenced by G4VTwistedFaceted::CalculateExtent(), G4Tubs::CalculateExtent(), G4Trd::CalculateExtent(), G4Torus::CalculateExtent(), G4Sphere::CalculateExtent(), G4Para::CalculateExtent(), G4GenericTrap::CalculateExtent(), G4Ellipsoid::CalculateExtent(), G4CutTubs::CalculateExtent(), G4Cons::CalculateExtent(), G4BREPSolid::CalculateExtent(), G4Box::CalculateExtent(), G4PVPlacement::CheckOverlaps(), G4PVParameterised::CheckOverlaps(), G4ReplicaNavigation::ComputeStep(), G4RegularNavigation::ComputeStep(), G4Navigator::ComputeStep(), G4RegularNavigation::ComputeStepSkippingEqualMaterials(), G4Navigator::CreateGRSSolid(), G4ITNavigator::CreateGRSSolid(), G4Navigator::CreateGRSVolume(), G4ITNavigator::CreateGRSVolume(), G4DisplacedSolid::G4DisplacedSolid(), G4TouchableHistory::G4TouchableHistory(), G4Navigator::GetLocalToGlobalTransform(), G4ITNavigator::GetLocalToGlobalTransform(), G4Navigator::NetRotation(), G4ITNavigator::NetRotation(), G4Navigator::NetTranslation(), G4ITNavigator::NetTranslation(), and G4TouchableHistory::UpdateYourself().

00235 {
00236         return G4AffineTransform( rxx, ryx, rzx,
00237                                   rxy, ryy, rzy,
00238                                   rxz, ryz, rzz,
00239 
00240                                  -tx*rxx - ty*rxy - tz*rxz,
00241                                  -tx*ryx - ty*ryy - tz*ryz,
00242                                  -tx*rzx - ty*rzy - tz*rzz  );
00243 }

G4AffineTransform & G4AffineTransform::InverseProduct ( const G4AffineTransform tf1,
const G4AffineTransform tf2 
) [inline]

Definition at line 167 of file G4AffineTransform.icc.

References rxx, rxy, rxz, ryx, ryy, ryz, rzx, rzy, rzz, tx, ty, and tz.

Referenced by G4NavigationLevelRep::G4NavigationLevelRep().

00169 {
00170         G4double itf2tx = - tf2.tx*tf2.rxx - tf2.ty*tf2.rxy - tf2.tz*tf2.rxz;
00171         G4double itf2ty = - tf2.tx*tf2.ryx - tf2.ty*tf2.ryy - tf2.tz*tf2.ryz;
00172         G4double itf2tz = - tf2.tx*tf2.rzx - tf2.ty*tf2.rzy - tf2.tz*tf2.rzz;
00173 
00174         rxx=tf1.rxx*tf2.rxx+tf1.rxy*tf2.rxy+tf1.rxz*tf2.rxz;
00175         rxy=tf1.rxx*tf2.ryx+tf1.rxy*tf2.ryy+tf1.rxz*tf2.ryz;
00176         rxz=tf1.rxx*tf2.rzx+tf1.rxy*tf2.rzy+tf1.rxz*tf2.rzz;
00177 
00178         ryx=tf1.ryx*tf2.rxx+tf1.ryy*tf2.rxy+tf1.ryz*tf2.rxz;
00179         ryy=tf1.ryx*tf2.ryx+tf1.ryy*tf2.ryy+tf1.ryz*tf2.ryz;
00180         ryz=tf1.ryx*tf2.rzx+tf1.ryy*tf2.rzy+tf1.ryz*tf2.rzz;
00181 
00182         rzx=tf1.rzx*tf2.rxx+tf1.rzy*tf2.rxy+tf1.rzz*tf2.rxz;
00183         rzy=tf1.rzx*tf2.ryx+tf1.rzy*tf2.ryy+tf1.rzz*tf2.ryz;
00184         rzz=tf1.rzx*tf2.rzx+tf1.rzy*tf2.rzy+tf1.rzz*tf2.rzz;
00185         
00186         tx=tf1.tx*tf2.rxx+tf1.ty*tf2.rxy+tf1.tz*tf2.rxz+itf2tx;
00187         ty=tf1.tx*tf2.ryx+tf1.ty*tf2.ryy+tf1.tz*tf2.ryz+itf2ty;
00188         tz=tf1.tx*tf2.rzx+tf1.ty*tf2.rzy+tf1.tz*tf2.rzz+itf2tz;
00189 
00190         return *this;
00191 }

G4AffineTransform & G4AffineTransform::Invert (  )  [inline]

Definition at line 246 of file G4AffineTransform.icc.

Referenced by G4DisplacedSolid::G4DisplacedSolid(), G4ReflectedSolid::G4ReflectedSolid(), and G4VXTRenergyLoss::PostStepDoIt().

00247 {
00248         G4double v1 = -tx*rxx - ty*rxy - tz*rxz;
00249         G4double v2 = -tx*ryx - ty*ryy - tz*ryz;
00250         G4double v3 = -tx*rzx - ty*rzy - tz*rzz;
00251 
00252         tx=v1; ty=v2; tz=v3;
00253 
00254         G4double tmp1=ryx; ryx=rxy; rxy=tmp1;
00255         G4double tmp2=rzx; rzx=rxz; rxz=tmp2;
00256         G4double tmp3=rzy; rzy=ryz; ryz=tmp3;
00257 
00258         return *this;
00259 
00260 }

G4bool G4AffineTransform::IsRotated (  )  const [inline]

Definition at line 353 of file G4AffineTransform.icc.

Referenced by G4VTwistedFaceted::CalculateExtent(), G4Tubs::CalculateExtent(), G4Trd::CalculateExtent(), G4Trap::CalculateExtent(), G4Torus::CalculateExtent(), G4Tet::CalculateExtent(), G4Paraboloid::CalculateExtent(), G4Para::CalculateExtent(), G4GenericTrap::CalculateExtent(), G4Ellipsoid::CalculateExtent(), G4CutTubs::CalculateExtent(), G4Cons::CalculateExtent(), G4BREPSolid::CalculateExtent(), G4Box::CalculateExtent(), G4Navigator::ComputeLocalAxis(), and G4ITNavigator::ComputeLocalAxis().

00354 {
00355         return (rxx==1.0 && ryy==1.0 && rzz==1.0) ? false : true;
00356 }

G4bool G4AffineTransform::IsTranslated (  )  const [inline]

Definition at line 359 of file G4AffineTransform.icc.

00360 {
00361         return (tx || ty || tz) ? true:false;
00362 }

G4RotationMatrix G4AffineTransform::NetRotation (  )  const [inline]

Definition at line 364 of file G4AffineTransform.icc.

Referenced by G4ReflectedSolid::CalculateExtent(), G4Paraboloid::CalculateExtent(), G4DrawVoxels::DrawVoxels(), G4ErrorCylSurfaceTarget::Dump(), G4ReflectedSolid::GetFrameRotation(), G4DisplacedSolid::GetFrameRotation(), G4VIntersectionLocator::GetGlobalSurfaceNormal(), G4ReflectedSolid::GetObjectRotation(), G4DisplacedSolid::GetObjectRotation(), G4TouchableHistory::GetRotation(), G4ReflectedSolid::StreamInfo(), and G4DisplacedSolid::StreamInfo().

00364                                                              {
00365   G4RotationMatrix mat;
00366   return mat.rotateAxes(G4ThreeVector(rxx,ryx,rzx),
00367                         G4ThreeVector(rxy,ryy,rzy),
00368                         G4ThreeVector(rxz,ryz,rzz));
00369 }

G4ThreeVector G4AffineTransform::NetTranslation (  )  const [inline]

Definition at line 372 of file G4AffineTransform.icc.

Referenced by G4AdjointCrossSurfChecker::AddaSphericalSurfaceWithCenterAtTheCenterOfAVolume(), G4VTwistedFaceted::CalculateExtent(), G4Tubs::CalculateExtent(), G4Trd::CalculateExtent(), G4Trap::CalculateExtent(), G4Torus::CalculateExtent(), G4Tet::CalculateExtent(), G4Sphere::CalculateExtent(), G4ReflectedSolid::CalculateExtent(), G4Paraboloid::CalculateExtent(), G4Para::CalculateExtent(), G4Orb::CalculateExtent(), G4GenericTrap::CalculateExtent(), G4Ellipsoid::CalculateExtent(), G4CutTubs::CalculateExtent(), G4Cons::CalculateExtent(), G4BREPSolid::CalculateExtent(), G4Box::CalculateExtent(), G4DrawVoxels::DrawVoxels(), G4ErrorCylSurfaceTarget::Dump(), G4ReflectedSolid::GetFrameTranslation(), G4DisplacedSolid::GetFrameTranslation(), G4VIntersectionLocator::GetGlobalSurfaceNormal(), G4ReflectedSolid::GetObjectTranslation(), G4DisplacedSolid::GetObjectTranslation(), G4ErrorCylSurfaceTarget::GetTangentPlane(), G4TouchableHistory::GetTranslation(), G4ReflectedSolid::StreamInfo(), and G4DisplacedSolid::StreamInfo().

00373 {
00374         return G4ThreeVector(tx,ty,tz);
00375 }

G4AffineTransform G4AffineTransform::operator * ( const G4AffineTransform tf  )  const [inline]

Definition at line 94 of file G4AffineTransform.icc.

References G4AffineTransform(), rxx, rxy, rxz, ryx, ryy, ryz, rzx, rzy, rzz, tx, ty, and tz.

00095 {
00096         return G4AffineTransform(
00097         rxx*tf.rxx+rxy*tf.ryx+rxz*tf.rzx,
00098         rxx*tf.rxy+rxy*tf.ryy+rxz*tf.rzy,
00099         rxx*tf.rxz+rxy*tf.ryz+rxz*tf.rzz,
00100 
00101         ryx*tf.rxx+ryy*tf.ryx+ryz*tf.rzx,
00102         ryx*tf.rxy+ryy*tf.ryy+ryz*tf.rzy,
00103         ryx*tf.rxz+ryy*tf.ryz+ryz*tf.rzz,
00104 
00105         rzx*tf.rxx+rzy*tf.ryx+rzz*tf.rzx,
00106         rzx*tf.rxy+rzy*tf.ryy+rzz*tf.rzy,
00107         rzx*tf.rxz+rzy*tf.ryz+rzz*tf.rzz,
00108         
00109         tx*tf.rxx+ty*tf.ryx+tz*tf.rzx+tf.tx,
00110         tx*tf.rxy+ty*tf.ryy+tz*tf.rzy+tf.ty,
00111         tx*tf.rxz+ty*tf.ryz+tz*tf.rzz+tf.tz);
00112 }

G4AffineTransform & G4AffineTransform::operator *= ( const G4AffineTransform tf  )  [inline]

Definition at line 115 of file G4AffineTransform.icc.

References rxx, rxy, rxz, ryx, ryy, ryz, rzx, rzy, rzz, tx, ty, and tz.

00116 {
00117          // Use temporaries for `in place' compound transform computation
00118 
00119         G4double nrxx=rxx*tf.rxx+rxy*tf.ryx+rxz*tf.rzx;
00120         G4double nrxy=rxx*tf.rxy+rxy*tf.ryy+rxz*tf.rzy;
00121         G4double nrxz=rxx*tf.rxz+rxy*tf.ryz+rxz*tf.rzz;
00122 
00123         G4double nryx=ryx*tf.rxx+ryy*tf.ryx+ryz*tf.rzx;
00124         G4double nryy=ryx*tf.rxy+ryy*tf.ryy+ryz*tf.rzy;
00125         G4double nryz=ryx*tf.rxz+ryy*tf.ryz+ryz*tf.rzz;
00126 
00127         G4double nrzx=rzx*tf.rxx+rzy*tf.ryx+rzz*tf.rzx;
00128         G4double nrzy=rzx*tf.rxy+rzy*tf.ryy+rzz*tf.rzy;
00129         G4double nrzz=rzx*tf.rxz+rzy*tf.ryz+rzz*tf.rzz;
00130         
00131         G4double ntx=tx*tf.rxx+ty*tf.ryx+tz*tf.rzx+tf.tx;
00132         G4double nty=tx*tf.rxy+ty*tf.ryy+tz*tf.rzy+tf.ty;
00133         G4double ntz=tx*tf.rxz+ty*tf.ryz+tz*tf.rzz+tf.tz;
00134 
00135         tx=ntx; ty=nty; tz=ntz;
00136         rxx=nrxx; rxy=nrxy; rxz=nrxz;
00137         ryx=nryx; ryy=nryy; ryz=nryz;
00138         rzx=nrzx; rzy=nrzy; rzz=nrzz;
00139 
00140         return *this;
00141 }

G4bool G4AffineTransform::operator!= ( const G4AffineTransform tf  )  const [inline]

Definition at line 291 of file G4AffineTransform.icc.

References rxx, rxy, rxz, ryx, ryy, ryz, rzx, rzy, rzz, tx, ty, and tz.

00292 {
00293         return (tx!=tf.tx||ty!=tf.ty||tz!=tf.tz||
00294                 rxx!=tf.rxx||rxy!=tf.rxy||rxz!=tf.rxz||
00295                 ryx!=tf.ryx||ryy!=tf.ryy||ryz!=tf.ryz||
00296                 rzx!=tf.rzx||rzy!=tf.rzy||rzz!=tf.rzz) ? true : false;
00297 }

G4AffineTransform & G4AffineTransform::operator+= ( const G4ThreeVector tlate  )  [inline]

Definition at line 263 of file G4AffineTransform.icc.

00264 {
00265         tx += tlate.x();
00266         ty += tlate.y();
00267         tz += tlate.z();
00268 
00269         return *this;
00270 }

G4AffineTransform & G4AffineTransform::operator-= ( const G4ThreeVector tlate  )  [inline]

Definition at line 273 of file G4AffineTransform.icc.

00274 {
00275         tx -= tlate.x();
00276         ty -= tlate.y();
00277         tz -= tlate.z();
00278 
00279         return *this;
00280 }

G4bool G4AffineTransform::operator== ( const G4AffineTransform tf  )  const [inline]

Definition at line 283 of file G4AffineTransform.icc.

References rxx, rxy, rxz, ryx, ryy, ryz, rzx, rzy, rzz, tx, ty, and tz.

00284 {
00285         return (tx==tf.tx&&ty==tf.ty&&tz==tf.tz&&
00286                 rxx==tf.rxx&&rxy==tf.rxy&&rxz==tf.rxz&&
00287                 ryx==tf.ryx&&ryy==tf.ryy&&ryz==tf.ryz&&
00288                 rzx==tf.rzx&&rzy==tf.rzy&&rzz==tf.rzz) ? true : false;
00289 }

G4double G4AffineTransform::operator[] ( const G4int  n  )  const [inline]

Definition at line 300 of file G4AffineTransform.icc.

00301 {
00302         G4double v = 0.0;
00303         switch(n)
00304                 {
00305                 case 0:
00306                         v=rxx;
00307                         break;
00308                 case 1:
00309                         v=rxy;
00310                         break;
00311                 case 2:
00312                         v=rxz;
00313                         break;
00314                 case 4:
00315                         v=ryx;
00316                         break;
00317                 case 5:
00318                         v=ryy;
00319                         break;
00320                 case 6:
00321                         v=ryz;
00322                         break;
00323                 case 8:
00324                         v=rzx;
00325                         break;
00326                 case 9:
00327                         v=rzy;
00328                         break;
00329                 case 10:
00330                         v=rzz;
00331                         break;
00332                 case 12:
00333                         v=tx;
00334                         break;
00335                 case 13:
00336                         v=ty;
00337                         break;
00338                 case 14:
00339                         v=tz;
00340                         break;
00341                 case 3:
00342                 case 7:
00343                 case 11:
00344                         break;
00345                 case 15:
00346                         v=1.0;
00347                         break;
00348                 }
00349         return v;
00350 }

G4AffineTransform & G4AffineTransform::Product ( const G4AffineTransform tf1,
const G4AffineTransform tf2 
) [inline]

Definition at line 144 of file G4AffineTransform.icc.

References rxx, rxy, rxz, ryx, ryy, ryz, rzx, rzy, rzz, tx, ty, and tz.

Referenced by G4DisplacedSolid::CalculateExtent().

00146 {
00147         rxx=tf1.rxx*tf2.rxx + tf1.rxy*tf2.ryx + tf1.rxz*tf2.rzx;
00148         rxy=tf1.rxx*tf2.rxy + tf1.rxy*tf2.ryy + tf1.rxz*tf2.rzy;
00149         rxz=tf1.rxx*tf2.rxz + tf1.rxy*tf2.ryz + tf1.rxz*tf2.rzz;
00150 
00151         ryx=tf1.ryx*tf2.rxx + tf1.ryy*tf2.ryx + tf1.ryz*tf2.rzx;
00152         ryy=tf1.ryx*tf2.rxy + tf1.ryy*tf2.ryy + tf1.ryz*tf2.rzy;
00153         ryz=tf1.ryx*tf2.rxz + tf1.ryy*tf2.ryz + tf1.ryz*tf2.rzz;
00154 
00155         rzx=tf1.rzx*tf2.rxx + tf1.rzy*tf2.ryx + tf1.rzz*tf2.rzx;
00156         rzy=tf1.rzx*tf2.rxy + tf1.rzy*tf2.ryy + tf1.rzz*tf2.rzy;
00157         rzz=tf1.rzx*tf2.rxz + tf1.rzy*tf2.ryz + tf1.rzz*tf2.rzz;
00158         
00159         tx=tf1.tx*tf2.rxx + tf1.ty*tf2.ryx + tf1.tz*tf2.rzx   + tf2.tx;
00160         ty=tf1.tx*tf2.rxy + tf1.ty*tf2.ryy + tf1.tz*tf2.rzy   + tf2.ty;
00161         tz=tf1.tx*tf2.rxz + tf1.ty*tf2.ryz + tf1.tz*tf2.rzz   + tf2.tz; 
00162         
00163         return *this;
00164 }

void G4AffineTransform::SetNetRotation ( const G4RotationMatrix rot  )  [inline]

Definition at line 378 of file G4AffineTransform.icc.

Referenced by G4ReflectedSolid::SetFrameRotation(), G4DisplacedSolid::SetFrameRotation(), G4ReflectedSolid::SetObjectRotation(), and G4DisplacedSolid::SetObjectRotation().

00379 {
00380         rxx=rot.xx();
00381         rxy=rot.xy();
00382         rxz=rot.xz();
00383         ryx=rot.yx();
00384         ryy=rot.yy();
00385         ryz=rot.yz();
00386         rzx=rot.zx();
00387         rzy=rot.zy();
00388         rzz=rot.zz();
00389 }

void G4AffineTransform::SetNetTranslation ( const G4ThreeVector tlate  )  [inline]

Definition at line 392 of file G4AffineTransform.icc.

Referenced by G4ReflectedSolid::SetFrameTranslation(), G4DisplacedSolid::SetFrameTranslation(), G4ReflectedSolid::SetObjectTranslation(), and G4DisplacedSolid::SetObjectTranslation().

00393 {
00394         tx=tlate.x();
00395         ty=tlate.y();
00396         tz=tlate.z();
00397 }

G4ThreeVector G4AffineTransform::TransformAxis ( const G4ThreeVector axis  )  const [inline]

Definition at line 202 of file G4AffineTransform.icc.

Referenced by G4RayTrajectory::AppendStep(), G4PolyPhiFace::CalculateExtent(), G4PolyhedraSide::CalculateExtent(), G4PolyconeSide::CalculateExtent(), G4Hype::CalculateExtent(), G4EllipticalTube::CalculateExtent(), G4EllipticalCone::CalculateExtent(), G4AuxiliaryNavServices::CheckPointExiting(), G4AuxiliaryNavServices::CheckPointOnSurface(), G4Navigator::ComputeLocalAxis(), G4ITNavigator::ComputeLocalAxis(), G4ReplicaNavigation::ComputeStep(), G4RegularNavigation::ComputeStep(), G4Navigator::ComputeStep(), G4DisplacedSolid::DistanceToIn(), G4DisplacedSolid::DistanceToOut(), G4AdjointPosOnPhysVolGenerator::GenerateAPositionOnTheExtSurfaceOfThePhysicalVolume(), G4ErrorCylSurfaceTarget::GetDistanceFromPoint(), G4Navigator::GetGlobalExitNormal(), G4ITNavigator::GetGlobalExitNormal(), G4VIntersectionLocator::GetGlobalSurfaceNormal(), G4RegularNavigation::LevelLocate(), G4Navigator::LocateGlobalPointAndSetup(), G4ITNavigator::LocateGlobalPointAndSetup(), G4VXTRenergyLoss::PostStepDoIt(), G4FastTrack::SetCurrentTrack(), and G4DisplacedSolid::SurfaceNormal().

00203 {
00204         return G4ThreeVector( axis.x()*rxx + axis.y()*ryx + axis.z()*rzx,
00205                               axis.x()*rxy + axis.y()*ryy + axis.z()*rzy,
00206                               axis.x()*rxz + axis.y()*ryz + axis.z()*rzz  );
00207 }

G4ThreeVector G4AffineTransform::TransformPoint ( const G4ThreeVector vec  )  const [inline]

Definition at line 194 of file G4AffineTransform.icc.

Referenced by G4ReplicaNavigation::BackLocate(), G4VTwistedFaceted::CalculateExtent(), G4TwistedTubs::CalculateExtent(), G4Tubs::CalculateExtent(), G4Trd::CalculateExtent(), G4Torus::CalculateExtent(), G4Tet::CalculateExtent(), G4Sphere::CalculateExtent(), G4PolyPhiFace::CalculateExtent(), G4Para::CalculateExtent(), G4Hype::CalculateExtent(), G4GenericTrap::CalculateExtent(), G4Ellipsoid::CalculateExtent(), G4CutTubs::CalculateExtent(), G4Cons::CalculateExtent(), G4BREPSolid::CalculateExtent(), G4Box::CalculateExtent(), G4PVPlacement::CheckOverlaps(), G4PVParameterised::CheckOverlaps(), G4Navigator::ComputeLocalPoint(), G4ITNavigator::ComputeLocalPoint(), G4ReplicaNavigation::ComputeSafety(), G4ReplicaNavigation::ComputeStep(), G4RegularNavigation::ComputeStep(), G4RegularNavigation::ComputeStepSkippingEqualMaterials(), G4VTwistedFaceted::CreateRotatedVertices(), G4Tubs::CreateRotatedVertices(), G4Trd::CreateRotatedVertices(), G4Trap::CreateRotatedVertices(), G4Tet::CreateRotatedVertices(), G4Para::CreateRotatedVertices(), G4Ellipsoid::CreateRotatedVertices(), G4CutTubs::CreateRotatedVertices(), G4BREPSolid::CreateRotatedVertices(), G4Box::CreateRotatedVertices(), G4DisplacedSolid::DistanceToIn(), G4DisplacedSolid::DistanceToOut(), G4AdjointPosOnPhysVolGenerator::GenerateAPositionOnTheExtSurfaceOfThePhysicalVolume(), G4ErrorCylSurfaceTarget::GetDistanceFromPoint(), G4Navigator::GetLocalExitNormal(), G4ITNavigator::GetLocalExitNormal(), G4Navigator::GetLocalExitNormalAndCheck(), G4ITNavigator::GetLocalExitNormalAndCheck(), G4DisplacedSolid::GetPointOnSurface(), G4ErrorCylSurfaceTarget::GetTangentPlane(), G4DisplacedSolid::Inside(), G4VoxelNavigation::LevelLocate(), G4RegularNavigation::LevelLocate(), G4ParameterisedNavigation::LevelLocate(), G4NormalNavigation::LevelLocate(), G4Navigator::LocateGlobalPointAndSetup(), G4ITNavigator::LocateGlobalPointAndSetup(), G4VXTRenergyLoss::PostStepDoIt(), G4FastTrack::SetCurrentTrack(), and G4DisplacedSolid::SurfaceNormal().

00195 {
00196         return G4ThreeVector( vec.x()*rxx + vec.y()*ryx + vec.z()*rzx   + tx,
00197                               vec.x()*rxy + vec.y()*ryy + vec.z()*rzy   + ty,
00198                               vec.x()*rxz + vec.y()*ryz + vec.z()*rzz   + tz  );
00199 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:51:25 2013 for Geant4 by  doxygen 1.4.7