def initialize(self): # Bring used components self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPort()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebPublishImageDelivery(decode=False)) self.updateSecret(_DemoServer.authKey) # tell the C++ web app to use no encoding. # ParaViewWebPublishImageDelivery must be set to decode=False to match. self.getApplication().SetImageEncoding(0) # Disable interactor-based render calls simple.GetRenderView().EnableRenderOnInteraction = 0 simple.GetRenderView().Background = [0, 0, 0] cone = simple.Cone() simple.Show(cone) simple.Render() # Update interaction mode pxm = simple.servermanager.ProxyManager() interactionProxy = pxm.GetProxy('settings', 'RenderViewInteractionSettings') interactionProxy.Camera3DManipulators = [ 'Rotate', 'Pan', 'Zoom', 'Pan', 'Roll', 'Pan', 'Zoom', 'Rotate', 'Zoom' ]
def initialize(self): # Bring used components self.registerVtkWebProtocol(pv_protocols.ParaViewWebStartupRemoteConnection(_VisualizerServer.dsHost, _VisualizerServer.dsPort, _VisualizerServer.rsHost, _VisualizerServer.rsPort, _VisualizerServer.rcPort)) self.registerVtkWebProtocol(pv_protocols.ParaViewWebStartupPluginLoader(_VisualizerServer.plugins)) self.registerVtkWebProtocol(pv_protocols.ParaViewWebFileListing(_VisualizerServer.dataDir, "Home", _VisualizerServer.excludeRegex, _VisualizerServer.groupRegex)) self.registerVtkWebProtocol(pv_protocols.ParaViewWebProxyManager(allowedProxiesFile=_VisualizerServer.proxies, baseDir=_VisualizerServer.dataDir, fileToLoad=_VisualizerServer.fileToLoad, allowUnconfiguredReaders=_VisualizerServer.allReaders)) self.registerVtkWebProtocol(pv_protocols.ParaViewWebColorManager(pathToColorMaps=_VisualizerServer.colorPalette)) self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPort(_VisualizerServer.viewportScale, _VisualizerServer.viewportMaxWidth, _VisualizerServer.viewportMaxHeight)) self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPortImageDelivery()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebLocalRendering()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebTimeHandler()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebSelectionHandler()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebWidgetManager()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebKeyValuePairStore()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebSaveData(baseSavePath=_VisualizerServer.saveDataDir)) # Update authentication key to use self.updateSecret(_VisualizerServer.authKey) # Disable interactor-based render calls simple.GetRenderView().EnableRenderOnInteraction = 0 simple.GetRenderView().Background = [0,0,0] # Update interaction mode pxm = simple.servermanager.ProxyManager() interactionProxy = pxm.GetProxy('settings', 'RenderViewInteractionSettings') interactionProxy.Camera3DManipulators = ['Rotate', 'Pan', 'Zoom', 'Pan', 'Roll', 'Pan', 'Zoom', 'Rotate', 'Zoom']
def initialize(self): # Bring used components # self.registerVtkWebProtocol(pv_protocols.ParaViewWebFileListing(AMSServer.data, "Home", AMSServer.excludeRegex, AMSServer.groupRegex)) # self.registerVtkWebProtocol(pv_protocols.ParaViewWebColorManager()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler()) # self.registerVtkWebProtocol(pv_protocols.ParaViewWebTimeHandler()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPort(AMSServer.viewportScale, AMSServer.viewportMaxWidth, AMSServer.viewportMaxHeight)) self.registerVtkWebProtocol(pv_protocols.ParaViewWebPublishImageDelivery(decode=False)) # self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPortImageDelivery()) # self.registerVtkWebProtocol(pv_protocols.ParaViewPublishImageDelivery()) amstest = AMSProtocols.AMSTest(AMSServer.config, AMSServer.profile) ## Register the AMS components self.registerVtkWebProtocol(amstest) # Update authentication key to use self.updateSecret(AMSServer.authKey) # tell the C++ web app to use no # encoding. ParaViewWebPublishImageDelivery must be set to # decode=False to match. self.getApplication().SetImageEncoding(0); # Disable interactor-based render calls simple.GetRenderView().EnableRenderOnInteraction = 0 simple.GetRenderView().Background = [0,0,0] simple.GetRenderView().Background2 = [0,0,0] if self.dataConfig: amstest.initializeData( self.dataConfig["dataCatalog"] ) else: amstest.initializeData( ["/Users/tomfool/tech/18/amgen/ams-102-AgileViz/EnSight/mat-viz-mofTFF-90L-9.1lpm-100rpm/mat-viz-mofTFF-90L-9.1lpm-100rpm.case", "/Users/tomfool/tech/18/amgen/ams-102-AgileViz/EnSight/mat-viz-mofTFF-90L-9.1lpm-250rpm/mat-viz-mofTFF-90L-9.1lpm-250rpm.case" ]) # Update interaction mode pxm = simple.servermanager.ProxyManager() interactionProxy = pxm.GetProxy('settings', 'RenderViewInteractionSettings') interactionProxy.Camera3DManipulators = ['Rotate', 'Pan', 'Zoom', 'Pan', 'Roll', 'Pan', 'Zoom', 'Rotate', 'Zoom'] # Custom rendering settings renderingSettings = pxm.GetProxy('settings', 'RenderViewSettings') renderingSettings.LODThreshold = AMSServer.settingsLODThreshold
def initialize(self): # Bring used components self.registerVtkWebProtocol( pv_protocols.ParaViewWebFileListing(LightVizServer.data, "Home", LightVizServer.excludeRegex, LightVizServer.groupRegex)) self.registerVtkWebProtocol(pv_protocols.ParaViewWebColorManager()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebTimeHandler()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPort()) # self.registerVtkWebProtocol(lv_protocols.LightVizViewportSize()) self.registerVtkWebProtocol( lv_protocols.LightVizConfig(LightVizServer.config, LightVizServer.profile)) datasetManager = lv_protocols.LightVizDatasets( LightVizServer.data, 1 if LightVizServer.offscreen else 0) clipManager = lv_protocols.LightVizClip(datasetManager) self.registerVtkWebProtocol(datasetManager) self.registerVtkWebProtocol(clipManager) self.registerVtkWebProtocol( lv_protocols.LightVizContour(datasetManager, clipManager)) self.registerVtkWebProtocol( lv_protocols.LightVizSlice(datasetManager, clipManager)) self.registerVtkWebProtocol( lv_protocols.LightVizMultiSlice(datasetManager, clipManager)) self.registerVtkWebProtocol( lv_protocols.LightVizStreamline(datasetManager)) self.registerVtkWebProtocol( lv_protocols.LightVizThreshold(datasetManager, clipManager)) self.registerVtkWebProtocol( lv_protocols.LightVizVolume(datasetManager, clipManager)) # Update authentication key to use self.updateSecret(LightVizServer.authKey) # Disable interactor-based render calls simple.GetRenderView().EnableRenderOnInteraction = 0 simple.GetRenderView().Background = [0, 0, 0] simple.GetRenderView().Background2 = [0, 0, 0] # Update interaction mode pxm = simple.servermanager.ProxyManager() interactionProxy = pxm.GetProxy('settings', 'RenderViewInteractionSettings') interactionProxy.Camera3DManipulators = [ 'Rotate', 'Pan', 'Zoom', 'Pan', 'Roll', 'Pan', 'Zoom', 'Rotate', 'Zoom' ]
def web_export(*args, **kwargs): # Expecting only kwargs keepData = kwargs['keepData'] executionPath = kwargs['executionPath'] destPath = kwargs['destPath'] exportType = kwargs['exportType'] # Camera properties nbPhi = kwargs['nbPhi'] nbTheta = kwargs['nbTheta'] # Destination directory for data dest = '%s/data' % destPath # Extract initial setting for view view = simple.GetRenderView() viewState = {} for prop in ['CameraViewUp', 'CameraPosition', 'ViewSize']: viewState[prop] = tuple(view.GetProperty(prop).GetData()) # Camera handling deltaPhi = int(360 / nbPhi) deltaTheta = int(180 / nbTheta) thetaMax = deltaTheta while thetaMax + deltaTheta < 90: thetaMax += deltaTheta camera = { 'type': 'spherical', 'phi': range(0, 360, deltaPhi), 'theta': range(-thetaMax, thetaMax + 1, deltaTheta) } # Choose export mode: if exportType == 0: export_images(dest, camera, **kwargs) if exportType == 1: export_volume_exploration_images(dest, camera, **kwargs) if exportType == 2: export_contour_exploration_images(dest, camera, **kwargs) if exportType == 3: export_contours_geometry(dest, **kwargs) if exportType == 4: export_contour_exploration_geometry(dest, **kwargs) if exportType == 5: export_volume(dest, **kwargs) # Setup application copy_viewer(destPath, executionPath) # Compress only geometry data bundleDataToHTML(destPath, keepData, exportType > 2) # Restore initial parameters for prop in viewState: view.GetProperty(prop).SetData(viewState[prop])
def export_layers(destinationPath, camera): view = simple.GetRenderView() fp = tuple(view.CameraFocalPoint) cp = tuple(view.CameraPosition) vu = tuple(view.CameraViewUp) sceneDescription = { 'size': tuple(view.ViewSize), 'light': ['intensity'], # 'normal', intensity 'camera': { 'CameraViewUp': vu, 'CameraPosition': cp, 'CameraFocalPoint': fp }, 'scene': [] } for key, value in py2to3.iteritems(simple.GetSources()): add_scene_item(sceneDescription, key[0], value, view) # Generate export dsb = CompositeDataSetBuilder(destinationPath, sceneDescription, camera, {}, {}, view) dsb.start() dsb.writeData() dsb.stop(compress=False)
def export_volume_exploration_images(destinationPath, camera): view = simple.GetRenderView() pvw = get_volume_piecewise(view) maxOpacity = 0.5 nbSteps = 10 step = 250.0 / float(nbSteps) span = step * 0.4 values = [float(v + 1) * step for v in range(0, nbSteps)] if pvw: idb = ImageDataSetBuilder(destinationPath, 'image/jpg', camera) idb.getDataHandler().registerArgument(priority=1, name='volume', values=values, ui='slider', loop='reverse') idb.start(view) for volume in idb.getDataHandler().volume: pvw.RemoveAllPoints() pvw.AddPoint(float(volume) - span, 0) pvw.AddPoint(float(volume), maxOpacity) pvw.AddPoint(float(volume) + span, 0) pvw.AddPoint(255, 0) idb.writeImages() idb.stop() else: print('No Volume module available')
def initialize(self): # Bring used components self.registerVtkWebProtocol( pv_protocols.ParaViewWebStartupRemoteConnection( _FileOpener.dsHost, _FileOpener.dsPort, _FileOpener.rsHost, _FileOpener.rsPort)) self.registerVtkWebProtocol( pv_protocols.ParaViewWebFileListing(_FileOpener.pathToList, "Home")) self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPort()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebViewPortImageDelivery()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebViewPortGeometryDelivery()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebTimeHandler()) # Update authentication key to use self.updateSecret(_FileOpener.authKey) # Create default pipeline if _FileOpener.fileToLoad: _FileOpener.reader = simple.OpenDataFile(_FileOpener.fileToLoad) simple.Show() _FileOpener.view = simple.Render() _FileOpener.view.ViewSize = [800, 800] # If this is running on a Mac DO NOT use Offscreen Rendering #view.UseOffscreenRendering = 1 simple.ResetCamera() else: _FileOpener.view = simple.GetRenderView() simple.Render() _FileOpener.view.ViewSize = [800, 800] simple.SetActiveView(_FileOpener.view)
def export_contour_exploration_images(destinationPath, camera, **kwargs): values = [int(v) for v in kwargs['multiValue'].split(',')] # View size imageWidth = kwargs['imageWidth'] imageHeight = kwargs['imageHeight'] # Configure View view = simple.GetRenderView() view.ViewSize = [imageWidth, imageHeight] contour = get_contour() if contour: originalValues = [v for v in contour.Value] idb = ImageDataSetBuilder(destinationPath, 'image/jpg', camera) idb.getDataHandler().registerArgument(priority=1, name='contour', values=values, ui='slider', loop='reverse') idb.start(view) for contourValue in idb.getDataHandler().contour: contour.Value = [contourValue] idb.writeImages() idb.stop() # Reset to original value contour.Value = originalValues else: print('Can not export Contour exploration without a Contour.')
def set_background(self, dark): view = simple.GetRenderView() if dark is True: color = [0.1, 0.1, 0.1] else: color = [0.9, 0.9, 0.9] view.Background = color
def initialize(self): # Bring used components from ParaView self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPort(_Server.viewportScale, _Server.viewportMaxWidth, _Server.viewportMaxHeight)) self.registerVtkWebProtocol(pv_protocols.ParaViewWebPublishImageDelivery(decode=False)) # Bring used components from ParaView Lite self.registerVtkWebProtocol(local_protocol.ParaViewCone()) # Update authentication key to use self.updateSecret(_Server.authKey) # tell the C++ web app to use no encoding. ParaViewWebPublishImageDelivery must be set to decode=False to match. self.getApplication().SetImageEncoding(0) # Disable interactor-based render calls view = simple.GetRenderView() view.EnableRenderOnInteraction = 0 view.OrientationAxesVisibility = 0 view.Background = [0.5, 0.5, 0.5] # ProxyManager helper pxm = simple.servermanager.ProxyManager() # Update interaction mode interactionProxy = pxm.GetProxy('settings', 'RenderViewInteractionSettings') interactionProxy.Camera3DManipulators = ['Rotate', 'Pan', 'Zoom', 'Pan', 'Roll', 'Pan', 'Zoom', 'Rotate', 'Zoom'] # Custom rendering settings renderingSettings = pxm.GetProxy('settings', 'RenderViewSettings') renderingSettings.LODThreshold = _Server.settingsLODThreshold
def export_contours_geometry(destinationPath, **kwargs): view = simple.GetRenderView() sceneDescription = {'scene': []} for key, value in py2to3.iteritems(simple.GetSources()): if key[0] == 'Contour': add_scene_item(sceneDescription, key[0], value, view) count = 1 for item in sceneDescription['scene']: item['name'] += ' (%d)' % count count += 1 if count > 1: contour = sceneDescription['scene'][0]['source'] sections = {'LookupTables': get_source_lookuptable_section(contour)} # Create geometry Builder dsb = VTKGeometryDataSetBuilder(destinationPath, sceneDescription, {}, sections) dsb.start() dsb.writeData(0) dsb.stop() # Patch data range patch_data_range(destinationPath) else: print('Can not export Contour(s) geometry without at least a Contour.')
def createTemporalTransformsAxes(source="default", renderView="default"): """ Display orientation part of a TemporalTransforms Allow visualizing the orientations part of the TemporalTransforms by displaying the x, y and z unitary vector of the sensor reference frame. The source must provide transforms, for example it could be: a TemporalTransformReader, or the trajectory output of Lidar SLAM ParaView pipeline elements are created. These elements can be deleted using function deleteAllTemporalTransformsAxes(). """ # GetActiveSource() and GetRenderView() do not work if used as default # parameter value, so they are called here if needs be: if source == "default": source = smp.GetActiveSource() if renderView == "default": renderView = smp.GetRenderView() smp.SetActiveSource(source) # maybe useless calculatorX = setupCalculator(source, "RX", [1.0, 0.0, 0.0], fx, renderView) calculatorY = setupCalculator(source, "RY", [0.0, 1.0, 0.0], fy, renderView) calculatorZ = setupCalculator(source, "RZ", [0.0, 0.0, 1.0], fz, renderView) smp.Render()
def initView(width, height): global view view = simple.GetRenderView() simple.Render() view.ViewSize = [width, height] view.Background = [1, 1, 1] view.OrientationAxesLabelColor = [0, 0, 0] print 'View created successfully (%dx%d)' % (width, height)
def initialize(self): # Bring used components self.registerVtkWebProtocol( pv_protocols.ParaViewWebFileListing( _VisualizerServer.dataDir, "Home", _VisualizerServer.excludeRegex, _VisualizerServer.groupRegex)) self.registerVtkWebProtocol( pv_protocols.ParaViewWebProxyManager( baseDir=_VisualizerServer.dataDir, allowedProxiesFile=_VisualizerServer.proxies, allowUnconfiguredReaders=_VisualizerServer.allReaders)) self.registerVtkWebProtocol(pv_protocols.ParaViewWebColorManager()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebViewPort( _VisualizerServer.viewportScale, _VisualizerServer.viewportMaxWidth, _VisualizerServer.viewportMaxHeight)) self.registerVtkWebProtocol( pv_protocols.ParaViewWebViewPortImageDelivery()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebViewPortGeometryDelivery()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebTimeHandler()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebSelectionHandler()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebWidgetManager()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebKeyValuePairStore()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebSaveData( baseSavePath=_VisualizerServer.dataDir)) # Disable interactor-based render calls simple.GetRenderView().EnableRenderOnInteraction = 0 simple.GetRenderView().Background = [0, 0, 0] # Update interaction mode pxm = simple.servermanager.ProxyManager() interactionProxy = pxm.GetProxy('settings', 'RenderViewInteractionSettings') interactionProxy.Camera3DManipulators = [ 'Rotate', 'Pan', 'Zoom', 'Pan', 'Roll', 'Pan', 'Zoom', 'Rotate', 'Zoom' ]
def initialize(self): # Bring used components self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebViewPort(_Server.viewportScale, _Server.viewportMaxWidth, _Server.viewportMaxHeight)) self.registerVtkWebProtocol( pv_protocols.ParaViewWebPublishImageDelivery(decode=False)) self.registerVtkWebProtocol(pv_protocols.ParaViewWebLocalRendering()) # Update authentication key to use self.updateSecret(_Server.authKey) # tell the C++ web app to use no encoding. ParaViewWebPublishImageDelivery must be set to decode=False to match. self.getApplication().SetImageEncoding(0) # Disable interactor-based render calls simple.GetRenderView().EnableRenderOnInteraction = 0 simple.GetRenderView().Background = [0, 0, 0] # ProxyManager helper pxm = simple.servermanager.ProxyManager() # Update interaction mode interactionProxy = pxm.GetProxy('settings', 'RenderViewInteractionSettings') interactionProxy.Camera3DManipulators = [ 'Rotate', 'Pan', 'Zoom', 'Pan', 'Roll', 'Pan', 'Zoom', 'Rotate', 'Zoom' ] # Custom rendering settings renderingSettings = pxm.GetProxy('settings', 'RenderViewSettings') renderingSettings.LODThreshold = _Server.settingsLODThreshold # Put something in the scene simple.Cone() rep = simple.Show() rep.Representation = 'Surface With Edges' rep.LineWidth = 2 view = simple.Render() view.Background2 = [0.5, 0.5, 0.5] view.UseGradientBackground = 1
def init_view(self): pasi.SetActiveView(pasi.GetRenderView()) if paraview_loaded: camera = pasi.GetActiveCamera() self.camera = camera # cm = CameraMover(camera) print("Camera loaded") if self.view_size is not None: pasi.GetActiveView().ViewSize = self.view_size
def __init__(self): super(ParaViewWebPipelineManager, self).__init__() # Setup global variables self.pipeline = web_helper.Pipeline('Kitware') self.lutManager = web_helper.LookupTableManager() self.view = simple.GetRenderView() simple.SetActiveView(self.view) simple.Render() self.view.ViewSize = [800, 800] self.lutManager.setView(self.view)
def initialize(self): # Register the built-in protocols: MouseHandler, ViewPort and # ViewPortImageDelivery. (You can see these over on the client # in the createClient call) self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebViewPort(PVWSDServer.viewportScale, PVWSDServer.viewportMaxWidth, PVWSDServer.viewportMaxHeight)) self.registerVtkWebProtocol( pv_protocols.ParaViewWebViewPortImageDelivery()) # Instantiate an object with the custom protocols... PVWSDTest = PVWSDProtocols.PVWSDTest() # ... and register them, too. self.registerVtkWebProtocol(PVWSDTest) # Update authentication key to use self.updateSecret(PVWSDServer.authKey) # Disable interactor-based render calls simple.GetRenderView().EnableRenderOnInteraction = 0 simple.GetRenderView().Background = [0, 0, 0] simple.GetRenderView().Background2 = [0, 0, 0] # Initialize our scene. PVWSDTest.drawCone() # Update interaction mode pxm = simple.servermanager.ProxyManager() interactionProxy = pxm.GetProxy('settings', 'RenderViewInteractionSettings') interactionProxy.Camera3DManipulators = [ 'Rotate', 'Pan', 'Zoom', 'Pan', 'Roll', 'Pan', 'Zoom', 'Rotate', 'Zoom' ] # Custom rendering settings renderingSettings = pxm.GetProxy('settings', 'RenderViewSettings') renderingSettings.LODThreshold = 102400
def export_images(destinationPath, camera, **kwargs): # View size imageWidth = kwargs['imageWidth'] imageHeight = kwargs['imageHeight'] # Configure View view = simple.GetRenderView() view.ViewSize = [imageWidth, imageHeight] idb = ImageDataSetBuilder(destinationPath, 'image/jpg', camera) idb.start(view) idb.writeImages() idb.stop()
def initialize(self): # Bring used components self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPort()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebViewPortImageDelivery()) self.updateSecret(_DemoServer.authKey) # Disable interactor-based render calls simple.GetRenderView().EnableRenderOnInteraction = 0 simple.GetRenderView().Background = [0, 0, 0] cone = simple.Cone() simple.Show(cone) simple.Render() # Update interaction mode pxm = simple.servermanager.ProxyManager() interactionProxy = pxm.GetProxy('settings', 'RenderViewInteractionSettings') interactionProxy.Camera3DManipulators = [ 'Rotate', 'Pan', 'Zoom', 'Pan', 'Roll', 'Pan', 'Zoom', 'Rotate', 'Zoom' ]
def initialize(self): # Bring used components self.registerVtkWebProtocol( pv_protocols.ParaViewWebStartupRemoteConnection( _FileOpener.dsHost, _FileOpener.dsPort, _FileOpener.rsHost, _FileOpener.rsPort)) self.registerVtkWebProtocol( pv_protocols.ParaViewWebFileListing(_FileOpener.pathToList, "Home")) self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPort()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebViewPortImageDelivery()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebViewPortGeometryDelivery()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebTimeHandler()) # Update authentication key to use self.updateSecret(_FileOpener.authKey) # Create default pipeline if _FileOpener.fileToLoad: _FileOpener.reader = simple.OpenDataFile(_FileOpener.fileToLoad) simple.Show() _FileOpener.view = simple.Render() _FileOpener.view.ViewSize = [800, 800] # If this is running on a Mac DO NOT use Offscreen Rendering #view.UseOffscreenRendering = 1 simple.ResetCamera() else: _FileOpener.view = simple.GetRenderView() simple.Render() _FileOpener.view.ViewSize = [800, 800] # test to prove server's working # independently from the web components #c = simple.Cone() #c.Resolution = 128 #simple.Hide(c) #p = simple.ProcessIdScalars() #r = simple.Show(p) #a = p.PointData.GetArray('ProcessId') #r.ColorArrayName = 'ProcessId' #simple.AssignLookupTable(a,'Cool to Warm') #simple.Render() #simple.SaveScreenshot('/usr/common/graphics/ParaView/4.2.0-PDACS/data/test.png') simple.SetActiveView(_FileOpener.view)
def __init__(self, baseDir=None, fileToLoad=None): super(ParaViewWebPipelineManager, self).__init__() # Setup global variables self.pipeline = helper.Pipeline('Kitware') self.lutManager = helper.LookupTableManager() self.view = simple.GetRenderView() self.baseDir = baseDir simple.SetActiveView(self.view) simple.Render() self.view.ViewSize = [800, 800] self.lutManager.setView(self.view) if fileToLoad and fileToLoad[-5:] != '.pvsm': try: self.openFile(fileToLoad) except: print "error loading..."
def initialize(self): # Bring used components self.registerVtkWebProtocol( pv_protocols.ParaViewWebStartupPluginLoader( _PVCatalystManager.plugins)) self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPort()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebViewPortImageDelivery()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebViewPortGeometryDelivery()) # Update authentication key to use self.updateSecret(_PVCatalystManager.authKey) view = simple.GetRenderView() view.Background = [1, 1, 1]
def initialize(self): # Bring used components self.registerVtkWebProtocol( pv_protocols.ParaViewWebStartupRemoteConnection( _VisualizerServer.dsHost, _VisualizerServer.dsPort, _VisualizerServer.rsHost, _VisualizerServer.rsPort, _VisualizerServer.rcPort)) self.registerVtkWebProtocol( pv_protocols.ParaViewWebStartupPluginLoader( _VisualizerServer.plugins)) self.registerVtkWebProtocol( pv_protocols.ParaViewWebStateLoader(_VisualizerServer.fileToLoad)) self.registerVtkWebProtocol( pv_protocols.ParaViewWebFileListing(_VisualizerServer.dataDir, "Home", _VisualizerServer.excludeRegex, _VisualizerServer.groupRegex)) self.registerVtkWebProtocol( pv_protocols.ParaViewWebProxyManager( allowedProxiesFile=_VisualizerServer.proxies, baseDir=_VisualizerServer.dataDir, allowUnconfiguredReaders=_VisualizerServer.allReaders)) self.registerVtkWebProtocol( pv_protocols.ParaViewWebColorManager( pathToColorMaps=_VisualizerServer.colorPalette)) self.registerVtkWebProtocol(pv_protocols.ParaViewWebMouseHandler()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebViewPort()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebViewPortImageDelivery()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebViewPortGeometryDelivery()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebTimeHandler()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebSelectionHandler()) self.registerVtkWebProtocol(pv_protocols.ParaViewWebWidgetManager()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebKeyValuePairStore()) self.registerVtkWebProtocol( pv_protocols.ParaViewWebSaveData( baseSavePath=_VisualizerServer.saveDataDir)) # Update authentication key to use self.updateSecret(_VisualizerServer.authKey) # Disable interactor-based render calls simple.GetRenderView().EnableRenderOnInteraction = 0
def web_export(executionPath, destPath, exportType, nbPhi, nbTheta): # Destination directory for data dest = '%s/data' % destPath # Extract initial setting for view view = simple.GetRenderView() viewState = {} for prop in ['CameraViewUp', 'CameraPosition']: viewState[prop] = tuple(view.GetProperty(prop).GetData()) # Camera handling deltaPhi = 360 / nbPhi deltaTheta = int(180 / nbTheta) thetaMax = deltaTheta while thetaMax + deltaTheta < 90: thetaMax += deltaTheta camera = { 'type': 'spherical', 'phi': range(0, 360, deltaPhi), 'theta': range(-thetaMax, thetaMax + 1, deltaTheta) } # Choose export mode: if exportType == 0: export_images(dest, camera) if exportType == 1: export_volume_exploration_images(dest, camera) if exportType == 2: export_contour_exploration_images(dest, camera) if exportType == 3: export_layers(dest, camera) # Zip data directory zipData(destPath) # Copy application copy_viewer(destPath, executionPath) create_standalone_html(destPath) # Restore initial parameters for prop in viewState: view.GetProperty(prop).SetData(viewState[prop])
def updateTime(self, action): view = simple.GetRenderView() animationScene = simple.GetAnimationScene() currentTime = view.ViewTime if action == "next": animationScene.GoToNext() if currentTime == view.ViewTime: animationScene.GoToFirst() if action == "prev": animationScene.GoToPrevious() if currentTime == view.ViewTime: animationScene.GoToLast() if action == "first": animationScene.GoToFirst() if action == "last": animationScene.GoToLast() return view.ViewTime
def export_volume_exploration_images(destinationPath, camera, **kwargs): values = [int(v) for v in kwargs['multiValue'].split(',')] maxOpacity = float(kwargs['maxOpacity']) / 100.0 span = float(kwargs['tentWidth']) * 0.5 # View size imageWidth = kwargs['imageWidth'] imageHeight = kwargs['imageHeight'] # Configure View view = simple.GetRenderView() view.ViewSize = [imageWidth, imageHeight] pvw = get_volume_piecewise(view) if pvw: savedNodes = [] currentPoints = [0, 0, 0, 0] for i in range(pvw.GetSize()): pvw.GetNodeValue(i, currentPoints) savedNodes.append([v for v in currentPoints]) idb = ImageDataSetBuilder(destinationPath, 'image/jpg', camera) idb.getDataHandler().registerArgument(priority=1, name='volume', values=values, ui='slider', loop='reverse') idb.start(view) for volume in idb.getDataHandler().volume: pvw.RemoveAllPoints() pvw.AddPoint(float(volume) - span, 0) pvw.AddPoint(float(volume), maxOpacity) pvw.AddPoint(float(volume) + span, 0) pvw.AddPoint(255, 0) idb.writeImages() idb.stop() # Reset to original piecewise funtion pvw.RemoveAllPoints() for node in savedNodes: pvw.AddPoint(node[0], node[1], node[2], node[3]) else: print('Can not export Volume exploration without a Volume')
def export_contour_exploration_images(destinationPath, camera): view = simple.GetRenderView() contour = get_contour() nbSteps = 10 step = 250.0 / float(nbSteps) values = [float(v + 1) * step for v in range(0, nbSteps)] if contour: idb = ImageDataSetBuilder(destinationPath, 'image/jpg', camera) idb.getDataHandler().registerArgument(priority=1, name='contour', values=values, ui='slider', loop='reverse') idb.start(view) for contourValue in idb.getDataHandler().contour: contour.Value = [contourValue] idb.writeImages() idb.stop() else: print('No contour module available')
def _absarg2png(filenames): """Create images of |psi|^2 and arg(psi). The 'filenames' arguments is a dictionary with key:value = array_name:file_name. """ data_representation = pv.Show() # Reset the camera here to get the whole object. view = pv.GetRenderView() view.ResetCamera() # create calculator filter that computes the Cooper pair density array_name = list(filenames.keys())[1] # make background green view.Background = [0.0, 1.0, 0.0] # data_representation.ScalarOpacityFunction = pv.CreatePiecewiseFunction() data_representation.ColorArrayName = array_name data_representation.LookupTable = pv.GetLookupTableForArray( array_name, 1, RGBPoints=[0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0], LockScalarRange=1, ) pv.WriteImage(list(filenames.values())[1]) # pv.Render() array_name = list(filenames.keys())[0] # make background gray view.Background = [0.5, 0.5, 0.5] # data_representation.ScalarOpacityFunction = pv.CreatePiecewiseFunction() data_representation.ColorArrayName = array_name data_representation.LookupTable = pv.GetLookupTableForArray( array_name, 1, RGBPoints=_create_circular_hsv_colormap(), LockScalarRange=1) # Don't interpolate scalars as otherwise, the circular HSV color map # gets messed up at the pi/-pi seam. data_representation.InterpolateScalarsBeforeMapping = 0 pv.WriteImage(list(filenames.values())[0]) return