[Paraview] Extra camera reset in python macro

pat marion pat.marion at kitware.com
Wed Jan 27 16:57:53 EST 2010


Hi Eric,

This is by design.  When calling Render() from python, if this is the
_first_ render for this render window, ResetCamera() is called
automatically.  Your script will work if you insert a Render() before
you set the camera position.

When Berk first wrote the paraview.simple api he wanted to avoid this scenario:

  Newbie user creates their data and calls Render(), but sees a black
screen because he/she forget to call ResetCamera().

But now we have this scenario:

  Advanced user carefully sets the camera properties and calls
Render() only to find the camera reset :(


I vote we change behavior.

Pat



On Wed, Jan 27, 2010 at 4:33 PM, Eric E. Monson <emonson at cs.duke.edu> wrote:
> Hello,
>
> First of all, I've been playing around with the new python interface and trace functionality in PV, and it's really a great improvement!
>
> But... :) It seems like the first time I run a macro (from the PV python shell "Run selected" button) which contains some camera adjustments, the camera gets reset at the end. If I delete all of the pipeline elements and run it again without restarting PV or pressing Disconnect, the scene ends up with the correct camera settings. If I disconnect before running it again, the "reset at end" behavior is repeated. The same thing happens when running in ipython, outside of PV.
>
> Here's a sample script -- if the camera settings are correct you should not see space around the group of glyphed points (it is zoomed in a bit on the cluster):
>
> # =============================
> try: paraview.simple
> except: from paraview.simple import *
>
> PointSource2 = PointSource()
> PointSource2.Radius = 200.0
> PointSource2.NumberOfPoints = 100
>
> Glyph1 = Glyph( GlyphType="Sphere" )
> Glyph1.MaskPoints = 0
> Glyph1.RandomMode = 0
> Glyph1.SetScaleFactor = 1.0
> Glyph1.ScaleMode = 'off'
> Glyph1.Orient = 0
> Glyph1.GlyphType.Radius = 5.0
>
> DataRepresentation2 = Show()
>
> RenderView1 = GetRenderView()
> RenderView1.CameraViewUp = [0.01, 1.0, -0.06]
> RenderView1.CameraPosition = [37.0, 190.5, 640.7]
> RenderView1.CameraClippingRange = [91.9, 1018.7]
>
> Render()
> # =============================
>
> The main problem is that this keeps me from using the python macros like the old lookmarks because I don't get a repeatable camera view right after starting up PV.
>
> I'm using CVS ParaView from Jan 19 on OS X 10.6.2 built with CMake 2.9.20100113.
>
> Thanks,
> -Eric
>
> ------------------------------------------------------
> Eric E Monson
> Duke Visualization Technology Group
>
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview
>


More information about the ParaView mailing list