Beispiel #1
0
 def save_x3d(self, event=None):
     """Save last renderd scene as u3d."""
     from tvtk.api import tvtk
        
     fdialog = wx.FileDialog(None, 'Save 3D scene as ...', wildcard='*.x3d', style=wx.FD_SAVE)# | wx.HIDE_READONLY)
     succ = fdialog.ShowModal()
 
     if (succ == wx.ID_OK):
         fname = fdialog.GetPath()
     
         #tvtk.STLWriter(input=self.lastSurf.actor.mapper.input, file_name=fname).write()
         render_window = self.dsviewer.f3d.scene.render_window
     
         x3d_exporter = tvtk.X3DExporter(file_name=fname, input=render_window, binary=0)
         x3d_exporter.write()
 
     fdialog.Destroy()
Beispiel #2
0
    def save_x3d(self, file_name):
        """Save scene to an X3D file (http://www.web3d.org/x3d/).

        Keyword Arguments:

        file_name -- File name to save to.
        """
        # Make sure the exporter is available.
        if not hasattr(tvtk, 'X3DExporter'):
            msg = "Saving as a X3D file does not appear to be  "\
                  "supported by your version of VTK."
            print msg
            return

        if len(file_name) != 0:
            ex = tvtk.X3DExporter()
            ex.input = self._renwin
            ex.file_name = file_name
            ex.update()
            ex.write()
def scene_to_x3d(scene):
    ex = tvtk.X3DExporter()
    ex.input = scene.render_window
    lm = scene.light_manager.light_mode
    # The default raymond mode is too bright so switch back to vtk mode.
    scene.light_manager.light_mode = 'vtk'
    ex.write_to_output_string = True
    ex.update()
    ex.write()
    # Switch back
    scene.light_manager.light_mode = lm
    if _local:
        url_base = "nbextensions/mayavi/x3d"
    else:
        url_base = "https://www.x3dom.org/download/1.7.2"
    x3d_elem = _fix_x3d_header(ex.output_string)
    html = '''
    %s
    <script type="text/javascript">
    require(["%s/x3dom"], function(x3dom) {
        var x3dom_css = document.getElementById("x3dom-css");
        if (x3dom_css === null) {
            var l = document.createElement("link");
            l.setAttribute("rel", "stylesheet");
            l.setAttribute("type", "text/css");
            l.setAttribute("href", require.toUrl("%s/x3dom.css"));
            l.setAttribute("id", "x3dom-css");
            $("head").append(l);
        }
        if (typeof x3dom != 'undefined') {
            x3dom.reload();
        }
        else if (typeof window.x3dom != 'undefined') {
            window.x3dom.reload();
        }
    })
    </script>
    ''' % (x3d_elem, url_base, url_base)
    return html