void ccCameraParamEditDlg::linkWith(QMdiSubWindow* qWin) { //corresponding ccGLWindow ccGLWindow* associatedWin = (qWin ? GLWindowFromWidget(qWin->widget()) : 0); linkWith(associatedWin); }
bool ccPointPairRegistrationDlg::init( ccGLWindow* win, ccHObject* aligned, ccHObject* reference/*=0*/) { assert(win); assert(aligned); clear(); if (!aligned) { ccLog::Error("[PointPairRegistration] Need an aligned entity at least!"); return false; } //create dedicated 3D view if (!m_associatedWin) { //import GL filter so as to get the same rendering aspect! { ccGenericGLDisplay* sourceDisplay = aligned->getDisplay(); if (!sourceDisplay && reference) sourceDisplay = reference->getDisplay(); if (sourceDisplay) { ccGlFilter* filter = static_cast<ccGLWindow*>(sourceDisplay)->getGlFilter(); if (filter) win->setGlFilter(filter->clone()); } } linkWith(win); assert(m_associatedWin); } m_aligned = EntityContext(aligned); m_reference = EntityContext(reference); //add aligned entity to display ccViewportParameters originViewportParams; bool hasOriginViewportParams = false; if (aligned) { if (aligned->getDisplay()) { hasOriginViewportParams = true; originViewportParams = aligned->getDisplay()->getViewportParameters(); } //DGM: it's already in the global DB! //m_associatedWin->addToOwnDB(aligned); aligned->setDisplay(m_associatedWin); aligned->setVisible(true); aligned->setSelected(false); SetEnabled_recursive(aligned); //SetVisible_recursive(aligned); } //add reference entity (if any) to display if (reference) { if (!hasOriginViewportParams && reference->getDisplay()) { hasOriginViewportParams = true; originViewportParams = reference->getDisplay()->getViewportParameters(); } //DGM: it's already in the global DB! //m_associatedWin->addToOwnDB(reference); reference->setDisplay(m_associatedWin); reference->setVisible(true); reference->setSelected(false); SetEnabled_recursive(reference); //SetVisible_recursive(reference); } showReferenceCheckBox->setChecked(reference != 0); showReferenceCheckBox->setEnabled(reference != 0); showAlignedCheckBox->setChecked(true); m_associatedWin->showMaximized(); resetTitle(); if (hasOriginViewportParams) { m_associatedWin->setViewportParameters(originViewportParams); m_associatedWin->redraw(); } else { m_associatedWin->zoomGlobal(); m_associatedWin->redraw(); //already called by zoomGlobal } onPointCountChanged(); return true; }