]> Creatis software - clitk.git/commitdiff
itkv4 migration:
authordelmon <delmon>
Thu, 14 Apr 2011 08:15:32 +0000 (08:15 +0000)
committerdelmon <delmon>
Thu, 14 Apr 2011 08:15:32 +0000 (08:15 +0000)
  + Some methods of itk::Transform are now virtual pure and need to be defined
    in any class that inherits from it.

registration/clitkDeformationFieldTransform.h
registration/clitkPointListTransform.h

index 273376b45f23413b1bd63fa4a12a86d23fc14295..038150173af4abc6aaa1ea7000c6ac75574a6f3c 100644 (file)
@@ -59,7 +59,62 @@ namespace clitk
     void SetDeformationField (typename DeformationFieldType::Pointer p){m_DeformationField=p; m_Interpolator->SetInputImage(m_DeformationField);}
     void SetInterpolator (typename InterpolatorType::Pointer i){ m_Interpolator=i; m_Interpolator->SetInputImage(m_DeformationField);}
     OutputPointType TransformPoint(const InputPointType  &point ) const;
-   
+
+    // Methods needed to inherit from an itk::Transform which should not be used
+    // in this class
+    /** Type of the input parameters. */
+    typedef typename Superclass::ParametersType        ParametersType;
+    typedef typename Superclass::ParametersValueType   ParametersValueType;
+
+    /** Type of the Jacobian matrix. */
+    typedef typename Superclass::JacobianType          JacobianType;
+
+    /** Standard vector type for this class. */
+    typedef typename Superclass::InputVectorType InputVectorType;
+    typedef typename Superclass::OutputVectorType OutputVectorType;
+
+    /** Standard covariant vector type for this class */
+    typedef typename Superclass::InputCovariantVectorType      InputCovariantVectorType;
+    typedef typename Superclass::OutputCovariantVectorType     OutputCovariantVectorType;
+
+    /** Standard vnl_vector type for this class. */
+    typedef typename Superclass::InputVnlVectorType    InputVnlVectorType;
+    typedef typename Superclass::OutputVnlVectorType   OutputVnlVectorType;
+
+    void SetParameters(const ParametersType&)
+    {
+      itkExceptionMacro( << "DeformationFieldTransform doesn't declare SetParameters" );
+    }
+
+    void SetFixedParameters(const ParametersType&)
+    {
+      itkExceptionMacro( << "DeformationFieldTransform doesn't declare SetFixedParameters" );
+    }
+
+    virtual OutputVectorType TransformVector(const InputVectorType &) const
+    {
+      itkExceptionMacro(<< "Method not applicable for deformable transform." );
+      return OutputVectorType();
+    }
+
+    virtual OutputVnlVectorType TransformVector(const InputVnlVectorType &) const
+    {
+      itkExceptionMacro(<< "Method not applicable for deformable transform. ");
+      return OutputVnlVectorType();
+    }
+
+    virtual OutputCovariantVectorType TransformCovariantVector(const InputCovariantVectorType &) const
+    {
+      itkExceptionMacro(<< "Method not applicable for deformable transfrom. ");
+      return OutputCovariantVectorType();
+    }
+
+    virtual const JacobianType& GetJacobian(const InputPointType  &point ) const
+    {
+      itkExceptionMacro( << "DeformationFieldTransform doesn't declare GetJacobian" );
+      return this->m_Jacobian;
+    }
+
   protected:
     DeformationFieldTransform();
     ~DeformationFieldTransform(){;}
index 3146f80c62e046980d25202b179e10fccab5caa3..9561f10d1ba5b13445a674ac7d3fb9a52c574488 100644 (file)
@@ -67,7 +67,62 @@ namespace clitk
 
     PointListType GetCorrespondingPointList(const InputPointType &inputPoint) const; 
     OutputPointType TransformPoint(const InputPointType  &point ) const;
-   
+
+    // Methods needed to inherit from an itk::Transform which should not be used
+    // in this class
+    /** Type of the input parameters. */
+    typedef typename Superclass::ParametersType        ParametersType;
+    typedef typename Superclass::ParametersValueType   ParametersValueType;
+
+    /** Type of the Jacobian matrix. */
+    typedef typename Superclass::JacobianType          JacobianType;
+
+    /** Standard vector type for this class. */
+    typedef typename Superclass::InputVectorType InputVectorType;
+    typedef typename Superclass::OutputVectorType OutputVectorType;
+
+    /** Standard covariant vector type for this class */
+    typedef typename Superclass::InputCovariantVectorType      InputCovariantVectorType;
+    typedef typename Superclass::OutputCovariantVectorType     OutputCovariantVectorType;
+
+    /** Standard vnl_vector type for this class. */
+    typedef typename Superclass::InputVnlVectorType    InputVnlVectorType;
+    typedef typename Superclass::OutputVnlVectorType   OutputVnlVectorType;
+
+    void SetParameters(const ParametersType&)
+    {
+      itkExceptionMacro( << "PointListTransform doesn't declare SetParameters" );
+    }
+
+    void SetFixedParameters(const ParametersType&)
+    {
+      itkExceptionMacro( << "PointListTransform doesn't declare SetFixedParameters" );
+    }
+
+    virtual OutputVectorType TransformVector(const InputVectorType &) const
+    {
+      itkExceptionMacro(<< "Method not applicable for deformable transform." );
+      return OutputVectorType();
+    }
+
+    virtual OutputVnlVectorType TransformVector(const InputVnlVectorType &) const
+    {
+      itkExceptionMacro(<< "Method not applicable for deformable transform. ");
+      return OutputVnlVectorType();
+    }
+
+    virtual OutputCovariantVectorType TransformCovariantVector(const InputCovariantVectorType &) const
+    {
+      itkExceptionMacro(<< "Method not applicable for deformable transfrom. ");
+      return OutputCovariantVectorType();
+    }
+
+    virtual const JacobianType& GetJacobian(const InputPointType  &point ) const
+    {
+      itkExceptionMacro( << "PointListTransform doesn't declare GetJacobian" );
+      return this->m_Jacobian;
+    }
+
   protected:
     PointListTransform();
     ~PointListTransform(){;}