Save Eve Display as Drawn in Browser

Hello,

I have a 3D Eve display that I want to save as a pdf or png.

  • When I use the “Save As” button of the “File” menu of the viewer, I get a nice picture… but not
    the one shown in the display: not the same background color, no text, and a different outlook
    where the outer surface of my objects is not transparent.
  • When I execute from the command line:
    gEve->GetDefaultGLViewer()->SavePicture()
    the picture saved to file is a completely different one, corresponding to that I obtain when I
    first draw my event, w/o any of the editing I had done in the meantime.

Is there some button of action, I need to press or execute to get an exact replica of the picture
drawn in the browser?
Or anything I would have missed?

Regards,
Yann Bedfer


ROOT Version: 6.16/00
Platform: Ubuntu 16.4
Compiler: gcc,v5.4


I have just discovered that I when I use something call Viewer1, as opposed to 3DView,
I obtain what I want, via the command line execution.

The only question I would have then is: "Where can I find the documentation explaining this behaviours of Viewer1 and 3DView, if someone has the answer?..

I think @matevz can help you.

Well, you need to have a pointer to the correct GL viewer, default GL viewer is the first one created. If you create more, then either store them somewhere where you can get it later or try to divine it from the list of TEveViewers (https://root.cern.ch/doc/master/classTEveManager.html#a71386ceabffe8d611f51a7bc2dd403f7) … onve you have the correct TEveViewer *ev, call ev->GetGLViewer()->SavePicture() or one of the other variants (https://root.cern.ch/doc/master/classTGLViewer.html#a78a5bc30eccccef3d64b03f017372eae).

If you are using the standard MultiView.C, the following should also work, look at the MultiView.C code:
root [2] gMultiView->f3DView->GetGLViewer()
(TGLViewer *) 0x614ca00

Cheers,
Matevz

Thank you very much for these detailed explanations.

I had in the mean time understood the confusion I had initially made among my various viewers. But
indeed gMultiView->f3DView->GetGLViewer() is most convenient. Thank you!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.