Changes between Version 6 and Version 7 of Examples/ParaviewAnimating


Ignore:
Timestamp:
06/14/18 13:18:04 (6 years ago)
Author:
Herwig Zilken
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Examples/ParaviewAnimating

    v6 v7  
    77
    88== ParaView Gui: Animation View ==
    9 As usual, when you want to write a Python script for ParaView from scratch, and have no idea where to start, it make sense to open the ParaView GUI, start a Python trace, and prototype the desired setup in the GUI interactively. When you want to generate an animation, you have to deal with the Animation View, obviously.
     9As usual, when you want to write a Python script for !ParaView from scratch, and have no idea where to start, it make sense to open the !ParaView GUI, start a Python trace, and prototype the desired setup in the GUI interactively. When you want to generate an animation, you have to deal with the Animation View, obviously.
    1010
    1111[[Image(ParaView_AnimationView.jpg, margin=10)]]\\
    1212
    13 Unfortunately, ParaView is not willing to include all interactive settings in the trace. Some are just skipped, e.g. settings regarding the "TimeKeeper1 - Time" are NOT reflected in the trace. For this reason it makes sense to take a more closer look at the mechanisms and Python classes working behind the scene.
     13Unfortunately, !ParaView is not willing to include all interactive settings in the trace. Some are just skipped, e.g. settings regarding the "TimeKeeper1 - Time" are NOT reflected in the trace. For this reason it makes sense to take a more closer look at the mechanisms and Python classes working behind the scene.
    1414
    1515== Basic Concept ==
    16 The basic concept of how to animate "something", in this case the rendered ParaView scene, is quite easy to understand. The central element of any animation is a timeline with a start and end time and, as we work with discrete timesteps, a number of frames. This is implemented in the Python class paraview.simple.AnimationScene.
     16The basic concept of how to animate "something", in this case the rendered !ParaView scene, is quite easy to understand. The central element of any animation is a timeline with a start and end time and a mechanism to determine a number of descrete timesteps (frames). All this is implemented in the Python class paraview.simple.!AnimationScene.
    1717Within the time interval defined in the timeline, properties of the scene can be changed.
    18 In the ParaView GUI this concept is reflected by so called "tracks" (or "cues") in the Animation View. Basically, each track defines the temporal change of one (or more) properties of the scene.
     18In the !ParaView GUI this concept is reflected by so called "tracks" (or "cues") in the Animation View. Basically, each track defines the temporal change of one (or more) properties of the scene.
    1919
    20 In ParaView-Python, different kinds (classes) of tracks/cues are available. Here we will try to explain four of them, which are implemented in the following Python classes:
    21 * paraview.simple.KeyFrameAnimationCue: basic cue to animate general properties of objects (readers, sources, filters) in the render pipeline
    22 * paraview.simple.CameraAnimationCue: cue to change camera parameters (e.g. position, focal point, up direction, view angle)
    23 * paraview.simple.PythonAnimationCue: cue to execute a Python script at a certain point in time
    24 * paraview.simple.TimeAnimationCue: cue to determine what data timesteps are loaded depending on the animation clock time
     20In !ParaView-Python, different kinds (classes) of tracks/cues are available. We will try to explain four of them, which are implemented in the following Python classes:
     21* paraview.simple.!KeyFrameAnimationCue: basic cue to animate general properties of objects (readers, sources, filters) in the render pipeline
     22* paraview.simple.!CameraAnimationCue: cue to change camera parameters (e.g. position, focal point, up direction, view angle)
     23* paraview.simple.!PythonAnimationCue: cue to execute a Python script at a certain point in time
     24* paraview.simple.!TimeAnimationCue: cue to determine what data timesteps are loaded depending on the animation clock time
    2525
    26 The (change of the) values of the properties in the timeline are defined by one or more keyframes included in each track. The key elements :) of a keyframe are keytime and keyvalues. The value(s) of the referred property is set to the keyvalues at the specified keytime. Some types of keyframes also have the ability to interpolate keyvalues from one keyframe to the next. Specifically these are paraview.simple.CameraKeyFrame, paraview.simple.CompositeKeyFrame, paraview.simple.ExponentialKeyFrame, paraview.simple.RampKeyFrame and paraview.simple.SinusoidKeyFrame.
     26The (change of the) values of the properties in the timeline are defined by one or more keyframes included in each track. The key elements :) of a keyframe are keytime and keyvalues. The value(s) of the referred property is set to the keyvalues at the specified keytime. Some types of keyframes also have the ability to interpolate keyvalues from one keyframe to the next. Specifically these are paraview.simple.!CameraKeyFrame, paraview.simple.!CompositeKeyFrame, paraview.simple.!ExponentialKeyFrame, paraview.simple.!RampKeyFrame and paraview.simple.!SinusoidKeyFrame.
    2727
    2828In the next paragraphs we are going to explain the basic mechanisms of the relevat Python classes and we give some examples of typical use cases.
     
    8888
    8989== !KeyFrameAnimationCue ==
    90 As already mentioned, a !KeyFrameAnimationCue is connected to a property of a pipeline object.
     90As already mentioned, a !KeyFrameAnimationCue connects the property of a pipeline object to the cue.
    9191This connection is defined via the attributes !AnimatedProxy (proxy of the pipeline object) and !AnimatedPropertyName (name of the connected property), though typically you do not have to set these attributes on your own. Instead they are set when constructing a !KeyFrameAnimationCue by calling !GetAnimationTrack(...) (see use case below).
    92 Similar to the !AnimationScene, every cue also has the properties !StartTime and !EndTime. Typically these properties do not have the same values as the corresponding ones of !AnimationScene. When !TimeMode is set to 'Normalize', the start and end time of the animation scene is linearly interpolated to the interval [0,1]. These values are the default ones.
     92Similar to the !AnimationScene, every cue also has the properties !StartTime and !EndTime. Typically these properties do not have the same values as the corresponding ones of !AnimationScene. When !TimeMode is set to 'Normalize', the start and end time of the animation scene is linearly interpolated to the interval ![0,1]. But don't care, these values are the default ones anyhow.
    9393
    9494=== !KeyFrameAnimationCue Use Case ===
     
    9999sphere = Sphere()
    100100Show(sphere)
    101 track3 = GetAnimationTrack("Visibility") # property of active source
    102 track1 = GetAnimationTrack("Center", 0, sphere)
    103 track2 = GetAnimationTrack(sphere.GetProperty("Radius"))
     101track1 = GetAnimationTrack("Visibility") # property of active source
     102track2 = GetAnimationTrack("Center", 0, sphere)
     103track3 = GetAnimationTrack(sphere.GetProperty("Radius"))
    104104}}}
    105105