ATLAS Offline Software
Loading...
Searching...
No Matches
AmgTransformPlugin.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
6// GeoPrimitivesHelpers.h, (c) ATLAS Detector software
8
9#ifndef EVENTPRIMITIVES_AMGTRANSFORMPLUGIN_H
10#define EVENTPRIMITIVES_AMGTRANSFORMPLUGIN_H
11
22
23
24inline explicit Transform(const Vector3d& translation) {
25 check_template_params();
26 m_matrix.block(0, 3, 3, 1) = translation;
27 m_matrix.block(0, 0, 3, 3).setIdentity();
28 if (int(Mode) == Affine)
29 makeAffine();
30}
31
32inline explicit Transform(const Matrix<double, 3, 3>& rotation,
33 const Vector3d& translation) {
34 check_template_params();
35 m_matrix.block(0, 0, 3, 3) = rotation;
36 m_matrix.block(0, 3, 3, 1) = translation;
37 if (int(Mode) == Affine)
38 makeAffine();
39}
40inline explicit Transform(const Matrix<double, 3, 3>& rotation,
41 const TranslationType& translation) {
42 check_template_params();
43 m_matrix.block(0, 0, 3, 3) = rotation;
44 m_matrix.block(0, 3, 3, 1) = translation.vector();
45 if (int(Mode) == Affine)
46 makeAffine();
47}
48
49inline explicit Transform(const Vector3d& rotationMatrixCol0,
50 const Vector3d& rotationMatrixCol1,
51 const Vector3d& rotationMatrixCol2,
52 const Vector3d& translation) {
53 check_template_params();
54 m_matrix.block(0, 0, 3, 1) = rotationMatrixCol0;
55 m_matrix.block(0, 1, 3, 1) = rotationMatrixCol1;
56 m_matrix.block(0, 2, 3, 1) = rotationMatrixCol2;
57 m_matrix.block(0, 3, 3, 1) = translation;
58 if (int(Mode) == Affine)
59 makeAffine();
60}
61
62#endif
Transform(const Vector3d &translation)
Affine Transform constuctors construct an augmented Matrix R R R T R R R T R R R T 0 0 0 1 Where R is...