[vtk-developers] vtkRIBExporter - python example

Nicholas Yue yue.nicholas at gmail.com
Sat Dec 28 20:17:09 EST 2013


Hi,

     I was searching for some example as to how one can use the 
vtkRIBExporter.

     Since I didn't find any, I had to prototype something to help me 
understand.

     Here is one I wrote using Python + PyQt4 and VTK (for python).

     Hope it may be useful for others trying things out on the 
photo-realistic rendering aspect.

|#!/usr/bin/env python||
||
||import sys||
||import vtk||
||from PyQt4 import QtCore, QtGui||
||from vtk.qt4.QVTKRenderWindowInteractor import 
QVTKRenderWindowInteractor||
||
||class MainWindow(QtGui.QMainWindow):||
||||
||    def __init__(self, parent = None):||
||        QtGui.QMainWindow.__init__(self, parent)||
||
||        self.ribExportAction = QtGui.QAction("Export", self, 
shortcut="Ctrl+E",||
||statusTip="Export RIB", triggered=self.exportRIB)||
||        self.frame = QtGui.QFrame()||
||||
||        self.vl = QtGui.QVBoxLayout()||
||        self.vtkWidget = QVTKRenderWindowInteractor(self.frame)||
||        self.vl.addWidget(self.vtkWidget)||
||        self.exportRIBButton = QtGui.QPushButton("Export RIB",self)||
||self.exportRIBButton.clicked.connect(self.exportRIB)||
||        self.vl.addWidget(self.exportRIBButton)||
||        self.ren = vtk.vtkRenderer()||
||self.vtkWidget.GetRenderWindow().AddRenderer(self.ren)||
||        self.iren = self.vtkWidget.GetRenderWindow().GetInteractor()||
||||
||        # Create source||
||        source = vtk.vtkSphereSource()||
||        source.SetCenter(0, 0, 0)||
||        source.SetRadius(5.0)||
||||
||        # Create a mapper||
||        mapper = vtk.vtkPolyDataMapper()||
||mapper.SetInputConnection(source.GetOutputPort())||
||||
||        # Create an actor||
||        actor = vtk.vtkActor()||
||        actor.SetMapper(mapper)||
||||
||        self.ren.AddActor(actor)||
||||
||        self.ren.ResetCamera()||
||||
||        self.frame.setLayout(self.vl)||
||        self.setCentralWidget(self.frame)||
||||
||        self.show()||
||        self.iren.Initialize()||
||||
||    def exportRIB(self):||
||        renWin = self.vtkWidget.GetRenderWindow()||
||        writer = vtk.vtkRIBExporter()||
||        writer.SetInput(renWin)||
||        writer.SetFilePrefix('./tmp')||
||        # writer.SetFilePattern("%s%3d.dcm.raw")||
||        writer.Write()||
||        writer.Update()||
||||
||if __name__ == "__main__":||
||||
||    app = QtGui.QApplication(sys.argv)||
||||
||    window = MainWindow()||
||    window.raise_()||
||    sys.exit(app.exec_())||
|
Cheers

-- 
Nicholas Yue
Graphics - RenderMan, Visualization, OpenGL, HDF5
Custom Dev - C++ porting, OSX, Linux, Windows
http://au.linkedin.com/in/nicholasyue
https://vimeo.com/channels/naiadtools

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20131229/fa847d84/attachment.html>


More information about the vtk-developers mailing list