| 58 | | '''Darren's note''': If so, that breaks the implicit convention that the first scene in an "animate" command is always a 'snap' transition with 1 frame (as it is in [http://www.cgl.ucsf.edu/chimera/docs/UsersGuide/midas/fly.html fly]). Also, it means that the first scene in an animate command will always use the [master-frames[,master-trans]] arguments. It can have defaults, but not anything else, without breaking the current syntax convention and the parsing implementation for "animate". That is, we could not specify something like: "{{{animate 20,linear 5 scene1 scene2}}}" to get 5 linear frames to scene1 and then 20 linear frames to scene2; the extra 5 is a real headache! (How would you parse that without making master-frames,master-trans required arguments?) |
| | 58 | '''Darren's note''': If so, that breaks the implicit convention that the first scene in an "animate" command is always a 'snap' transition with 1 frame (as it is in [http://www.cgl.ucsf.edu/chimera/docs/UsersGuide/midas/fly.html fly]). Also, it means that the first scene in an animate command will always use the [master-frames[,master-trans]] arguments. It could have a default that is different from the master (such as the 'snap' with 1 frame), but nothing else is possible without breaking the current conventions and assumptions for "animate". That is, we could not specify something like: "{{{animate 20,linear 5 scene1 scene2}}}" to get 5 linear frames to scene1 and then 20 linear frames to scene2; that extra 5 is a real headache! (How would you parse that without making master-frames,master-trans required arguments?) |
| 169 | | In order to provide reliability in parsing the animate command, the comma in the [frameN[,trans-name]] construct is required to specify any trans-name. Moreover, whenever a comma is present in the command arguments, it must be preceded by a frameN argument and followed by a trans-name argument, with no whitespace allowed between any of these elements. Hence, to specify a scene animation that will use the master-frames but a different trans-name, it is necessary to use a '0' in the place of the framesN argument. For example, "{{{animate 10,snap scene1 0,linear scene2}}}" will result in master-frames=10, master-trans=snap and scene2 will have 10 frames (not zero frames, that's impossible), with a 'linear' transition instead of a 'snap' master transition. |
| | 169 | In essence, the implementation of the animate command boils down to something like this: |
| | 170 | |
| | 171 | {{{ |
| | 172 | animate <scene-expression1> [<scene-expression2> ... <scene-expressionN>] |
| | 173 | <scene-expression1> := [<master-frames>[,<master-transName>]] <sceneName1> |
| | 174 | <scene-expressionN> := [<frames>[,<transName>]] <sceneNameN> |
| | 175 | }}} |
| | 176 | |
| | 177 | |
| | 178 | Notes: |
| | 179 | - '''Implicit transition for <sceneName1>''': The first scene, {{{<sceneName1>}}}, is always a "snap" transition with 1 frame. This "snap" transition of 1 frame is the default scene transition (therefore, it is the default values for {{{[<master-frames>[,<master-transName>]]}}}). |
| | 180 | - In order to provide reliability in parsing the animate command, the comma in the {{{[frameN[,trans-name]]}}} construct is required to specify any trans-name. Moreover, whenever a comma is present in the command arguments, it must be preceded by a frameN argument and followed by a trans-name argument, with no whitespace allowed between any of these elements. |
| | 181 | - To specify a scene animation that will use the master-frames but a different trans-name, it is necessary to use a '0' in the place of the framesN argument. For example, "{{{animate 10,snap scene1 0,linear scene2}}}" will result in master-frames=10, master-trans=snap and scene2 will have 10 frames (not zero frames, that's impossible), with a 'linear' transition instead of a 'snap' master transition. |