18 #ifndef __igstkCoordinateSystem_h
19 #define __igstkCoordinateSystem_h
52 class CoordinateSystem;
78 return input->GetCoordinateSystem();
96 void RequestSetTransformAndParent(
const Transform & t,
142 virtual void PrintSelf( std::ostream& os, itk::Indent indent )
const;
149 void operator=(
const Self&);
171 igstkDeclareStateMacro( Initialized );
174 igstkDeclareStateMacro( ParentSet );
177 igstkDeclareStateMacro( AttemptingComputeTransformTo );
178 igstkDeclareStateMacro( AttemptingComputeTransformToInInitialized );
185 igstkDeclareInputMacro( NullCoordinateSystem );
186 igstkDeclareInputMacro( ThisCoordinateSystem );
187 igstkDeclareInputMacro( ValidCoordinateSystem );
190 igstkDeclareInputMacro( NullParent );
191 igstkDeclareInputMacro( ThisParent );
192 igstkDeclareInputMacro( ValidParent );
193 igstkDeclareInputMacro( ParentCausesCycle );
198 igstkDeclareInputMacro( AncestorFound );
199 igstkDeclareInputMacro( Disconnected );
203 igstkDeclareInputMacro( DetachFromParent );
206 igstkDeclareInputMacro( UpdateTransformToParent );
211 Transform m_TransformFromRequestSetTransformAndParent;
215 void SetTransformAndParentNullParentProcessing();
218 void SetTransformAndParentThisParentProcessing();
223 void SetTransformAndParentCycleProcessing();
226 void SetTransformAndParentProcessing();
229 void UpdateTransformToParentProcessing();
240 void ComputeTransformToThisTargetProcessing();
245 void ComputeTransformToNullTargetProcessing();
250 void ComputeTransformToValidTargetProcessing();
255 void ComputeTransformToDisconnectedProcessing();
261 void ComputeTransformToAncestorFoundProcessing();
268 void FindLowestCommonAncestor(
const Self* targetCoordinateSystem);
293 void InvalidRequestProcessing();
296 void DoNothingProcessing();
299 void DetachFromParentProcessing();
316 igstkEventMacro( CoordinateSystemSetParentError, CoordinateSystemErrorEvent );
322 CoordinateSystemSetParentError );
328 CoordinateSystemSetParentError );
334 CoordinateSystemSetParentError,
339 #endif // __igstkCoordinateSystem_h
void RequestUpdateTransformToParent(const Transform &t)
CoordinateSystem(void)
Constructor.
#define igstkFriendClassMacro(type)
Create a Macro for friend class.
igstkGetStringMacro(Name)
static const CoordinateSystem * GetCoordinateSystem(const T &input)
Templated method to extract the CoordinateSystem from a holder class.
void RequestComputeTransformTo(const CoordinateSystem *targetCoordSys)
Request that a transform is computed to targetCoordSys This method generates three possible events: C...
Base class for all the IGSTK classes.
virtual void PrintSelf(std::ostream &os, itk::Indent indent) const
Print object information.
igstkEventMacro(AuroraTrackerToolEvent, StringEvent)
A proxy that ensures the encapsulation of the CoordinateSystem.
void RequestDetachFromParent()
Request that the coordinate system be detached from its parent.
igstkStandardClassTraitsMacro(CoordinateSystem, Object) void RequestSetTransformAndParent(const Transform &t
Macro with standard traits declarations.
igstkLoadedConstObjectEventMacro(CoordinateSystemParentCycleEvent, CoordinateSystemSetParentError, CoordinateSystem)
This event should be invoked when RequestSetTransformAndParent is called with a parent that causes a ...
void RequestGetTransformToParent()
Request the transform to parent.
~CoordinateSystem(void)
Destructor.
const CoordinateSystem * parent
igstkSetStringMacro(Name)
Coordinate systems have a name to facilitate future export of the scene graph as a diagram...
This class represents the frame of a coordinate reference system.
::itk::SmartPointer< const Self > ConstPointer