18 #ifndef __igstkCrossHairSpatialObject_h
19 #define __igstkCrossHairSpatialObject_h
24 #include "itkGroupSpatialObject.h"
75 const SpatialObjectType * spatialObject );
92 virtual
void PrintSelf( std::ostream& os, itk::Indent indent ) const;
100 typedef itk::GroupSpatialObject<3> CrossHairSpatialObjectType;
103 void operator=(const Self&);
106 void SetCursorPositionProcessing(
void );
109 void AttemptSetCursorPositionProcessing(
void );
112 void AttemptSetBoundingBoxProviderSpatialObjectProcessing(
void );
115 void SetToolSpatialObjectProcessing(
void );
118 void SetBoundingBoxProviderSpatialObjectProcessing(
void );
121 void GetCrossHairPositionProcessing(
void );
124 void ReportInvalidToolSpatialObjectProcessing(
void );
127 void ReportInvalidBoundingBoxProviderSpatialObjectProcessing(
void );
130 void ReportInvalidCursorPositionProcessing(
void );
133 void ReportInvalidRequestProcessing(
void );
136 void RequestGetToolTransformWRTImageCoordinateSystemProcessing(
void );
139 void RequestUpdateToolTransformWRTImageCoordinateSystem();
142 void ReceiveToolTransformWRTImageCoordinateSystemProcessing(
void );
144 CrossHairSpatialObjectType::
Pointer m_CrossHairSpatialObject;
146 PointType m_Position;
149 double m_CursorPositionToBeSet[3];
150 double m_CursorPosition[3];
151 bool m_CursorPositionSetFlag;
154 bool m_ToolSpatialObjectSet;
156 SpatialObjectPointerType m_ToolSpatialObjectToBeSet;
157 SpatialObjectPointerType m_ToolSpatialObject;
160 SpatialObjectPointerType m_BoundingBoxProviderSpatialObjectToBeSet;
161 SpatialObjectPointerType m_BoundingBoxProviderSpatialObject;
167 igstk::
Transform m_ToolTransformWRTImageCoordinateSystem;
170 igstkDeclareStateMacro( Initial );
171 igstkDeclareStateMacro( BoundingBoxProviderSpatialObjectSet );
172 igstkDeclareStateMacro( AttemptingToSetBoundingBoxProviderSpatialObject );
173 igstkDeclareStateMacro( AttemptingToSetCursorPosition );
174 igstkDeclareStateMacro( AttemptingToGetToolTransformWRTImageCoordinateSystem);
177 igstkDeclareInputMacro( SetBoundingBoxProviderSpatialObject );
178 igstkDeclareInputMacro( ValidBoundingBoxProviderSpatialObject );
179 igstkDeclareInputMacro( InValidBoundingBoxProviderSpatialObject );
180 igstkDeclareInputMacro( ValidToolSpatialObject );
181 igstkDeclareInputMacro( InValidToolSpatialObject );
182 igstkDeclareInputMacro( SetCursorPosition );
183 igstkDeclareInputMacro( ValidCursorPosition );
184 igstkDeclareInputMacro( InValidCursorPosition );
185 igstkDeclareInputMacro( GetToolTransformWRTImageCoordinateSystem );
186 igstkDeclareInputMacro( ToolTransformWRTImageCoordinateSystem );
187 igstkDeclareInputMacro( GetCrossHairPosition );
191 igstkLoadedEventTransductionMacro( CoordinateSystemTransformTo,
192 ToolTransformWRTImageCoordinateSystem );
194 igstkObserverConstObjectMacro( BoundingBox,
195 SpatialObjectType::BoundingBoxEvent,
196 SpatialObjectType::BoundingBoxType);
200 TransformToPoint( igstk::
Transform transform )
203 for (
unsigned int i=0; i<3; i++)
214 #endif // __igstkCrossHairSpatialObject_h