13 #ifndef TimeNavigationController_h
14 #define TimeNavigationController_h
21 #include <itkCommand.h>
111 bool CheckEvent(const ::itk::EventObject *e)
const override {
return dynamic_cast<const Self *
>(e); }
117 void operator=(
const Self &);
120 template <
typename T>
123 typedef typename itk::ReceptorMemberCommand<T>::Pointer ReceptorMemberCommandPointer;
124 ReceptorMemberCommandPointer eventReceptorCommand = itk::ReceptorMemberCommand<T>::New();
125 eventReceptorCommand->SetCallbackFunction(receiver, &T::SetGeometryTime);
126 unsigned long tag = AddObserver(
TimeEvent(0), eventReceptorCommand);
127 m_ReceiverToObserverTagsMap[
static_cast<void *
>(receiver)].push_back(tag);
131 template <
typename T>
134 auto i = m_ReceiverToObserverTagsMap.find(
static_cast<void*
>(receiver));
135 if (i == m_ReceiverToObserverTagsMap.end())
137 const std::list<unsigned long>& tags = i->second;
138 for (
auto tagIter = tags.begin(); tagIter != tags.end(); ++tagIter)
140 RemoveObserver(*tagIter);
142 m_ReceiverToObserverTagsMap.erase(i);
Baseclass for renderer slice-/camera-/time-control.
bool CheckEvent(const ::itk::EventObject *e) const override
TimeEvent(TimeStepType timeStep)
const char * GetEventName() const override
::itk::EventObject * MakeObject() const override
TimeStepType GetTimeStep() const
Controls the time-related properties of the time stepper, according to the given input world time geo...
ObserverTagsMapType m_ReceiverToObserverTagsMap
void ConnectTimeEvent(T *receiver)
TimePointType GetSelectedTimePoint() const
Convenience method that returns the time point that corresponds to the selected time step....
void Disconnect(T *receiver)
virtual void Update()
Do the actual time-related properties extraction and send the currently selected time step to the con...
TimeNavigationController()
virtual void SendTime()
Send the currently selected time step to the connected observers (renderers).
TimeGeometry::ConstPointer m_InputWorldTimeGeometry
TimeStepType GetSelectedTimeStep() const
Convenience method that returns the time step currently selected by the controller.
mitkClassMacro(TimeNavigationController, BaseController)
std::map< void *, std::list< unsigned long > > ObserverTagsMapType
~TimeNavigationController() override
void SetInputWorldTimeGeometry(const TimeGeometry *geometry)
Set the input time geometry out of which the time-related properties will be generated.
Find image slices visible on a given plane.
mitk::ScalarType TimePointType