diff options
author | Karl Berry <karl@freefriends.org> | 2006-12-19 17:50:33 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-12-19 17:50:33 +0000 |
commit | 23b2789419e9e22d552147033a4f7f8ff569f649 (patch) | |
tree | 46de84a6d7a5269ec8cd658a128e236c65827cd3 /Master/texmf-dist/doc/latex/movie15 | |
parent | 19e726eec508d247a2f1acb5b9c3a6618bd5c487 (diff) |
movie15 update (16dec06)
git-svn-id: svn://tug.org/texlive/trunk@2816 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/movie15')
-rw-r--r-- | Master/texmf-dist/doc/latex/movie15/README | 36 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/movie15/animation.js | 100 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/movie15/dice.js | 119 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/movie15/movie15.pdf | bin | 464142 -> 471742 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/movie15/movie15.tex | 105 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/movie15/overlay-example.pdf | bin | 31983 -> 32487 bytes |
6 files changed, 146 insertions, 214 deletions
diff --git a/Master/texmf-dist/doc/latex/movie15/README b/Master/texmf-dist/doc/latex/movie15/README index a71172392df..3f56a4b1f4b 100644 --- a/Master/texmf-dist/doc/latex/movie15/README +++ b/Master/texmf-dist/doc/latex/movie15/README @@ -33,9 +33,10 @@ Usage: \usepackage[<package options>]{movie15} Package option `3D' enables the 3D feature from the PDF-1.6 specification. - With option `draft' media files are not included. The file name is printed - in a box of size <width>x(<height>+<depth>). `final' does the opposite, - overriding a global draft option specified in the \documentclass command. + With option `draft' media files are not included. Instead, the file name + is printed in a box of size <width>x(<height>+<depth>). `final' does the + opposite, overriding a global draft option specified in the \documentclass + command. \includemovie[<options>]{<width>}{<height>}{<media file>} @@ -57,10 +58,10 @@ Usage: calculating 3D camera settings. In addition to `play' (default), `stop', `resume', `pause', `reset', `close', - `3Dviewindex' and `3Dcalculate' it accepts `controls', `repeat', + `3Dviewindex', `3Dcalculate' and `3Dgetview' it accepts `controls', `repeat', `palindrome', `startat', `endat', `mouse', `rate', `volume', `3Dcoo', - `3Dc2c', `3Droo', `3Dcaa' and `3Djscript' from the subsequent list of command - options. + '3Droll', `3Dc2c', `3Droo', `3Dcaa' and `3Djscript' from the subsequent list + of command options. Options: @@ -123,7 +124,10 @@ Usage: mouse[=true|false] Enable mouse interaction: Clicking onto the media (giving it the focus) pauses the playback while - clicking outside resumes it. + clicking outside resumes it. In 3D context this + option is set to `true' by default, but may be set + to `false' in order to make the 3D annotation + non-interactive. palindrome[=true|false] Play media forward and backward. @@ -231,12 +235,30 @@ Usage: canvas. Only fixed point real numbers in the range from 0 to 1 are allowed for the colour components. + 3Dlights=<lighting scheme> Sets the default lighting scheme. Possible values + are: `None', `White', `Day', `Night', `Hard', + `Primary', `Blue', `Red', `Cube', `CAD', + `HeadLamp'. + 3Djscript=<JavaScript file> Things like animation, lighting, background colour etc. may also be script driven. Option `3Djscript' associates a <JavaScript file> with the 3D object. The script will be executed upon activation of the object. + 3Dresource=<resource file 1>[, 3Dresource=<resource file 2> [, ...]] + + Embeds additional 3D or rasterized image files for + use as resources in the 3D annotation. Possible + file types are U3D, Postscript (LaTeX + dvips) and + PDF/JPEG/PNG (pdfLaTeX). Embedded resources must + be loaded by the JavaScript method + + Resource("pdf://<resource path>") + + where <resource path> stands for the path to the + resource file as specified by the `3Dresource' + option. Additional options for use with `\movieref': diff --git a/Master/texmf-dist/doc/latex/movie15/animation.js b/Master/texmf-dist/doc/latex/movie15/animation.js index 7c870a1b498..99829252365 100644 --- a/Master/texmf-dist/doc/latex/movie15/animation.js +++ b/Master/texmf-dist/doc/latex/movie15/animation.js @@ -1,52 +1,63 @@ -/////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////// // // animation.js // // JavaScript for use with `3Djscript' option of \includemovie // -// * Activates animation embedded in the u3d file. -// * Arrow keys `Down', `Up' can be used for speeding up and slowing -// down a running animation, key `Home' for reverting to the default -// speed. +// 888888888888888888888888888888888888888888888888888888888888 +// * 88 Set includemovie-option `repeat=0', to take effect !!! 88 +// 888888888888888888888888888888888888888888888888888888888888 // -/////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////// -// adjustable parameters -/////////////////////////////////////////////////////// -var rate = 1; // 1 --> use original speed as default -var palindrome = true; // true --> play forth and back -/////////////////////////////////////////////////////// +// * Activates keyframe animation embedded in the u3d file. +// * Arrow keys `Down', `Up' can be used for speeding up and +// slowing down a running animation, key `Home' for reverting +// to the default speed. +// +// * Adjustable parameters: +var rate = 1; // 1 --> use original speed as default +var palindrome = true; // true --> play forth and back +// +///////////////////////////////////////////////////////////////// //get the first animation in the scene var myAnim = scene.animations.getByIndex(0); -rate = Math.abs(rate); -myAnim.speed = rate; -myAnim.forward = true; +myAnim.wallTime = 0; +myAnim.speed = 1; +myAnim.myLength = myAnim.endTime - myAnim.startTime; scene.activateAnimation(myAnim); +//method to set animation speed +myAnim.setSpeed = function (speed) { + speed = Math.abs(speed); + this.wallTime /= speed/this.speed; //correct the walltime + this.speed = speed; +}; + +//method to change animation speed by a factor +myAnim.changeSpeed = function (mult) { + this.wallTime /= mult; //correct the walltime + this.speed *= mult; +}; + +//set default speed +myAnim.setSpeed(rate); + //menu items -runtime.addCustomMenuItem( - "faster", "Faster (Key Up)", "default", 0 -); -runtime.addCustomMenuItem( - "slower", "Slower (Key Down)", "default", 0 -); -runtime.addCustomMenuItem( - "default", "Default Speed (Key Home)", "default", 0 -); +runtime.addCustomMenuItem("faster", "Faster (Key Up)", "default", 0); +runtime.addCustomMenuItem("slower", "Slower (Key Down)", "default", 0); +runtime.addCustomMenuItem("default", "Default Speed (Key Home)", "default", 0); //menu handler to control speed menuEventHandler = new MenuEventHandler(); menuEventHandler.onEvent = function(e) { if (e.menuItemName == "faster") { - myAnim.speed *= 1.25; + myAnim.changeSpeed(1.25); } else if (e.menuItemName == "slower") { - myAnim.speed /= 1.25; + myAnim.changeSpeed(1/1.25); } else if (e.menuItemName == "default") { - myAnim.speed = rate; + myAnim.setSpeed(rate); } }; runtime.addEventHandler(menuEventHandler); @@ -57,15 +68,15 @@ keyEventHandler.onKeyDown = true; keyEventHandler.onEvent = function(e) { switch(e.characterCode) { case 30: //key up - myAnim.speed *= 1.05; + myAnim.changeSpeed(1.05); break; case 31: //key down - myAnim.speed /= 1.05; + myAnim.changeSpeed(1/1.05); break; case 4: //key home - myAnim.speed = rate; + myAnim.setSpeed(rate); break; } }; @@ -75,24 +86,15 @@ runtime.addEventHandler(keyEventHandler); myTimer = new TimeEventHandler(); myTimer.onTimeChange = true; myTimer.onEvent = function(e) { - if (myAnim.forward) { - myAnim.currentTime += e.deltaTime * myAnim.speed; - if (myAnim.currentTime > myAnim.endTime) { - if (palindrome == true) { - myAnim.currentTime = myAnim.endTime; - myAnim.forward = false; - } - else { - myAnim.currentTime = myAnim.startTime; - } - } - } - else { - myAnim.currentTime -= e.deltaTime * myAnim.speed; - if (myAnim.currentTime < myAnim.startTime) { - myAnim.currentTime = myAnim.startTime; - myAnim.forward = true; - } + myAnim.wallTime += e.deltaTime; + if (palindrome == true) { + myAnim.currentTime = + myAnim.startTime + + myAnim.myLength/2 + * (1 - Math.cos(Math.PI * myAnim.speed/myAnim.myLength * myAnim.wallTime)); + } else { + myAnim.currentTime = myAnim.startTime + + (myAnim.speed * myAnim.wallTime % myAnim.myLength); } }; runtime.addEventHandler(myTimer); diff --git a/Master/texmf-dist/doc/latex/movie15/dice.js b/Master/texmf-dist/doc/latex/movie15/dice.js deleted file mode 100644 index 2050fbcf536..00000000000 --- a/Master/texmf-dist/doc/latex/movie15/dice.js +++ /dev/null @@ -1,119 +0,0 @@ -//////////////////////////////////////////////////////////////////////// -// -// This JavaScript file is a simple concatenation of the files -// `lights.js' and `turntable.js' from the `doc/javascript' directory. -// -//////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////// -// -// lights.js -// -// example JavaScript for use with `3Djscript' option of \includemovie -// -// * Adds light sources around the object for better illumination. -// -//////////////////////////////////////////////////////////////////////// - -//first remove any scene lights -for (var i = scene.lights.count - 1; i >= 0; i--) { - scene.lights.removeByIndex(i); -} - -//new lights -//from left -l1 = scene.createLight(); -l1.color.set(1,1,1); -l1.brightness = .4; -l1.direction.set(1,0,0); - -//from right -l2 = scene.createLight(); -l2.color.set(1,1,1); -l2.brightness = .4; -l2.direction.set(-1,0,0); - -//from bottom -l3 = scene.createLight(); -l3.color.set(1,1,1); -l3.brightness = .4; -l3.direction.set(0,0,1); - -//from top -l4 = scene.createLight(); -l4.color.set(1,1,1); -l4.brightness = .4; -l4.direction.set(0,0,-1); - -//from front -l5 = scene.createLight(); -l5.color.set(1,1,1); -l5.brightness = .4; -l5.direction.set(0,1,0); - -//from back -l6 = scene.createLight(); -l6.color.set(1,1,1); -l6.brightness = .4; -l6.direction.set(0,-1,0); - -///////////////////////////////////////////////////////////////////// -// -// turntable.js -// -// JavaScript for use with `3Djscript' option of \includemovie -// -// * Greatly improves the rotational behaviour of the 3D object, -// prevents it from tilting to the side while dragging the mouse. -// This is achieved by suppressing the rolling of the camera about -// its optical axis. -// -///////////////////////////////////////////////////////////////////// - -// maximum pitch (degrees from horizontal) of the camera -var max_alpha = 88; -var min_beta = 90 - max_alpha; // the complement -var cos_min_beta = Math.cos(min_beta * Math.PI/180); -var tan_min_beta = Math.tan(min_beta * Math.PI/180); - -var camera = scene.cameras.getByIndex(0); - -//updates the vertical axis of rotation whenever a predefined view -//is selected from the drop down list in the 3D toolbar -var cameraEventHandler = new CameraEventHandler(); -cameraEventHandler.onEvent = function (e) { - camera.axis_up = camera.up.subtract(camera.position); - camera.axis_up.normalize(); -} -runtime.addEventHandler(cameraEventHandler); - -//suppresses camera rolling and limits camera pitch -var mouseEventHandler = new MouseEventHandler(); -mouseEventHandler.onMouseMove = true; -mouseEventHandler.onEvent = function (e) { - var c2c = camera.position.subtract(camera.targetPosition); - var roo = c2c.length; - c2c.normalize(); - cos_beta = c2c.dot(camera.axis_up); //cos of enclosed angle - - //correct the camera position if it is too high or too low - if(Math.abs(cos_beta) > cos_min_beta) { - //auxiliary vectors a & b - var a = camera.axis_up.scale(cos_beta); - var b = c2c.subtract(a); - b.normalize(); - b.scaleInPlace(tan_min_beta * a.length); - - c2c.set(a.add(b)); - c2c.normalize(); - - camera.position.set(camera.targetPosition.add(c2c.scale(roo))); - cos_beta = c2c.dot(camera.axis_up); - } - - //suppress rolling - camera.up.set( - camera.position.add(camera.axis_up).add(c2c.scale(-cos_beta)) - ); -}; -runtime.addEventHandler(mouseEventHandler); diff --git a/Master/texmf-dist/doc/latex/movie15/movie15.pdf b/Master/texmf-dist/doc/latex/movie15/movie15.pdf Binary files differindex e55f511fe30..00c81eb27c4 100644 --- a/Master/texmf-dist/doc/latex/movie15/movie15.pdf +++ b/Master/texmf-dist/doc/latex/movie15/movie15.pdf diff --git a/Master/texmf-dist/doc/latex/movie15/movie15.tex b/Master/texmf-dist/doc/latex/movie15/movie15.tex index 5a0fb60e052..c45484ded90 100644 --- a/Master/texmf-dist/doc/latex/movie15/movie15.tex +++ b/Master/texmf-dist/doc/latex/movie15/movie15.tex @@ -35,7 +35,7 @@ pdftitle={The movie15 Package}, pdfsubject={Documentation}, pdfauthor={Alexander Grahn}, - pdfkeywords={embed, include, multimedia, movie, sound, video, animation, JavaScript, 3D, LaTeX, pdfLaTeX, PDF}, + pdfkeywords={embed, movie, LaTeX, pdfLaTeX, PDF, 3D, JavaScript, include, sound, video, multimedia, animation}, citebordercolor={0 0 1}, filebordercolor={0 0 1}, linkbordercolor={0 0 1}, @@ -51,7 +51,7 @@ \begin{abstract}\noindent A \LaTeX{} package for inclusion of movies, sounds and 3D objects into PDF documents with PDF-1.5/1.6 compatibility.\\[0.2\baselineskip] -\emph{Keywords}: embed, include, multimedia, movie, sound, video, animation, JavaScript, 3D, LaTeX, pdfLaTeX, PDF +\emph{Keywords}: embed, movie, LaTeX, pdfLaTeX, PDF, 3D, JavaScript, include, sound, video, multimedia, animation \end{abstract} \tableofcontents @@ -65,7 +65,9 @@ This package provides an interface to embed movies, sounds and 3D objects into P The final PDF output can be viewed with Windows\textsuperscript{\scriptsize\textregistered} and Mac OS\textsuperscript{\scriptsize\textregistered} versions of Adobe Reader. However, embedded media file data can also be extracted and saved to disk from within Readers which support file attachments. This makes PDF documents a little more portable to Readers which do not ship with a multimedia plug-in. -`movie15' works well together with the presentation making packages `Beamer' and `Powerdot'. In particular it supports their overlay concept. See this \href{./overlay-example.pdf}{example} which uses the `Beamer' class. Also read the comments in the example's source file, `\verb+overlay-example.tex+', on how to use `movie15' with presentation packages. +`movie15' works well together with the presentation making package `Beamer'. In particular it supports its overlay concept. See this \href{./overlay-example.pdf}{example}. +%which uses the `Beamer' class. +Also read the comments in the example's source file, `\verb+overlay-example.tex+', on how to use `movie15' with `Beamer'. \section{Installation} The file `movie15.sty' should be stored in a place where \LaTeX{} can find it. @@ -143,9 +145,10 @@ continue \end{verbatim} Continue playback in background on premature page change. However, paused media remain paused. So do media that have reached the end or that still show the poster. \begin{verbatim} -controls[=true|false] +controls +toolbar \end{verbatim} -Player specific controls are displayed during playback of the media clip, if available. For movies and sounds the default is `\verb+false+'; controls are not shown. For 3D content, the default is `\verb+true+', since `\verb+false+' would make the 3D content non-interactive, i.\,e. not responsive to mouse interaction.% All animation would need be driven by JavaScript in this case. +Player specific controls or toolbars are displayed during playback of the media clip, if available. The default is `\verb+false+'; controls are not shown. \begin{verbatim} depth=<depth> \end{verbatim} @@ -178,7 +181,7 @@ According to the PDF specification, the viewer application needs to know the MIM \begin{verbatim} mouse[=true|false] \end{verbatim} -Enable mouse interaction: Clicking onto the media (giving it the focus) pauses the playback while clicking outside resumes it. Alternatively, once the media has got the focus, repeated pressing of key `P' on the keyboard switches between Play and Pause (at least with some players). +Enable mouse interaction: Clicking onto the media (giving it the focus) pauses the playback while clicking outside resumes it. Alternatively, once the media has got the focus, repeated pressing of key `P' on the keyboard switches between Play and Pause (at least with some players). In 3D context it specifies whether the 3D annotation should be interactive, i.\,e. responsive to mouse interaction. 3D annotations are interactive by default. \begin{verbatim} palindrome[=true|false] \end{verbatim} @@ -192,7 +195,6 @@ Forces a particular media player plug-in to be used instead of the default one. \phantom{xxxx}RNWK\_RealPlayer\\ \phantom{xxxx}MSFT\_WindowsMediaPlayer\\ \phantom{xxxx}ADBE\_MCI} (Adobe builtin player) - \begin{verbatim} poster \end{verbatim} @@ -208,7 +210,7 @@ rate=<rate> \begin{verbatim} repeat[=<repeats>] \end{verbatim} -Playback of the media clip will be repeated \verb+<repeats>+ times. Without argument this option causes the player to repeat forever. +Specifies how often the media clip or embedded 3D animation will be played. Without argument this option causes the player to repeat forever. \begin{verbatim} startat=<offset> endat=<offset> @@ -255,9 +257,9 @@ volume=<percentage of original volume> The meaning of this option should be self explaining. \subsection{Inclusion of 3D objects}\label{sec:3D} -The PDF-1.6 specification, which was introduced with the advent of Adobe Acrobat/Reader 7, allows embedding of 3-dimensional graphic objects, such as CAD models or 3D scientific data, and lets the user interactively manipulate them. At time of writing this documentation, the only supported file format was U3D~\cite{3diforg}, and only one commercial software~\cite{dexp} for exporting into the U3D format, yet from a number of CAD and 3D vector formats, including DXF and VRML, was known. Nevertheless, a try-out version of~\cite{dexp} can be downloaded without charge. +The PDF-1.6 specification, which was introduced with the advent of Adobe Acrobat/Reader 7, allows embedding of 3-dimensional graphic objects, such as CAD models or 3D scientific data, and lets the user interactively manipulate them. At the time of writing this documentation, the only supported file format was U3D~\cite{3diforg}, and only one commercial software~\cite{dexp} for exporting into the U3D format, yet from a number of CAD and 3D vector formats, including DXF and VRML, was known. Nevertheless, a try-out version of~\cite{dexp} can be downloaded without charge. -Selection of the `\verb+3D+' package option enables the 3D feature. Most of the command options listed in section~\ref{usrif} do what they are supposed to do in the case of embedded 3D as well. Other options are ignored, in particular `\verb+repeat+', `\verb+palindrome+', `\verb+startat+', `\verb+endat+', `\verb+rate+' and `\verb+volume+', because they do not make sense and `\verb+mouse+', because 3D objects are interactive by definition. Options `\verb+inline=false+' and `\verb+url+' are supported, but imply option `{\tt{}externalview\-er}', because the 3D Reader plug-in handles embedded files only. +Selection of the `\verb+3D+' package option enables the 3D feature. Most of the command options listed in section~\ref{usrif} do what they are supposed to do in the case of embedded 3D as well. Other options are ignored, in particular `\verb+startat+', `\verb+endat+', `\verb+volume+' and `\verb+playerid+'. Options `\verb+inline=false+' and `\verb+url+' are supported, but imply option `{\tt{}ex\-ter\-nal\-view\-er}', because the 3D Reader plug-in handles embedded files only. There are a few options to \verb+\includemovie+ which define how the 3D object is positioned within the view port of a virtual camera, or conversely, how the virtual camera is positioned and oriented within a coordinate system, called `The World', which bears the 3D object at a fixed position. Fig.~\ref{3dscene} should help to visualize the scenery: The virtual camera is orbiting at a distance of $ROO$ around the centre of orbit, specified by the position vector $\overrightarrow{COO}$; $\sphericalangle AAC$ is the camera's aperture angle. In addition, the direction vector $\overrightarrow{C2C}$ is needed to specify the initial camera position. \begin{figure}[ht] @@ -301,16 +303,35 @@ Instead of or in addition to the default view, further \emph{named views} can be [<name>]{<coo_x> <coo_y> <coo_z>}{<c2c_x> <c2c_y> <c2c_z>}{<roo>}{<roll>}{<aac>} \end{verbatim} The \verb+<name>+ entry is optional. If \verb+<name>+ is not given, a default name consisting of `View' followed by the number of the current entry in the list is formed. For \verb+<coo_x>+, \verb+<coo_y>+, \verb+<coo_z>+, \verb+<c2c_x>+, \verb+<c2c_y>+, \verb+<c2c_z>+, \verb+<roo>+, \verb+<roll>+ and \verb+<aac>+ the same rules as for the corresponding options `\verb+3Dcoo+', `\verb+3Dc2c+', `\verb+3Droo+', `\verb+3Droll+' and `\verb+3Daac+' apply. Empty braces, \verb+{}+, are possible and cause default values to be used. Trailing spaces or comment signs (\%) are allowed. Reading of the file stops either at its end, at the first empty line encountered or at the first line containing nothing but spaces and/or a comment sign followed by arbitrary stuff. See option `\verb+3Dgetview+' of \verb+\movieref+ on how to get the camera settings of the current view in the Reader, which can be used to populate a file of additional views. - \begin{verbatim} 3Dbg=<r> <g> <b> \end{verbatim} This option sets the background colour of the canvas. Only fixed point real numbers in the range from 0 to 1 are allowed for the colour components. - +\begin{verbatim} +3Dlights=<lighting scheme> +\end{verbatim} +Sets the default lighting scheme. The following values are honoured: `\verb+None+', `\verb+White+', `\verb+Day+', `\verb+Night+', `\verb+Hard+', `\verb+Primary+', `\verb+Blue+', `\verb+Red+', `\verb+Cube+', `\verb+CAD+', `\verb+HeadLamp+'. The default is to use the lighting scheme as specified within the 3D artwork. \begin{verbatim} 3Djscript=<JavaScript file> \end{verbatim} -Things like animation, lighting, background colour etc. may also be script driven. Option `\verb+3Djscript+' associates \verb+<JavaScript file>+ with the 3D object. The script will be executed upon activation of the object. Refer to the Acrobat 3D JavaScript Reference~\cite{jscript3D} for details. Directory `\verb+doc/javascript+' contains JavaScript example files for animation and rotation control. The files work off-the-shelf with any 3D file and may be concatenated to combine their effects. +Things like animation, lighting, background etc. may also be script driven. Option `\verb+3Djscript+' associates \verb+<JavaScript file>+ with the 3D object. The script will be executed upon activation of the object. Refer to the Acrobat 3D JavaScript Reference~\cite{jscript3D} for details. Directory `\verb+doc/javascript+' contains JavaScript example files for animation and rotation control. The files work off-the-shelf with any 3D file and may be concatenated to combine their effects. If animation is to be managed by JavaScript, option `\verb+repeat+' must be set to zero, i.\,e. `\verb+repeat=0+'. +\begin{verbatim} +3Dresource=<resource file 1>[, 3Dresource=<resource file 2> [, ...]] +\end{verbatim} +Embeds additional 3D or \emph{rasterized} image files that can be used as resources while rendering the 3D artwork. Possible file types are U3D, Postscript (\LaTeX{} + \verb+dvips+) and PDF/JPEG/PNG (pdf\LaTeX). Embedded resources must be loaded by the JavaScript method +\begin{verbatim} + Resource("pdf://<resource path>") +\end{verbatim} +where {\tt<resource path>} stands for the path to the resource file as specified by the `\verb+3Dresource+' option. The following JavaScript loads an image file that was attached by `\verb+3Dresource=images/sunset.jpg+' as the background. +\begin{verbatim} + sunset = new Image(new Resource("pdf://images/sunset.jpg")); + reh = new RenderEventHandler(); + reh.onEvent = function(event) { + runtime.removeEventHandler(this); + event.canvas.background.setImage(sunset); + } + runtime.addEventHandler(reh); +\end{verbatim} \subsection{Media hyperlinks}\label{hyperlinks} A movie, sound or 3D object may serve as the destination of hyperlinks, which are inserted into the document using the command @@ -349,12 +370,11 @@ close \end{verbatim} Immediately closes the media player. -\emph{In 3D context}, \verb+\movieref+ can be used to define an additional view of the object, to access a particular view from the list of predefined views or to run a JavaScript. Moreover, a link can be created for calculating the camera settings `\verb+3Droo+' and `\verb+3Dcoo+', instead of finding them manually. The following options are recognized: +\emph{In 3D context}, \verb+\movieref+ can be used to define an additional view of the object, to access a particular view from the list of predefined views or to run a JavaScript. Moreover, a link can be created for calculating optimal camera settings `\verb+3Droo+' and `\verb+3Dcoo+', instead of finding them manually. The following options are recognized: \begin{verbatim} 3Dviewindex=<index> \end{verbatim} Go to a predefined view of the 3D object. \verb+<index>+ can take `\verb+F+', `\verb+L+', `\verb+N+' or `\verb+P+' to access the first, last, next or previous element of the list of additional views, see option `\verb+3Dviews+' of {\tt \string\include\-movie}, or an integer specifying an index into the list. In the case of `\verb+N+' and `\verb+P+', repeated clicking onto the hyperlink allows to cycle through the list in forward or backward direction. `\verb+D+' gives access to the default view. - \begin{verbatim} 3Daac=<angle> 3Dc2c=<x> <y> <z> @@ -363,21 +383,18 @@ Go to a predefined view of the 3D object. \verb+<index>+ can take `\verb+F+', `\ 3Droo=<r> \end{verbatim} Instead of referencing an existing view of the 3D object, a new one can be defined using any of these options. See section~\ref{sec:3D}. - \begin{verbatim} 3Dcalculate[=<aac angle>] \end{verbatim} -Mainly used during document authoring. Creates a link for calculating `\verb+3Droo+' and `\verb+3Dcoo+' settings of the virtual camera, which may be used to define a default view. Clicking the link opens a dialogue box from which the settings can be copied to the clipboard for later insertion into the option list of \verb+\includemovie+. The default aperture angle of $30$\textdegree{} is used for the calculation unless an optional \verb+<aac angle>+ has been provided. - +Mainly used during document authoring. Creates a link for calculating optimal `\verb+3Droo+' and `\verb+3Dcoo+' settings of the virtual camera, which may be used to define a default view. Clicking the link opens a dialogue box from which the settings can be copied to the clipboard for later insertion into the option list of \verb+\includemovie+. The default aperture angle of $30$\textdegree{} is used for the calculation unless an optional \verb+<aac angle>+ has been provided. \begin{verbatim} 3Dgetview \end{verbatim} Mainly used during document authoring. Camera settings corresponding to the current view in the Reader are printed to a dialogue box. The output is readily formatted to be inserted into a file of predefined views. See option `\verb+3Dviews+'. - \begin{verbatim} 3Djscript=<JavaScript file> \end{verbatim} -Runs the script \verb+<JavaScript file>+ after clicking the link. Unlike the script that has been associated with the 3D annotation during object embedding, this JavaScript is not directly run by the JavaScript engine of the 3D plug-in, but is run by Acrobat's own scripting engine. However, full access to the API of the 3D script engine is provided through the `\verb+context3D+' property of the `\verb+Annot3D+' object. For convenience, an associative array `\verb+annot3D+' has been provided for use within \verb+<JavaScript file>+, in order to easily access the `\verb+Annot3D+' object of the annotation the enclosing link is pointing to. The particular element of the array is referenced by the annotation's label \verb+<label spec>+, enclosed in quotation marks. As an example, the `\verb+scene+' object can be referenced within \verb+<JavaScript file>+ by +Runs the script \verb+<JavaScript file>+ after clicking the link. Unlike the script that has been associated with the 3D annotation during object embedding, this JavaScript is not directly run by the JavaScript engine of the 3D plug-in, but is run by the Reader's own scripting engine. However, full access to the API of the 3D script engine is provided through the `\verb+context3D+' property of the `\verb+Annot3D+' object. For convenience, an associative array `\verb+annot3D+' has been provided for use within \verb+<JavaScript file>+, in order to easily access the `\verb+Annot3D+' object of the annotation the enclosing link is pointing to. The particular element of the array is referenced by the annotation's label \verb+<label spec>+, enclosed in quotation marks. As an example, the `\verb+scene+' object can be referenced within \verb+<JavaScript file>+ by \begin{verbatim} annot3D["<label spec>"].context3D.scene \end{verbatim} @@ -448,7 +465,7 @@ The duration of the media segment to be played. The trailing `\verb+s+' is manda \end{center} \end{minipage} -%\newpage +\newpage \item Another MPEG movie, loaded on the fly from \href{http://www.linux-video.net/Samples/}{\tt http://www.linux-video} \href{http://www.linux-video.net/Samples/}{\tt .net/Samples/}. Hence, a working Internet connection is required. This time, we force the QuickTime plug-in to be used instead of MediaPlayer (Windows boxes only). Well, the latter seems to be bugged. Quod erat expectandum. \begin{minipage}{0.5\linewidth} @@ -468,32 +485,35 @@ The duration of the media segment to be played. The trailing `\verb+s+' is manda \string\movieref[rate=0.5]\string{alien\string}\string{Slow\string}\\ \string\movieref\string{alien\string}\string{Normal\string}\\ \string\movieref[rate=2]\string{alien\string}\string{Fast\string}\\ - \string\movieref[pause]\string{alien\string}\string{Pause/Resume\string} + \string\movieref[pause]\string{alien\string}\string{Play/Pause\string} } \end{minipage}% \begin{minipage}{0.5\linewidth} \begin{center} - \includemovie[poster, label=alien, text=(AlienSong.mpg), url, playerid=AAPL_QuickTime, repeat]{\linewidth}{.75\linewidth}{http://www.linux-video.net/Samples/Mpeg1/AlienSong.mpg}\\ + \includemovie[poster, label=alien, text=(AlienSong.mpg), url, + playerid=AAPL_QuickTime, + repeat]{\linewidth}{.75\linewidth}{http://www.linux-video.net/Samples/Mpeg1/AlienSong.mpg}\\ \movieref[rate=0.5]{alien}{Slow}\hfill \movieref{alien}{Normal}\hfill \movieref[rate=2]{alien}{Fast}\hfill -\movieref[pause]{alien}{Pause/Resume}\vspace{19 ex} +\movieref[pause]{alien}{Play/Pause}\vspace{19 ex} \end{center} \end{minipage} %\newpage -\item\label{ex3d} Embedded U3D file. It is based on a VRML model by Peter Whitehouse, \href{http://www.wonko.info/vrml/index.htm}{\tt http://www.wonko.info/vrml/index.htm}. Conversion to U3D has been made with DeepExploration\textsuperscript{\scriptsize\textregistered}\cite{dexp}. The file `{\tt dice.vws}' provides predefined views to be selected from the 3D toolbar or by right click. The JavaScript `{\tt dice.js}' defines light sources and disables the annoying Gimbal rotation mode. +\item\label{ex3d} Embedded U3D file. It is based on a VRML model by Peter Whitehouse, \href{http://www.wonko.info/vrml/index.htm}{\tt http://www.wonko.info/vrml/index.htm}. Conversion to U3D has been made with DeepExploration\textsuperscript{\scriptsize\textregistered}\cite{dexp}. The file `{\tt dice.vws}' provides predefined views to be selected from the 3D toolbar or by right click. The JavaScript `{\tt turntable.js}' disables the annoying Gimbal rotation mode. -\begin{minipage}{0.5\linewidth} +\begin{minipage}[b]{0.5\linewidth} {\tt% \string\includemovie[\\ \phantom{xx}poster,\\ + \phantom{xx}toolbar,\\ \phantom{xx}label=dice,\\ \phantom{xx}text=(dice.u3d),\\ \phantom{xx}3Droo=27,\\ -% \phantom{xx}3Dc2c=1 -1 1,\\ + \phantom{xx}3Dlights=Cube,\\ \phantom{xx}3Dviews=dice.vws,\\ - \phantom{xx}3Djscript=dice.js\\ + \phantom{xx}3Djscript=turntable.js\\ ]\string{\\ \phantom{xx}.5\string\linewidth\\ \string}\string{\\ @@ -507,15 +527,17 @@ The duration of the media segment to be played. The trailing `\verb+s+' is manda ]\string{dice\string}\string{This link\string} \dots } \end{minipage}% -\begin{minipage}{0.5\linewidth} +\begin{minipage}[b]{0.5\linewidth} \begin{center} \includemovie[ poster, + toolbar, label=dice, text=(dice.u3d), 3Droo=27, + 3Dlights=Cube, 3Dviews=dice.vws, - 3Djscript=dice.js + 3Djscript=turntable.js ]{\linewidth}{\linewidth}{dice.u3d} \end{center} \movieref[3Dviewindex=N]{dice}{Click here} to cycle through the list of predefined views. \movieref[3Dcalculate=60]{dice}{This link} calculates 3D option settings for a 60\textdegree{} aperture angle of the virtual camera. @@ -523,6 +545,7 @@ The duration of the media segment to be played. The trailing `\verb+s+' is manda \end{enumerate} +%\newpage \appendix \section{3D quick-start guide}\hypertarget{sec:3Dtut}{} \begin{enumerate} @@ -540,7 +563,7 @@ The duration of the media segment to be played. The trailing `\verb+s+' is manda } \item Compile and recompile the document until no more `movie15' related warnings appear. - \item Open the PDF document with Adobe Reader and go to the page containing the 3D object. Click the link and wait for a dialogue box to pop up. + \item Open the PDF document in Adobe Reader and go to the page containing the 3D object. Click the link and wait for a dialogue box to pop up. \item Copy the settings ({\tt 3Droo=...}, {\tt 3Dcoo=...}) from the dialogue box into the option list of {\tt \string\include\-movie}. Remove the link from the document source: {\tt% @@ -567,7 +590,9 @@ The duration of the media segment to be played. The trailing `\verb+s+' is manda {\tt% \string\includemovie[\\ - \phantom{xx}..., 3Djscript=my\_script.js\\ + \phantom{xx}...,\\ + \phantom{xx}repeat=0, \% required if animation is controlled by\\ + \phantom{xx}3Djscript=my\_script.js\phantom{xxxxxxxxxxxxxxxx}\% JavaScript\\ ]\string{\\ \phantom{xx}.5\string\linewidth\\ \string}\string{\\ @@ -577,9 +602,9 @@ The duration of the media segment to be played. The trailing `\verb+s+' is manda \string} } - JavaScript is required if you want to make use of embedded animation. The example file `{\tt{}animation.js}' in the `{\tt{}doc/javascript}' directory may serve as a starting point. + JavaScript is \emph{not} required to make use of \emph{embedded} keyframe animation. Just click the `Play' button in the 3D toolbar of the 3D annotation. However, the example file `{\tt{}animation.js}' in the `{\tt{}doc/javascript}' directory provides additional controls (accessible via the context menu of the 3D annotation) that can be used to change the speed of a running animation. The `Up', `Down' and `Home' keys of the keyboard can also be used. - Another useful example file you should definitely experiment with is `{\tt{}turn\-table.js}'. It improves the rotational behaviour of the 3D object, because it prevents the object from tilting to the side while dragging the mouse. + Another useful example file you may want to experiment with is `{\tt{}turn\-table.js}'. It improves the rotational behaviour of the 3D object, because it prevents the object from tilting to the side while dragging the mouse. All files in `{\tt{}doc/javascript}' work off-the-shelf and can be copied into a single file in order to combine their effects. @@ -606,8 +631,6 @@ The duration of the media segment to be played. The trailing `\verb+s+' is manda Manipulate the 3D object in the Reader by means of the `Rotate', `Pan', `Zoom' and `Walk' tools as well as the `Zoom to Part' action (to be selected from the context menu items `Tools' and `Part Options'). A line, readily formatted for insertion into the views file, that contains the settings according to the current view can be copied from a dialogue box which pops up after clicking the link. \end{enumerate} - - \section{Media formats} \begin{table}[H] \caption{Media formats for use with Adobe Reader (partially from \cite{pdfspec})}\label{table:mime} @@ -634,11 +657,15 @@ wmv & video/x-ms-wmv & Windows Media Video\\\hline \end{table} \begin{thebibliography}{9} - \bibitem{pdfspec} Adobe Systems Inc.: \emph{PDF Reference, fifth edition: Adobe Portable Document Format version 1.6}, 2004, Implementation note 144, Appendix H.3, available at: \href{http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/pdf_creation_apis_and_specs/PDFReference.pdf}{\tt http://partners.adobe.com/public/developer/en/acrobat/sdk/} \href{http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/pdf_creation_apis_and_specs/PDFReference.pdf}{\tt pdf/pdf\_creation\_apis\_and\_specs/PDFReference.pdf}. + %http://www.adobe.com/devnet/pdf/pdf_reference.html + %http://www.adobe.com/devnet/acrobat/pdfs/js_3d_api_reference.pdf + %http://www.adobe.com/devnet/acrobat/pdfs/js_api_reference.pdf + \bibitem{pdfspec} Adobe Systems Inc.: \emph{PDF Reference, fifth edition: Adobe Portable Document Format version 1.6}, 2004, Implementation note 144, Appendix H.3, available at \href{http://www.adobe.com/devnet/pdf/pdf_reference.html}{\tt http://www.adobe.com/devnet/pdf/pdf\_reference.html} + %\href{http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/pdf_creation_apis_and_specs/PDFReference.pdf}{\tt pdf/pdf\_creation\_apis\_and\_specs/PDFReference.pdf}. \bibitem{3diforg} \href{http://www.3dif.org/}{\tt http://www.3dif.org/} \bibitem{dexp} \href{http://www.righthemisphere.com/products/dexp/}{\tt http://www.righthemisphere.com/products/dexp/} - \bibitem{jscript3D} Adobe Systems Inc.: \emph{Adobe Acrobat 7.0 3D JavaScript Reference}, 2005, available at \href{http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/javascript/Acro3DJS.pdf}{\tt http://partners.adobe.com/public/developer/en/ac} \href{http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/javascript/Acro3DJS.pdf}{\tt robat/sdk/pdf/javascript/Acro3DJS.pdf} - \bibitem{jscript} Adobe Systems Inc.: \emph{Adobe Acrobat 7.0.5 JavaScript Scripting Reference}, 2005, available at \href{http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/javascript/AcroJS.pdf}{\tt http://partners.adobe.com/public/developer/en/ac} \href{http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/javascript/AcroJS.pdf}{\tt robat/sdk/pdf/javascript/AcroJS.pdf} + \bibitem{jscript3D} Adobe Systems Inc.: \emph{JavaScript for Acrobat\textsuperscript{\scriptsize\textregistered} 3D Annotations API Ref\-er\-ence}, 2006, available at \href{http://www.adobe.com/devnet/acrobat/pdfs/js_3d_api_reference.pdf}{\tt http://www.adobe.com/devnet/acrobat/pdfs/} \href{http://www.adobe.com/devnet/acrobat/pdfs/js_3d_api_reference.pdf}{\tt js\_3d\_api\_reference.pdf} + \bibitem{jscript} Adobe Systems Inc.: \emph{JavaScript for Acrobat\textsuperscript{\scriptsize\textregistered} API Reference}, 2006, available at \href{http://www.adobe.com/devnet/acrobat/pdfs/js_api_reference.pdf}{\tt http://www.adobe.com/devnet/acrobat/pdfs/js\_api\_reference.pdf} \end{thebibliography} \end{document} diff --git a/Master/texmf-dist/doc/latex/movie15/overlay-example.pdf b/Master/texmf-dist/doc/latex/movie15/overlay-example.pdf Binary files differindex 8c7635481bd..f3d938d49f0 100644 --- a/Master/texmf-dist/doc/latex/movie15/overlay-example.pdf +++ b/Master/texmf-dist/doc/latex/movie15/overlay-example.pdf |