📄 printtops.c++
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -