ITK
4.1.0
Insight Segmentation and Registration Toolkit
|
00001 /*========================================================================= 00002 * 00003 * Copyright Insight Software Consortium 00004 * 00005 * Licensed under the Apache License, Version 2.0 (the "License"); 00006 * you may not use this file except in compliance with the License. 00007 * You may obtain a copy of the License at 00008 * 00009 * http://www.apache.org/licenses/LICENSE-2.0.txt 00010 * 00011 * Unless required by applicable law or agreed to in writing, software 00012 * distributed under the License is distributed on an "AS IS" BASIS, 00013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00014 * See the License for the specific language governing permissions and 00015 * limitations under the License. 00016 * 00017 *=========================================================================*/ 00018 #ifndef __itkBSplineSmoothingOnUpdateDisplacementFieldTransformParametersAdaptor_h 00019 #define __itkBSplineSmoothingOnUpdateDisplacementFieldTransformParametersAdaptor_h 00020 00021 #include "itkDisplacementFieldTransformParametersAdaptor.h" 00022 00023 namespace itk 00024 { 00032 template<class TTransform> 00033 class ITK_EXPORT BSplineSmoothingOnUpdateDisplacementFieldTransformParametersAdaptor 00034 : public DisplacementFieldTransformParametersAdaptor<TTransform> 00035 { 00036 public: 00037 00039 typedef BSplineSmoothingOnUpdateDisplacementFieldTransformParametersAdaptor Self; 00040 typedef DisplacementFieldTransformParametersAdaptor<TTransform> Superclass; 00041 typedef SmartPointer<Self> Pointer; 00042 typedef SmartPointer<const Self> ConstPointer; 00043 00045 itkNewMacro( Self ); 00046 00048 itkTypeMacro( BSplineSmoothingOnUpdateDisplacementFieldTransformParametersAdaptor, 00049 DisplacementFieldTransformParametersAdaptor ); 00050 00051 typedef TTransform TransformType; 00052 typedef typename TransformType::ScalarType ScalarType; 00053 typedef typename TransformType::SplineOrderType SplineOrderType; 00054 typedef typename TransformType::ArrayType ArrayType; 00055 00057 itkStaticConstMacro( SpaceDimension, unsigned int, TransformType::Dimension ); 00058 00066 virtual void SetNumberOfControlPointsForTheUpdateField( const ArrayType & ); 00067 00075 itkGetConstMacro( NumberOfControlPointsForTheUpdateField, ArrayType ); 00076 00083 void SetMeshSizeForTheUpdateField( const ArrayType & ); 00084 00092 virtual void SetNumberOfControlPointsForTheTotalField( const ArrayType & ); 00093 00101 itkGetConstMacro( NumberOfControlPointsForTheTotalField, ArrayType ); 00102 00109 void SetMeshSizeForTheTotalField( const ArrayType & ); 00110 00114 virtual void AdaptTransformParameters(); 00115 00116 protected: 00117 BSplineSmoothingOnUpdateDisplacementFieldTransformParametersAdaptor(); 00118 ~BSplineSmoothingOnUpdateDisplacementFieldTransformParametersAdaptor(); 00119 00120 void PrintSelf( std::ostream & os, Indent indent ) const; 00121 00122 private: 00123 BSplineSmoothingOnUpdateDisplacementFieldTransformParametersAdaptor( const Self & ); //purposely not implemented 00124 void operator=( const Self & ); //purposely not implemented 00125 00126 ArrayType m_NumberOfControlPointsForTheUpdateField; 00127 ArrayType m_NumberOfControlPointsForTheTotalField; 00128 unsigned long m_NumberOfControlPointsForTheUpdateFieldSetTime; 00129 unsigned long m_NumberOfControlPointsForTheTotalFieldSetTime; 00130 00131 00132 }; //class BSplineSmoothingOnUpdateDisplacementFieldTransformParametersAdaptor 00133 } // namespace itk 00134 00135 #ifndef ITK_MANUAL_INSTANTIATION 00136 #include "itkBSplineSmoothingOnUpdateDisplacementFieldTransformParametersAdaptor.hxx" 00137 #endif 00138 00139 #endif /* __itkBSplineSmoothingOnUpdateDisplacementFieldTransformParametersAdaptor_h */ 00140