void ViewWrapper3D::toolsAvailableSlot() { std::vector<ToolRep3DPtr> reps = RepContainer::findReps<ToolRep3D>(mView->getReps()); TrackingService::ToolMap tools = mServices->tracking()->getTools(); TrackingService::ToolMap::iterator iter; for (iter = tools.begin(); iter != tools.end(); ++iter) { ToolPtr tool = iter->second; if (tool->hasType(Tool::TOOL_REFERENCE)) continue; ToolRep3DPtr toolRep = RepContainer(mView->getReps()).findFirst<ToolRep3D>(tool); std::vector<ToolRep3DPtr>::iterator oldRep = std::find(reps.begin(), reps.end(), toolRep); if (oldRep!=reps.end()) reps.erase(oldRep); if (tool->hasType(Tool::TOOL_MANUAL) && !settings()->value("showManualTool").toBool()) { if (toolRep) mView->removeRep(toolRep); continue; } // mManualTool->setVisible(settings()->value("showManualTool").toBool()); if (!toolRep) { toolRep = ToolRep3D::New(mServices->spaceProvider(), tool->getUid() + "_rep3d_" + this->mView->getUid()); if (settings()->value("showToolPath").toBool()) toolRep->getTracer()->start(); } toolRep->setSphereRadius(settings()->value("View3D/sphereRadius").toDouble()); // use fraction of set size toolRep->setSphereRadiusInNormalizedViewport(true); toolRep->setTool(tool); toolRep->setOffsetPointVisibleAtZeroOffset(true); mView->addRep(toolRep); } // remove reps for tools no longer present for (unsigned i=0; i<reps.size(); ++i) { mView->removeRep(reps[i]); } }
void FastOrientationRegistrationWidget::enableToolSampleButtonSlot() { ToolPtr tool = mServices->tracking()->getActiveTool(); bool enabled = tool && tool->getVisible() && (!tool->hasType(Tool::TOOL_MANUAL) || settings()->value("giveManualToolPhysicalProperties").toBool()); // enable only for non-manual tools. mSetOrientationButton->setEnabled(enabled); }
void PatientLandMarksWidget::updateToolSampleButton() { ToolPtr tool = mServices->tracking()->getActiveTool(); bool enabled = tool && tool->getVisible() && (!tool->hasType(Tool::TOOL_MANUAL) || settings()->value("giveManualToolPhysicalProperties").toBool()); // enable only for non-manual tools. mToolSampleButton->setEnabled(enabled); if (mServices->tracking()->getActiveTool()) mToolSampleButton->setText("Sample " + qstring_cast(tool->getName())); else mToolSampleButton->setText("No tool"); }