18 #ifndef __igstkLandmark3DRegistration_h
19 #define __igstkLandmark3DRegistration_h
29 #include "itkLandmarkBasedTransformInitializer.h"
73 itkStaticConstMacro(Dimension,
unsigned int,3);
77 typedef itk::Image< PixelType, Dimension >
ImageType;
83 typedef itk::LandmarkBasedTransformInitializer< TransformType,
86 typedef TransformInitializerType::LandmarkPointContainer
139 TransformInitializerErrorEvent );
143 igstkEventMacro( TransformComputationSuccessEvent,TransformInitializerEvent);
154 void PrintSelf( std::ostream& os, itk::Indent indent ) const;
161 void operator=(const Self&);
164 TransformPointerType m_Transform;
165 TransformInitializerPointerType m_TransformInitializer;
168 LandmarkImagePointType m_ImageLandmarkPoint;
169 LandmarkTrackerPointType m_TrackerLandmarkPoint;
174 double m_CollinearityTolerance;
177 igstkDeclareStateMacro( Idle );
178 igstkDeclareStateMacro( ImageLandmark1Added );
179 igstkDeclareStateMacro( TrackerLandmark1Added );
180 igstkDeclareStateMacro( ImageLandmark2Added );
181 igstkDeclareStateMacro( TrackerLandmark2Added );
182 igstkDeclareStateMacro( ImageLandmark3Added );
183 igstkDeclareStateMacro( TrackerLandmark3Added );
184 igstkDeclareStateMacro( AttemptingToComputeTransform );
185 igstkDeclareStateMacro( TransformComputed );
189 igstkDeclareInputMacro( ImageLandmark );
190 igstkDeclareInputMacro( TrackerLandmark );
191 igstkDeclareInputMacro( ComputeTransform );
192 igstkDeclareInputMacro( GetTransformFromTrackerToImage );
193 igstkDeclareInputMacro( GetTransformFromImageToTracker );
194 igstkDeclareInputMacro( GetRMSError );
195 igstkDeclareInputMacro( ResetRegistration );
196 igstkDeclareInputMacro( TransformComputationFailure );
197 igstkDeclareInputMacro( TransformComputationSuccess );
201 bool CheckCollinearity();
206 void AddImageLandmarkPointProcessing();
210 void AddTrackerLandmarkPointProcessing();
214 void ResetRegistrationProcessing();
218 void ComputeTransformProcessing();
223 void GetTransformFromTrackerToImageProcessing();
228 void GetTransformFromImageToTrackerProcessing();
232 void GetRMSErrorProcessing();
236 void ReportInvalidRequestProcessing();
240 void ReportSuccessInTransformComputationProcessing();
244 void ReportFailureInTransformComputationProcessing();
253 #endif // __igstkLandmark3DRegistration_h