#### import the simple module from the paraview
from paraview.simple import *
#### disable automatic camera reset on 'Show'
paraview.simple._DisableFirstRenderCameraReset()

# create a new 'Plane'
plane1 = Plane()

# Properties modified on plane1
plane1.XResolution = 10
plane1.YResolution = 10

# get active view
renderView1 = GetActiveViewOrCreate('RenderView')
# uncomment following to set a specific view size
# renderView1.ViewSize = [847, 546]

# show data in view
plane1Display = Show(plane1, renderView1)
# trace defaults for the display properties.
plane1Display.ColorArrayName = [None, '']

# reset view to fit data
renderView1.ResetCamera()

#changing interaction mode based on data extents
renderView1.InteractionMode = '2D'
renderView1.CameraPosition = [0.0, 0.0, 10000.0]

# create a new 'Random Vectors'
randomVectors1 = RandomVectors(Input=plane1)

# show data in view
randomVectors1Display = Show(randomVectors1, renderView1)
# trace defaults for the display properties.
randomVectors1Display.ColorArrayName = [None, '']

# hide data in view
Hide(plane1, renderView1)

# create a new 'Surface Vectors'
surfaceVectors1 = SurfaceVectors(Input=randomVectors1)
surfaceVectors1.SelectInputVectors = ['POINTS', 'BrownianVectors']

# show data in view
surfaceVectors1Display = Show(surfaceVectors1, renderView1)
# trace defaults for the display properties.
surfaceVectors1Display.ColorArrayName = [None, '']

# hide data in view
Hide(randomVectors1, renderView1)

# create a new 'Mask Points'
maskPoints1 = MaskPoints(Input=surfaceVectors1)

# show data in view
maskPoints1Display = Show(maskPoints1, renderView1)
# trace defaults for the display properties.
maskPoints1Display.ColorArrayName = [None, '']

# hide data in view
Hide(surfaceVectors1, renderView1)

# create a new 'Stream Tracer With Custom Source'
streamTracerWithCustomSource1 = StreamTracerWithCustomSource(Input=surfaceVectors1,
    SeedSource=maskPoints1)
streamTracerWithCustomSource1.Vectors = ['POINTS', 'BrownianVectors']

# show data in view
streamTracerWithCustomSource1Display = Show(streamTracerWithCustomSource1, renderView1)
# trace defaults for the display properties.
streamTracerWithCustomSource1Display.ColorArrayName = [None, '']

# hide data in view
Hide(surfaceVectors1, renderView1)

# hide data in view
Hide(maskPoints1, renderView1)

# current camera placement for renderView1
renderView1.InteractionMode = '2D'
renderView1.CameraPosition = [0.0, 0.0, 10000.0]
renderView1.CameraParallelScale = 0.70710678118654757

# save screenshot
SaveScreenshot('./test.png', magnification=1, quality=100, view=renderView1)

#### saving camera placements for all active views

# current camera placement for renderView1
renderView1.InteractionMode = '2D'
renderView1.CameraPosition = [0.0, 0.0, 10000.0]
renderView1.CameraParallelScale = 0.70710678118654757

#### uncomment the following to render all views
# RenderAllViews()
# alternatively, if you want to write images, you can use SaveScreenshot(...).
