[vtkusers] How to use vtkStructuredGridGeometryFilter instead of a bunch of cubes (Plz Help People)
Somada141
somada141 at yahoo.gr
Sun Dec 7 18:12:39 EST 2008
Hi all,
I am making an FDTD simulation program and at some point I want to plot the
mesh as created by the method. SInce it is an FDTD mesh it is a whole bunch
of cubes in space...
I am attaching a picture of it here :
http://utopia.duth.gr/~ak2432/L2%20-%2013Cuboids-FDTD-4203125.png
The problem is that when I do this I create a whole bunch of cube actors one
for each cube showing....However this can get really slow when it comes to
huge meshes....
I later found out that this can be done with a vtkStructuredGrid and
vtkStructuredGridGeometryFilter where I create a huge array of cubes and
blank out the ones I dont want shown...
However I cannot understand how to do this...here is an attempt which only
yields points instead of cube wireframes :
from vtk import *
#Creating renderer,window,interactor - See the CMFViewer.py for comments on
how this is done properly. The code here is stuffed in order to save space.
renderer = vtkRenderer();renderer_window =
vtkRenderWindow();renderer_window.AddRenderer(renderer)
renderer_interactor =
vtkRenderWindowInteractor();renderer_interactor.SetRenderWindow(renderer_window)
renderer_window.SetSize(1024, 768);renderer.SetBackground(1,1,1)
interactor_style =
vtkInteractorStyleSwitch();renderer_interactor.SetInteractorStyle(interactor_style);interactor_style.SetCurrentStyleToTrackballCamera()
structured_grid = vtkStructuredGrid()
structured_grid.SetDimensions(3,3,3)
mesh_points = vtkPoints()
mesh_scalars = vtkFloatArray()
for i in range(3):
for j in range(3):
for k in range(3):
mesh_points.InsertNextPoint(i,j,k)
mesh_scalars.InsertNextValue(10*k)
structured_grid.SetPoints(mesh_points)
structured_grid.GetPointData().SetScalars(mesh_scalars)
#structured_grid.GetPointData().SetScalars(mesh_scalars)
surface_filter = vtkStructuredGridGeometryFilter()
surface_filter.SetInput(structured_grid)
polydata_mapper = vtkPolyDataMapper()
polydata_mapper.SetInput(surface_filter.GetOutput())
surfActor = vtkActor()
surfActor.SetMapper(polydata_mapper)
renderer.AddActor(surfActor)
renderer_interactor.Initialize()
renderer_window.Render()
renderer_interactor.Start()
Does anyone know where can I find a decent example of this filter or propose
a better way to do it?
Thanks,
Adam
--
View this message in context: http://www.nabble.com/How-to-use-vtkStructuredGridGeometryFilter-instead-of-a-bunch-of-cubes-%28Plz-Help-People%29-tp20887184p20887184.html
Sent from the VTK - Users mailing list archive at Nabble.com.
More information about the vtkusers
mailing list