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
SpatialObjectType::BoundingBoxType BoundingBoxType
igstkObserverMacro(ImageTransform, CoordinateSystemTransformToEvent, CoordinateSystemTransformToResult)
Geometrical abstraction of physical objects present in the surgical scene.
Base class for all the IGSTK classes.
#define igstkStandardClassTraitsMacro(classname, superclassname)
Convenience macro for traits of a non-templated class.
igstkStandardClassTraitsMacro(CrossHairSpatialObject, SpatialObject) typedef igstk typedef igstk::Transform::VectorType VectorType
Macro with standard traits declarations.
SpatialObjectType::Pointer SpatialObjectPointerType
defines standard system-wide macros, constants, and other common parameters in the IGSTK Library...
This class represents a cross hair spatial object.
void RequestSetCursorPosition(PointType point)
Request set cursor position.
::itk::SmartPointer< Self > Pointer
itk::Point< double, 3 > PointType
bool IsInsideBounds()
Inquiry if tool position is inside bounds.
void RequestSetBoundingBoxProviderSpatialObject(const SpatialObjectType *spatialObject)
Request set bounding box provider spatial object.
virtual void PrintSelf(std::ostream &os, itk::Indent indent) const
Print object information.
bool IsToolSpatialObjectSet()
Inquiry if a tool spatial object is set.
::itk::SmartPointer< const Self > ConstPointer
void RequestSetToolSpatialObject(const SpatialObjectType *spatialObject)
Request set tool spatial object.
igstk::Transform GetToolTransform() const
Get tool transform.
void RequestGetCrossHairPosition()
Request get cross hair position.
double GetBoundingBoxDimensionByIndex(unsigned int index) const
Get boundings by index.