def setUp(self): # set up source sgrid = datasets.generateStructuredGrid() source = VTKDataSource(data=sgrid) self.engine = mlab.get_engine() # set up scene, first scene is empty # second scene has the settings we want to restore for _ in range(2): fig = mlab.figure() fig.scene.off_screen_rendering = True # add source self.engine.add_source(source) # add more modules self.engine.add_module(IsoSurface()) self.engine.add_module(Text3D()) self.modules = source.children[0].children # set camera self.view = (25., 14., 20., [0., 0., 2.5]) mlab.view(*self.view) # save the visualisation self.temp_dir = tempfile.mkdtemp() self.filename = os.path.join(self.temp_dir, "test_vis.mv2") self.engine.save_visualization(self.filename) # save the scene as an image for comparison later self.ref_saved_filename = os.path.join(self.temp_dir, "ref_saved.png") mlab.savefig(self.ref_saved_filename)
def test_restore_scene(self): # create a new scene with new data source fig = mlab.figure() fig.scene.off_screen_rendering = True sgrid_2 = datasets.generateStructuredGrid() source = VTKDataSource(data=sgrid_2) self.engine.add_source(source) # when restore_scene(self.filename, scene_index=1) # then modules = source.children[0].children self.check_items_same_types(modules, self.modules) self.check_items_not_same_object(modules, self.modules) self.check_camera_view(mlab.view(), self.view) # save the scene to a file saved_filename = os.path.join(self.temp_dir, "test_restore.png") mlab.savefig(saved_filename) # compare the pixels to the desired one self.check_images_almost_identical(saved_filename, self.ref_saved_filename)
def setUp(self): """Initial setting up of test fixture, automatically called by TestCase before any other test method is invoked""" e = NullEngine() # Uncomment to see visualization for debugging etc. #e = Engine() e.start() e.new_scene() self.e=e sgrid=datasets.generateStructuredGrid() src = VTKDataSource(data = sgrid) e.add_source(src) # Create an outline for the data. o = Outline() e.add_module(o) # Create one ContourGridPlane normal to the 'x' axis. cgp1 = ContourGridPlane() e.add_module(cgp1) # Set the position to the middle of the data. cgp1.grid_plane.position = 15 # Another with filled contours normal to 'y' axis. cgp2 = ContourGridPlane() cgp2.contour.filled_contours = True # Set the axis and position to the middle of the data. cgp2.grid_plane.axis = 'y' cgp2.grid_plane.position = 15 e.add_module(cgp2) # An isosurface module. iso = IsoSurface(compute_normals=True) e.add_module(iso) iso.contour.contours = [5] # An interactive scalar cut plane. cp = ScalarCutPlane() e.add_module(cp) ip = cp.implicit_plane ip.normal = 0,0,1 ip.origin = 0.5, 0.5, 1.0 # Since this is running offscreen this seems necessary. ip.widget.origin = 0.5, 0.5, 1.0 ip.widget.enabled = False self.scene = e.current_scene self.cgp2=cgp2 self.iso=iso self.cp=cp return
def setUp(self): """Initial setting up of test fixture, automatically called by TestCase before any other test method is invoked""" e = NullEngine() # Uncomment to see visualization for debugging etc. #e = Engine() e.start() e.new_scene() self.e = e sgrid = datasets.generateStructuredGrid() src = VTKDataSource(data=sgrid) e.add_source(src) # Create an outline for the data. o = Outline() e.add_module(o) # Create one ContourGridPlane normal to the 'x' axis. cgp1 = ContourGridPlane() e.add_module(cgp1) # Set the position to the middle of the data. cgp1.grid_plane.position = 15 # Another with filled contours normal to 'y' axis. cgp2 = ContourGridPlane() cgp2.contour.filled_contours = True # Set the axis and position to the middle of the data. cgp2.grid_plane.axis = 'y' cgp2.grid_plane.position = 15 e.add_module(cgp2) # An isosurface module. iso = IsoSurface(compute_normals=True) e.add_module(iso) iso.contour.contours = [5] # An interactive scalar cut plane. cp = ScalarCutPlane() e.add_module(cp) ip = cp.implicit_plane ip.normal = 0, 0, 1 ip.origin = 0.5, 0.5, 1.0 # Since this is running offscreen this seems necessary. ip.widget.origin = 0.5, 0.5, 1.0 ip.widget.enabled = False self.scene = e.current_scene self.cgp2 = cgp2 self.iso = iso self.cp = cp return
def test_pass_restore_empty_scene(self): # create a new scene fig = mlab.figure() fig.scene.off_screen_rendering = True sgrid_2 = datasets.generateStructuredGrid() source = VTKDataSource(data=sgrid_2) self.engine.add_source(source) # when # first scene is empty restore_scene(self.filename, scene_index=0) # then # save the scene to a file saved_filename = os.path.join(self.temp_dir, "test_extra.png") mlab.savefig(saved_filename) # compare the pixels to the desired one self.check_images_empty(saved_filename)
def setUp(self): """Initial setting up of test fixture, automatically called by TestCase before any other test method is invoked""" e = NullEngine() # Uncomment to see visualization for debugging etc. #e = Engine() e.start() e.new_scene() self.e = e sgrid = datasets.generateStructuredGrid() src = VTKDataSource(data=sgrid) e.add_source(src) # Create an outline for the data. o = Outline() e.add_module(o) # Create three simple grid plane modules. # First normal to 'x' axis. gp1 = GridPlane() e.add_module(gp1) # Second normal to 'y' axis. gp2 = GridPlane() # We'll test how robust things are by setting attributes gp2.grid_plane.axis = 'y' gp2.grid_plane.position = 16 e.add_module(gp2) # Third normal to 'z' axis. gp3 = GridPlane() e.add_module(gp3) gp3.grid_plane.axis = 'z' gp3.grid_plane.position = 6 for gp in (gp1, gp2, gp3): gp.actor.property.trait_set(ambient=1.0) self.scene = e.current_scene return
def setUp(self): """Initial setting up of test fixture, automatically called by TestCase before any other test method is invoked""" e = NullEngine() # Uncomment to see visualization for debugging etc. #e = Engine() e.start() e.new_scene() self.e=e sgrid = datasets.generateStructuredGrid() src = VTKDataSource(data = sgrid) e.add_source(src) # Create an outline for the data. o = Outline() e.add_module(o) # Create three simple grid plane modules. # First normal to 'x' axis. gp1 = GridPlane() e.add_module(gp1) # Second normal to 'y' axis. gp2 = GridPlane() # We'll test how robust things are by setting attributes gp2.grid_plane.axis = 'y' gp2.grid_plane.position = 16 e.add_module(gp2) # Third normal to 'z' axis. gp3 = GridPlane() e.add_module(gp3) gp3.grid_plane.axis = 'z' gp3.grid_plane.position = 6 for gp in (gp1, gp2, gp3): gp.actor.property.set(ambient=1.0) self.scene = e.current_scene return
def setUp(self): """Initial setting up of test fixture, automatically called by TestCase before any other test method is invoked""" e = NullEngine() # Uncomment to see visualization for debugging etc. #e = Engine() e.start() e.new_scene() self.e=e sgrid=datasets.generateStructuredGrid() src = VTKDataSource(data = sgrid) e.add_source(src) c = Contour() # `name` is used for the notebook tabs. n = PolyDataNormals(name='Normals') o = Optional(filter=n, label_text='Compute normals') coll = Collection(filters=[c, o], name='IsoSurface') e.add_filter(coll) s = Surface() e.add_module(s) self.coll = coll self.scene = e.current_scene return