39 #include <QApplication> 51 mController = controller;
60 void TrackingSystemPlaybackService::start()
62 if (!this->forceBaseToConfiguredState())
64 reportWarning(
"ToolManager must be configured before setting playback");
68 std::vector<ToolPtr> original;
69 for (
unsigned i=0; i<mBases.size(); ++i)
71 std::vector<ToolPtr> original_one = mBases[i]->getTools();
72 std::copy(original_one.begin(), original_one.end(), std::back_inserter(original));
77 for (
unsigned i=0; i<original.size(); ++i)
81 mTools.push_back(current);
84 if (!history->empty())
86 timeRange.first = std::min(timeRange.first, history->begin()->first);
87 timeRange.second = std::max(timeRange.second, history->rbegin()->first);
91 mController->initialize(QDateTime::fromMSecsSinceEpoch(timeRange.first), timeRange.second - timeRange.first);
93 report(
"Opened Playback Mode");
98 void TrackingSystemPlaybackService::stop()
102 report(
"Closed Playback Mode");
106 bool TrackingSystemPlaybackService::forceBaseToConfiguredState()
108 bool atLeastOneConfigured =
false;
110 for (
unsigned i=0; i<mBases.size(); ++i)
121 atLeastOneConfigured = atLeastOneConfigured || configured;
124 return atLeastOneConfigured;
133 for (
unsigned i=0; i<timeout/interval; ++i)
135 if (base->getState() == state)
137 qApp->processEvents();
144 std::vector<ToolPtr> retval;
145 std::copy(mTools.begin(), mTools.end(), back_inserter(retval));
154 bool TrackingSystemPlaybackService::isRunning()
const 156 return !mTools.empty();
165 if (!this->isRunning())
170 if (this->isRunning())
185 void TrackingSystemPlaybackService::onToolPositionChanged(
Transform3D matrix,
double timestamp)
189 mManual->set_prMt(matrix, timestamp-1);
virtual std::vector< ToolPtr > getTools()
virtual void setLoggingFolder(QString loggingFolder)
virtual void setState(const Tool::State val)
asynchronously request a state. Wait for signal stateChanged()
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
boost::shared_ptr< class PlaybackTool > PlaybackToolPtr
double getMilliSecondsSinceEpoch()
boost::shared_ptr< class ManualTool > ManualToolPtr
virtual TrackerConfigurationPtr getConfiguration()
boost::shared_ptr< class PlaybackTime > PlaybackTimePtr
boost::shared_ptr< class TrackerConfiguration > TrackerConfigurationPtr
void reportWarning(QString msg)
static TrackerConfigurationPtr getNullObject()
boost::shared_ptr< TimedTransformMap > TimedTransformMapPtr
virtual Tool::State getState() const
TrackingSystemPlaybackService(PlaybackTimePtr controller, std::vector< TrackingSystemServicePtr > base, ManualToolPtr manual)
virtual ~TrackingSystemPlaybackService()
Namespace for all CustusX production code.
boost::shared_ptr< class TrackingSystemService > TrackingSystemServicePtr