aimsdata 6.0.0
Neuroimaging data handling
motion.h
Go to the documentation of this file.
1/* This software and supporting documentation are distributed by
2 * Institut Federatif de Recherche 49
3 * CEA/NeuroSpin, Batiment 145,
4 * 91191 Gif-sur-Yvette cedex
5 * France
6 *
7 * This software is governed by the CeCILL-B license under
8 * French law and abiding by the rules of distribution of free software.
9 * You can use, modify and/or redistribute the software under the
10 * terms of the CeCILL-B license as circulated by CEA, CNRS
11 * and INRIA at the following URL "http://www.cecill.info".
12 *
13 * As a counterpart to the access to the source code and rights to copy,
14 * modify and redistribute granted by the license, users are provided only
15 * with a limited warranty and the software's author, the holder of the
16 * economic rights, and the successive licensors have only limited
17 * liability.
18 *
19 * In this respect, the user's attention is drawn to the risks associated
20 * with loading, using, modifying and/or developing or reproducing the
21 * software by the user in light of its specific status of free software,
22 * that may mean that it is complicated to manipulate, and that also
23 * therefore means that it is reserved for developers and experienced
24 * professionals having in-depth computer knowledge. Users are therefore
25 * encouraged to load and test the software's suitability as regards their
26 * requirements in conditions enabling the security of their systems and/or
27 * data to be ensured and, more generally, to use and operate it in the
28 * same conditions as regards security.
29 *
30 * The fact that you are presently reading this means that you have had
31 * knowledge of the CeCILL-B license and that you accept its terms.
32 */
33
34/*
35 * Non elastic AffineTransformation3d ( rotation + translation )
36 */
37#ifndef AIMS_RESAMPLING_MOTION_H
38#define AIMS_RESAMPLING_MOTION_H
39
42
43namespace aims
44{
45
46 //------------------------------------//
47 // DecomposedAffineTransformation3d //
48//------------------------------------//
49
50
51//-----------------------------------------------------------------------------
54{
55public:
56
62
63 // Get shearing
65 const carto::VolumeRef<float>& shearing() const { return _shear; }
66
67 // Get scaling
69 const carto::VolumeRef<float>& scaling() const { return _scaling; }
70
71 // Get rot
73 const carto::VolumeRef<float>& rot() const { return _rot;}
74
75 virtual void setToIdentity() ;
76
77 // AffineTransformation3d algebraic operation
78 virtual void scale( const Point3df& sizeFrom, const Point3df& sizeTo );
79
80 //Initialisation
81 virtual void setRotationAffine( float rx, float ry, float rz,
82 const Point3df & c = Point3df( 0.0 ) );
83 //void setRotationVectorial( const Point3df& v1, const Point3df& v2 );
84 void setShearing(float Cx, float Cy, float Cz ) ;
85 void setScaling(float Sx, float Sy, float Sz ) ;
86 void setRotation( float Rx, float Ry, float Rz ) ;
87 void transAffine(Point3df cg = Point3df( 0.0 ) );
88
89protected:
90
94
95};
96
97}
98
99
102
103#endif
AffineTransformation3d()
Create an identity transformation.
const carto::VolumeRef< float > & shearing() const
Definition motion.h:65
const carto::VolumeRef< float > & rot() const
Definition motion.h:73
carto::VolumeRef< float > _rot
Definition motion.h:93
const carto::VolumeRef< float > & scaling() const
Definition motion.h:69
carto::VolumeRef< float > & shearing()
Definition motion.h:64
void setRotation(float Rx, float Ry, float Rz)
DecomposedAffineTransformation3d(const DecomposedAffineTransformation3d &other)
carto::VolumeRef< float > & rot()
Definition motion.h:72
DecomposedAffineTransformation3d & operator=(const DecomposedAffineTransformation3d &other)
virtual void scale(const Point3df &sizeFrom, const Point3df &sizeTo)
carto::VolumeRef< float > _shear
Definition motion.h:91
carto::VolumeRef< float > & scaling()
Definition motion.h:68
void transAffine(Point3df cg=Point3df(0.0))
virtual void setRotationAffine(float rx, float ry, float rz, const Point3df &c=Point3df(0.0))
void setScaling(float Sx, float Sy, float Sz)
carto::VolumeRef< float > _scaling
Definition motion.h:92
void setShearing(float Cx, float Cy, float Cz)
aims::DecomposedAffineTransformation3d DecomposedMotion
Definition motion.h:101
The class for EcatSino data write operation.
aims::AffineTransformation3d Motion
Definition spmR.h:52
AimsVector< float, 3 > Point3df