printtops.c++

来自「一个计算分岔的软件」· C++ 代码 · 共 50 行

C++
50
字号
#include <Inventor/SbViewportRegion.h>#include <Inventor/SoOffscreenRenderer.h>#ifdef USE_SOQT#include <Inventor/Qt/viewers/SoQtExaminerViewer.h>#else#include <Inventor/Xt/viewers/SoXtExaminerViewer.h>#endifSbBoolprintToPostScript (SoNode *root, FILE *file,#ifdef USE_SOQTSoQtExaminerViewer *viewer, int printerDPI)#elseSoXtExaminerViewer *viewer, int printerDPI)#endif{    const SbViewportRegion &vp  = viewer->getViewportRegion();    const SbVec2s &imagePixSize = vp.getViewportSizePixels();    SbVec2f imageInches;    float pixPerInch;    pixPerInch = SoOffscreenRenderer::getScreenPixelsPerInch();    imageInches.setValue((float)imagePixSize[0] / pixPerInch,        (float)imagePixSize[1] / pixPerInch);    SbVec2s postScriptRes;    postScriptRes.setValue((short)(imageInches[0]*printerDPI),        (short)(imageInches[1]*printerDPI));// Create a viewport to render the scene into.    SbViewportRegion myViewport;    myViewport.setWindowSize(postScriptRes);    myViewport.setPixelsPerInch((float)printerDPI);// Render the scene    SoOffscreenRenderer *myRenderer =        new SoOffscreenRenderer(myViewport);    if (!myRenderer->render(root))    {        delete myRenderer;        return FALSE;    }// Generate PostScript and write it to the given file    myRenderer->writeToPostScript(file);    delete myRenderer;    return TRUE;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?