35 #include <QVBoxLayout>
57 this->setObjectName(
"TrackedCenterlineWidget");
58 this->setWindowTitle(
"Tracked Centerline");
59 this->setToolTip(
"Record the tool movement as a centerline");
107 mSessionID = sessionId;
118 if(transforms_prMt.empty())
120 reportError(
"Could not find any tracking data from session "+mSessionID+
". Aborting volume tracking data generation.");
149 TrackingService::ToolMap::iterator toolIt = tools.begin();
152 for(; toolIt != tools.end(); ++toolIt)
154 activeRep3D = mServices->visualizationService->get3DReps()->findFirst<
ToolRep3D>(toolIt->second);
158 activeRep3D->getTracer()->start();
166 TrackingService::ToolMap::iterator toolIt = tools.begin();
169 for(; toolIt != tools.end(); ++toolIt)
171 activeRep3D = mServices->visualizationService->get3DReps()->findFirst<
ToolRep3D>(toolIt->second);
174 if (activeRep3D->getTracer()->isRunning())
177 activeRep3D->getTracer()->clear();
185 double startTime = session->getStartTime();
186 double stopTime = session->getStopTime();
188 ToolPtr tool = this->findTool(startTime, stopTime);
191 reportWarning(
"Found no tool with tracking data from the given session.");
195 retval = tool->getSessionHistory(startTime, stopTime);
200 ToolPtr TrackedCenterlineWidget::findTool(
double startTime,
double stopTime)
204 SessionToolHistoryMap toolTransformMap = mServices->getToolManager()->getSessionHistory(startTime, stopTime);
205 if(toolTransformMap.size() == 1)
207 report(
"Found one tool("+toolTransformMap.begin()->first->getName()+
") with relevant data.");
208 retval = toolTransformMap.begin()->first;
210 else if(toolTransformMap.size() > 1)
212 reportWarning(
"Found more than one tool with relevant data, user needs to choose which one to use for tracked centerline extraction.");
214 retval = toolTransformMap.begin()->first;
216 }
else if(toolTransformMap.empty())
218 reportWarning(
"Could not find any session history for given session.");
void reportError(QString msg)
boost::shared_ptr< class AcquisitionService > AcquisitionServicePtr
boost::shared_ptr< class VisServices > VisServicesPtr
std::map< ToolPtr, TimedTransformMap > SessionToolHistoryMap
boost::shared_ptr< class RecordSession > RecordSessionPtr
void reportWarning(QString msg)
void loadMeshFromToolTransforms(PatientModelServicePtr dataManager, TimedTransformMap transforms_prMt)
cxLogicManager_EXPORT AcquisitionServicePtr acquisitionService()
std::map< QString, ToolPtr > ToolMap
boost::shared_ptr< class ToolRep3D > ToolRep3DPtr
std::map< double, Transform3D > TimedTransformMap
boost::shared_ptr< class Tool > ToolPtr