Trisurf Monte Carlo simulator
Samo Penic
2016-07-07 c89a71dbf5ce77d7accc60d8637f0eea64ecc1e6
Begin adding the preview functionality in python2.7, not completed yet.
1 files modified
51 ■■■■■ changed files
python/trisurf/tsmgr.py 51 ●●●●● patch | view | raw | blame | history
python/trisurf/tsmgr.py
@@ -14,6 +14,7 @@
    from . import WebTrisurf
else:
    from urlparse import urlparse
    from vtk import *
#import io
@@ -42,6 +43,7 @@
    action_group.add_argument('-s','--status',help='print status of the processes',action='store_true')
    action_group.add_argument('-v','--version', help='print version information and exit', action='store_true')
    action_group.add_argument('--web-server', type=int,metavar="PORT", nargs=1, help='EXPERIMENTAL: starts web server and never exist.')
    action_group.add_argument('-p','--preview',help='preview last VTU shape',action='store_true')
    parser.add_argument('--force', help='if dangerous operation (killing all the processes) is requested, this flag is required to execute the operation. Otherwise, the request will be ignored.', action="store_true")
    parser.add_argument('-H', '--host', nargs=1, help='specifies which host is itended for the operation. Defauts to localhost for all operations except --status and --version, where all configured hosts are assumed.')
    parser.add_argument('--html', help='Generate HTML output', action="store_true")
@@ -191,12 +193,59 @@
        delete_comments(args,host)
    elif args['web_server']!=None:
        start_web_server(args,host)
    elif args['preview']:
        preview_vtu(args,host)
    else: #version requested
        print(getTrisurfVersion())
    return
def preview_vtu(args,host):
    #only for localhost at the moment
    filename=host['runs'][0].getLastVTU()
    print(filename)
    if sys.version_info>=(3,0):
        print("Preview works only with python 2.7")
        exit(1)
    if host['name'] == socket.gethostname():
        target_runs=getTargetRunIdxList(args)
        #if target_runs==None:
        #    target_runs=list(range(1,len(host['runs'])+1))
        #for i in target_runs:
        #    host['runs'][i-1].start()
        reader=vtkXMLUnstructuredGridReader()
        reader.SetFileName(filename)
        reader.Update() # Needed because of GetScalarRange
        output = reader.GetOutput()
        scalar_range = output.GetScalarRange()
        # Create the mapper that corresponds the objects of the vtk file
        # into graphics elements
        mapper = vtkDataSetMapper()
        mapper.SetInput(output)
        mapper.SetScalarRange(scalar_range)
        # Create the Actor
        actor = vtkActor()
        actor.SetMapper(mapper)
        # Create the Renderer
        renderer = vtkRenderer()
        renderer.AddActor(actor)
        renderer.SetBackground(0, 0, 0) # Set background to white
        # Create the RendererWindow
        renderer_window = vtkRenderWindow()
        renderer_window.AddRenderer(renderer)
        # Create the RendererWindowInteractor and display the vtk_file
        interactor = vtkRenderWindowInteractor()
        interactor.SetRenderWindow(renderer_window)
        interactor.Initialize()
        interactor.Start()
def getListOfHostConfigurationByHostname(hosts,host):
    rhost=[]