Example #1
0
    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'
        ]
Example #2
0
    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']
Example #3
0
    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
Example #4
0
    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'
        ]
Example #5
0
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])
Example #6
0
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)
Example #7
0
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')
Example #8
0
    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)
Example #9
0
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.')
Example #10
0
 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
Example #11
0
    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
Example #12
0
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()
Example #14
0
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)
Example #15
0
 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'
     ]
Example #16
0
    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
Example #17
0
    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)
Example #19
0
    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
Example #20
0
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()
Example #21
0
    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'
        ]
Example #22
0
    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)
Example #23
0
 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..."
Example #24
0
    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]
Example #25
0
    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
Example #26
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])
Example #27
0
    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
Example #28
0
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')
Example #29
0
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')
Example #30
0
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