Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes

mitk::ThinPlateSplineCurvedGeometry Class Reference
[Geometry Classes]

Thin-plate-spline-based landmark-based curved geometry. More...

#include <mitkThinPlateSplineCurvedGeometry.h>

Inheritance diagram for mitk::ThinPlateSplineCurvedGeometry:
Inheritance graph
[legend]
Collaboration diagram for mitk::ThinPlateSplineCurvedGeometry:
Collaboration graph
[legend]

List of all members.

Public Types

typedef
ThinPlateSplineCurvedGeometry 
Self
typedef
LandmarkProjectorBasedCurvedGeometry 
Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer
< const Self
ConstPointer

Public Member Functions

virtual const char * GetClassName () const
 Method for creation through the object factory.
virtual void ComputeGeometry ()
virtual
AffineGeometryFrame3D::Pointer 
Clone () const
 clones the geometry
vtkThinPlateSplineTransform * GetThinPlateSplineTransform () const
virtual void SetSigma (float sigma)
virtual float GetSigma () const
virtual bool IsValid () const
 Is this Geometry3D in a state that is valid?

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 ThinPlateSplineCurvedGeometry ()
virtual ~ThinPlateSplineCurvedGeometry ()
void InitializeGeometry (Self *newGeometry) const

Protected Attributes

vtkThinPlateSplineTransform * m_ThinPlateSplineTransform
vtkPoints * m_VtkTargetLandmarks
vtkPoints * m_VtkProjectedLandmarks

Detailed Description

Thin-plate-spline-based landmark-based curved geometry.

Definition at line 33 of file mitkThinPlateSplineCurvedGeometry.h.


Member Typedef Documentation

typedef itk::SmartPointer<const Self> mitk::ThinPlateSplineCurvedGeometry::ConstPointer

Constructor & Destructor Documentation

mitk::ThinPlateSplineCurvedGeometry::ThinPlateSplineCurvedGeometry (  ) [protected]
mitk::ThinPlateSplineCurvedGeometry::~ThinPlateSplineCurvedGeometry (  ) [protected, virtual]

Definition at line 32 of file mitkThinPlateSplineCurvedGeometry.cpp.

{
  // don't need to delete m_ThinPlateSplineTransform, because it is
  // the same as m_InterpolatingAbstractTransform, which will be deleted
  // by the superclass.

  if(m_VtkTargetLandmarks!=NULL)
    m_VtkTargetLandmarks->Delete();
  if(m_VtkProjectedLandmarks!=NULL)
    m_VtkProjectedLandmarks->Delete();
}

Member Function Documentation

mitk::AffineGeometryFrame3D::Pointer mitk::ThinPlateSplineCurvedGeometry::Clone (  ) const [virtual]

clones the geometry

Overwrite in all sub-classes. Normally looks like:

  //##  Self::Pointer newGeometry = Self::New();
  //##  newGeometry->Initialize();
  //##  InitializeGeometry(newGeometry);
  //##  return newGeometry.GetPointer();
  //## 
See also:
InitializeGeometry

Reimplemented from mitk::AbstractTransformGeometry.

Definition at line 93 of file mitkThinPlateSplineCurvedGeometry.cpp.

{
  Self::Pointer newGeometry = Self::New();
  newGeometry->Initialize();
  InitializeGeometry(newGeometry);
  return newGeometry.GetPointer();
}
void mitk::ThinPlateSplineCurvedGeometry::ComputeGeometry (  ) [virtual]

Reimplemented from mitk::LandmarkProjectorBasedCurvedGeometry.

Definition at line 60 of file mitkThinPlateSplineCurvedGeometry.cpp.

{
  Superclass::ComputeGeometry();

  const mitk::PointSet::DataType::PointsContainer *finalTargetLandmarks, *projectedTargetLandmarks;

  finalTargetLandmarks = m_LandmarkProjector->GetFinalTargetLandmarks();
  projectedTargetLandmarks = m_LandmarkProjector->GetProjectedLandmarks();

  mitk::PointSet::DataType::PointsContainer::ConstIterator targetIt, projectedIt;
  
  targetIt    = finalTargetLandmarks->Begin();
  projectedIt = projectedTargetLandmarks->Begin();

  //initialize Thin-Plate-Spline
  m_VtkTargetLandmarks->Reset();
  m_VtkProjectedLandmarks->Reset();
  vtkIdType id;
  int size=finalTargetLandmarks->Size();
  for(id=0; id < size; ++id, ++targetIt, ++projectedIt)
  { 
    const mitk::PointSet::PointType& target = targetIt->Value();
    m_VtkTargetLandmarks->InsertPoint(id, target[0], target[1], target[2]);
    const mitk::PointSet::PointType& projected = projectedIt->Value();
    m_VtkProjectedLandmarks->InsertPoint(id, projected[0], projected[1], projected[2]);
  }
  m_VtkTargetLandmarks->Modified();
  m_VtkProjectedLandmarks->Modified();

  m_ThinPlateSplineTransform->SetSourceLandmarks(m_VtkProjectedLandmarks);
  m_ThinPlateSplineTransform->SetTargetLandmarks(m_VtkTargetLandmarks);
}
virtual const char* mitk::ThinPlateSplineCurvedGeometry::GetClassName (  ) const [virtual]

Method for creation through the object factory.

Reimplemented from mitk::LandmarkProjectorBasedCurvedGeometry.

float mitk::ThinPlateSplineCurvedGeometry::GetSigma (  ) const [virtual]

Definition at line 54 of file mitkThinPlateSplineCurvedGeometry.cpp.

{
  return m_ThinPlateSplineTransform->GetSigma();

}
vtkThinPlateSplineTransform* mitk::ThinPlateSplineCurvedGeometry::GetThinPlateSplineTransform (  ) const [inline]

Definition at line 44 of file mitkThinPlateSplineCurvedGeometry.h.

void mitk::ThinPlateSplineCurvedGeometry::InitializeGeometry ( Self newGeometry ) const [protected]

Reimplemented from mitk::LandmarkProjectorBasedCurvedGeometry.

Definition at line 101 of file mitkThinPlateSplineCurvedGeometry.cpp.

{
  newGeometry->SetSigma(GetSigma());
  Superclass::InitializeGeometry(newGeometry);
}
bool mitk::ThinPlateSplineCurvedGeometry::IsValid (  ) const [virtual]

Is this Geometry3D in a state that is valid?

Reimplemented from mitk::Geometry3D.

Definition at line 44 of file mitkThinPlateSplineCurvedGeometry.cpp.

{
  return m_TargetLandmarks.IsNotNull() && (m_TargetLandmarks->Size() >= 3) && m_LandmarkProjector.IsNotNull();
}
static Pointer mitk::ThinPlateSplineCurvedGeometry::New (  ) [static]

Method for creation through the object factory.

Reimplemented from mitk::AbstractTransformGeometry.

Referenced by mitk::PointSetToCurvedGeometryFilter::GenerateOutputInformation(), and ThinPlateSplineCurvedGeometry().

void mitk::ThinPlateSplineCurvedGeometry::SetSigma ( float  sigma ) [virtual]

Definition at line 49 of file mitkThinPlateSplineCurvedGeometry.cpp.

{
  m_ThinPlateSplineTransform->SetSigma(sigma);
}

Member Data Documentation

vtkThinPlateSplineTransform* mitk::ThinPlateSplineCurvedGeometry::m_ThinPlateSplineTransform [protected]

Definition at line 58 of file mitkThinPlateSplineCurvedGeometry.h.

Referenced by ThinPlateSplineCurvedGeometry().

Definition at line 61 of file mitkThinPlateSplineCurvedGeometry.h.

Referenced by ThinPlateSplineCurvedGeometry().

Definition at line 60 of file mitkThinPlateSplineCurvedGeometry.h.

Referenced by ThinPlateSplineCurvedGeometry().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines