void WbpSceneExporter::write() { MqoDisplayContext *pmqodc = MB_NEW MqoDisplayContext(); m_mqoRelPath = makeRelSubPath("mqo"); LString str_wbppath = getPath(); LString str_mqopath = getPath("mqo"); // Mqo substream qlib::OutStream *pOutMqo = createOutStream("mqo"); ScenePtr pScene = getClient(); CameraPtr pCam = getCamera(); qlib::ensureNotNull(pCam.get()); pmqodc->init(pOutMqo); pmqodc->setGradSteps(m_nGradSteps); pmqodc->setClipZ(m_bUseClipZ); pmqodc->setPerspective(m_bPerspective); pmqodc->setBgColor(pScene->getBgColor()); double zoom = pCam->getZoom(); pmqodc->setZoom(zoom); pmqodc->setSlabDepth(pCam->getSlabDepth()); pmqodc->setViewDist(pCam->getCamDist()); pmqodc->loadIdent(); pmqodc->rotate(pCam->m_rotQuat); pmqodc->translate(-(pCam->m_center)); // calc line width factor if (pScene->getViewCount()>0) { ViewPtr pView = pScene->beginView()->second; double wpix = pView->getWidth(); pmqodc->setLineScale(zoom/wpix); } pScene->display(pmqodc); // cleanup the created streams pOutMqo->close(); delete pOutMqo; // Write wbp main stream // Enter the context { m_pdc = pmqodc; AutoStyleCtxt style_ctxt(pScene->getUID()); writeWbp(); m_pdc = NULL; } delete pmqodc; }