void SliceProxy::setTool(ToolPtr tool) { if (mTool) { disconnect(mTool.get(), SIGNAL(toolTransformAndTimestamp(Transform3D,double)), this, SLOT(toolTransformAndTimestampSlot(Transform3D,double))); disconnect(mTool.get(), SIGNAL(toolVisible(bool)), this, SLOT(toolVisibleSlot(bool))); disconnect(mTool.get(), SIGNAL(tooltipOffset(double)), this, SLOT(tooltipOffsetSlot(double))); disconnect(mTool.get(), SIGNAL(toolProbeSector()), this, SLOT(changed())); } mTool = tool; if (mTool) { connect(mTool.get(), SIGNAL(toolTransformAndTimestamp(Transform3D,double)), this, SLOT(toolTransformAndTimestampSlot(Transform3D,double))); connect(mTool.get(), SIGNAL(toolVisible(bool)), this, SLOT(toolVisibleSlot(bool))); connect(mTool.get(), SIGNAL(tooltipOffset(double)), this, SLOT(tooltipOffsetSlot(double))); connect(mTool.get(), SIGNAL(toolProbeSector()), this, SLOT(changed()));/// not used here, but forwarded to users emit toolVisible(mTool->getVisible()); toolTransformAndTimestampSlot(mTool->get_prMt(), 0); // initial values tooltipOffsetSlot(mTool->getTooltipOffset()); } this->centerChangedSlot(); // force center update for tool==0 this->changed(); }
PlaybackTool::PlaybackTool(ToolPtr base, PlaybackTimePtr time) : ToolImpl(base->getUid(), "playback "+base->getName()), mBase(base), mTime(time), mVisible(false) { connect(mTime.get(), SIGNAL(changed()), this, SLOT(timeChangedSlot())); connect(mBase.get(), SIGNAL(toolProbeSector()), this, SIGNAL(toolProbeSector())); connect(mBase.get(), SIGNAL(tooltipOffset(double)), this, SIGNAL(tooltipOffset(double))); }
ToolUsingIGSTK::ToolUsingIGSTK(IgstkToolPtr igstkTool) : ToolImpl(""), mTool(igstkTool), mPolyData(NULL), mValid(false), mConfigured(false), mTracked(false) { mTimestamp = 0; Tool::mUid = mTool->getInternalStructure().mUid; Tool::mName = mTool->getInternalStructure().mName; mValid = igstkTool->isValid(); this->createPolyData(); connect(mTool.get(), SIGNAL(toolTransformAndTimestamp(Transform3D, double)), this, SLOT(toolTransformAndTimestampSlot(Transform3D, double))); connect(mTool.get(), SIGNAL(attachedToTracker(bool)), this, SIGNAL(attachedToTracker(bool))); connect(mTool.get(), SIGNAL(toolVisible(bool)), this, SLOT(toolVisibleSlot(bool))); connect(mTool.get(), SIGNAL(toolVisible(bool)), this, SIGNAL(toolVisible(bool))); connect(&mTpsTimer, SIGNAL(timeout()), this, SLOT(calculateTpsSlot())); if (mTool->getInternalStructure().mIsProbe) { mProbe = ProbeImpl::New(mTool->getInternalStructure().mInstrumentId, mTool->getInternalStructure().mInstrumentScannerId); connect(mProbe.get(), SIGNAL(sectorChanged()), this, SIGNAL(toolProbeSector())); } }