go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkTransformToDeterminantOfSpatialJacobianSource.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright UMC Utrecht and contributors
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18/*=========================================================================
19
20 Program: Insight Segmentation & Registration Toolkit
21 Module: $RCSfile: itkTransformToDeterminantOfSpatialJacobianSource.h,v $
22 Date: $Date: 2008-08-01 13:42:00 $
23 Version: $Revision: 1.3 $
24
25 Copyright (c) Insight Software Consortium. All rights reserved.
26 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
27
28 This software is distributed WITHOUT ANY WARRANTY; without even
29 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
30 PURPOSE. See the above copyright notices for more information.
31
32=========================================================================*/
33#ifndef itkTransformToDeterminantOfSpatialJacobianSource_h
34#define itkTransformToDeterminantOfSpatialJacobianSource_h
35
38#include "itkImageSource.h"
39
40namespace itk
41{
42
73template <class TOutputImage, class TTransformPrecisionType = double>
74class ITK_TEMPLATE_EXPORT TransformToDeterminantOfSpatialJacobianSource : public ImageSource<TOutputImage>
75{
76public:
78
81 using Superclass = ImageSource<TOutputImage>;
82 using Pointer = SmartPointer<Self>;
83 using ConstPointer = SmartPointer<const Self>;
84
85 using OutputImageType = TOutputImage;
86 using OutputImagePointer = typename OutputImageType::Pointer;
87 using OutputImageConstPointer = typename OutputImageType::ConstPointer;
88 using OutputImageRegionType = typename OutputImageType::RegionType;
89
91 itkNewMacro(Self);
92
95
97 itkStaticConstMacro(ImageDimension, unsigned int, TOutputImage::ImageDimension);
98
103
105 using PixelType = typename OutputImageType::PixelType;
106 // typedef typename PixelType::ValueType PixelValueType;
107 using RegionType = typename OutputImageType::RegionType;
108 using SizeType = typename RegionType::SizeType;
109 using IndexType = typename OutputImageType::IndexType;
110 using PointType = typename OutputImageType::PointType;
111 using SpacingType = typename OutputImageType::SpacingType;
112 using OriginType = typename OutputImageType::PointType;
113 using DirectionType = typename OutputImageType::DirectionType;
114
116 using ImageBaseType = ImageBase<Self::ImageDimension>;
117
125 itkSetConstObjectMacro(Transform, TransformType);
126
128 itkGetConstObjectMacro(Transform, TransformType);
129
131 virtual void
132 SetOutputSize(const SizeType & size);
133
135 virtual const SizeType &
137
140 virtual void
141 SetOutputIndex(const IndexType & index);
142
144 virtual const IndexType &
146
148 itkSetMacro(OutputRegion, OutputImageRegionType);
149
151 itkGetConstReferenceMacro(OutputRegion, OutputImageRegionType);
152
154 itkSetMacro(OutputSpacing, SpacingType);
155 virtual void
156 SetOutputSpacing(const double * values);
157
159 itkGetConstReferenceMacro(OutputSpacing, SpacingType);
160
162 itkSetMacro(OutputOrigin, OriginType);
163 virtual void
164 SetOutputOrigin(const double * values);
165
167 itkGetConstReferenceMacro(OutputOrigin, OriginType);
168
170 itkSetMacro(OutputDirection, DirectionType);
171 itkGetConstReferenceMacro(OutputDirection, DirectionType);
172
174 void
176
178 void
180
183 void
185
187 ModifiedTimeType
188 GetMTime() const override;
189
190protected:
193
194 void
195 PrintSelf(std::ostream & os, Indent indent) const override;
196
200 void
201 ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread, ThreadIdType threadId) override;
202
206 void
207 NonlinearThreadedGenerateData(const OutputImageRegionType & outputRegionForThread, ThreadIdType threadId);
208
211 void
213
214private:
216 RegionType m_OutputRegion{}; // region of the output image
220 SpacingType m_OutputSpacing{ 1.0 }; // output image spacing
221 OriginType m_OutputOrigin{}; // output image origin
222 DirectionType m_OutputDirection{ DirectionType::GetIdentity() }; // output image direction cosines
223};
224
225} // end namespace itk
226
227#ifndef ITK_MANUAL_INSTANTIATION
228# include "itkTransformToDeterminantOfSpatialJacobianSource.hxx"
229#endif
230
231#endif // end #ifndef itkTransformToDeterminantOfSpatialJacobianSource_h
Implementation of an Identity Transform.
Transform maps points, vectors and covariant vectors from an input space to an output space.
Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension > SpatialJacobianType
SmartPointer< const Self > ConstPointer
Generate the spatial Jacobian from a coordinate transform.
virtual void SetOutputSpacing(const double *values)
virtual void SetOutputIndex(const IndexType &index)
itkStaticConstMacro(ImageDimension, unsigned int, TOutputImage::ImageDimension)
void PrintSelf(std::ostream &os, Indent indent) const override
void ThreadedGenerateData(const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) override
void NonlinearThreadedGenerateData(const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId)
virtual void SetOutputOrigin(const double *values)
ModifiedTimeType GetMTime() const override
virtual void SetOutputSize(const SizeType &size)
void SetOutputParametersFromImage(const ImageBaseType *image)
ITK_DISALLOW_COPY_AND_MOVE(TransformToDeterminantOfSpatialJacobianSource)


Generated on 2024-07-17 for elastix by doxygen 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) elastix logo