diff options
author | Norbert Preining <norbert@preining.info> | 2021-02-01 13:16:37 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2021-02-01 13:16:37 +0900 |
commit | fcb26569d342b66d6aa95df2cce506e9036a47e0 (patch) | |
tree | 414a122efef3ebbb2bfcd726e2b5863250137e1f /texmf-dist/tex/latex | |
parent | a979a969ee8a924408ebeb767035b9e4f48f7efa (diff) |
rmannot (2021-02-01)
Diffstat (limited to 'texmf-dist/tex/latex')
-rw-r--r-- | texmf-dist/tex/latex/rmannot/annot3d.def | 1395 | ||||
-rw-r--r-- | texmf-dist/tex/latex/rmannot/rmannot.cfg | 1 | ||||
-rw-r--r-- | texmf-dist/tex/latex/rmannot/rmannot.sty | 2166 |
3 files changed, 1851 insertions, 1711 deletions
diff --git a/texmf-dist/tex/latex/rmannot/annot3d.def b/texmf-dist/tex/latex/rmannot/annot3d.def index 403ac1e3..f880ff98 100644 --- a/texmf-dist/tex/latex/rmannot/annot3d.def +++ b/texmf-dist/tex/latex/rmannot/annot3d.def @@ -1,698 +1,697 @@ -%%
-%% This is file `annot3d.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% rmannot.dtx (with options: `copyright,3Dcode')
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% rmannot.sty package, %%
-%% Copyright (C) 2008--2016 D. P. Story %%
-%% dpstory@acrotex.net %%
-%% %%
-%% This program can redistributed and/or modified under %%
-%% the terms of the LaTeX Project Public License %%
-%% Distributed from CTAN archives in directory %%
-%% macros/latex/base/lppl.txt; either version 1 of the %%
-%% License, or (at your option) any later version. %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\define@key{rm3DOptsTopLevel}{3DOptions}{%
- \def\rmiiiDTLOpts{#1}%
- \setkeys{MXV@user}{#1}%
-}
-\define@key{rm3DOptsTopLevel}{3DResources}{%
- \def\rmiiiDOptsTLRes{#1}%
- \setkeys{rm3DOpts}{#1}%
-}
-\def\rma@ckFileForEmbed#1#2{%
- \edef\rma@fs@expand{rmFileStrm#1}%
- \@ifundefined{\rma@fs@expand}{%
- \rm@csarg\xdef{\rma@fs@expand}{%
- rmfstream\therm@Cnt-#2#1}\def\rma@embed{1}}%
- {\def\rma@embed{0}}%
- \edef\rm@irfstrm{\@nameuse{rmFileStrm#1}}%
-}
-\define@key{rm3DOpts}{none}{%
- \setkeys{rm3DOpts@no}{rName,#1}%
- \rma@edefexecute{\noexpand
- \filename@parse{\rma@useNamedPath{\rmiiiDOpts@no@rName}}}%
- \rma@ckFileForEmbed{\rmiiiDOpts@no@rName}{NONE}%
- \edef\rma@Instances{\rma@Instances
- \ps@mark{rmInstances\therm@Cnt} %
- {rmInstance\therm@Cnt_NONE\rmiiiDOpts@no@rName}%
- /APPEND pdfmark^^J%
- \ps@mark/_objdef{rmInstance\therm@Cnt_NONE%
- \rmiiiDOpts@no@rName}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmInstance\therm@Cnt_NONE\rmiiiDOpts@no@rName}<<%
- /Asset {rmfilespec\therm@Cnt-NONE\rmiiiDOpts@no@rName}%
- /Type/RichMediaInstance>>/PUT pdfmark^^J%
- \rm@appendFileSpecs{NONE\rmiiiDOpts@no@rName}%
- {\filename@area}{\filename@base.\filename@ext}%
- {\rma@embed}{\rm@irfstrm}{}%
- }%
- \edef\rma@appendToNameTree{\rma@appendToNameTree
- \rm@appendNameTree{NONE\rmiiiDOpts@no@rName}%
- {\filename@area}{\filename@base.\filename@ext}%
- {\rma@embed}{\rm@irfstrm}{}%
- }%
-}
-\define@key{rm3DOpts}{foreground}{%
- \setkeys{rm3DOpts@fg}{rName,flashvars,#1}%
- \rma@edefexecute{\noexpand
- \filename@parse{\rma@useNamedPath{\rmiiiDOpts@fg@rName}}}%
- \rma@ckFileForEmbed{\rmiiiDOpts@fg@rName}{FG}%
- \edef\rma@Instances{\rma@Instances
- \ps@mark{rmInstances\therm@Cnt} %
- {rmInstance\therm@Cnt_FG\rmiiiDOpts@fg@rName}%
- /APPEND pdfmark^^J%
- \ps@mark/_objdef{rmInstance\therm@Cnt_FG%
- \rmiiiDOpts@fg@rName}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmInstance\therm@Cnt_FG\rmiiiDOpts@fg@rName}<<%
- /Asset {rmfilespec\therm@Cnt-FG\rmiiiDOpts@fg@rName}%
- /Params <</Binding/Foreground%
- /FlashVars(\rmiiiDOpts@fg@flashvars)>>%
- /Type/RichMediaInstance%
- >>/PUT pdfmark^^J%
- \rm@appendFileSpecs{FG\rmiiiDOpts@fg@rName}{\filename@area}%
- {\filename@base.\filename@ext}{\rma@embed}%
- {\rm@irfstrm}{}%
- }%
- \edef\rma@appendToNameTree{\rma@appendToNameTree
- \rm@appendNameTree{FG\rmiiiDOpts@fg@rName}{\filename@area}%
- {\filename@base.\filename@ext}{\rma@embed}%
- {\rm@irfstrm}{}%
- }%
-}
-\define@key{rm3DOpts}{background}{%
- \setkeys{rm3DOpts@bg}{rName,flashvars,#1}%
- \rma@edefexecute{\noexpand
- \filename@parse{\rma@useNamedPath{\rmiiiDOpts@bg@rName}}}%
- \rma@ckFileForEmbed{\rmiiiDOpts@bg@rName}{BG}%
- \edef\rma@Instances{\rma@Instances
- \ps@mark{rmInstances\therm@Cnt} %
- {rmInstance\therm@Cnt_BG\rmiiiDOpts@bg@rName}%
- /APPEND pdfmark^^J%
- \ps@mark/_objdef{rmInstance\therm@Cnt_BG%
- \rmiiiDOpts@bg@rName}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmInstance\therm@Cnt_BG\rmiiiDOpts@bg@rName}<<%
- /Asset {rmfilespec\therm@Cnt-BG\rmiiiDOpts@bg@rName}%
- /Params <</Binding/Background%
- /FlashVars(\rmiiiDOpts@bg@flashvars)>>%
- /Type/RichMediaInstance%
- >>/PUT pdfmark^^J%
- \rm@appendFileSpecs{BG\rmiiiDOpts@bg@rName}{\filename@area}%
- {\filename@base.\filename@ext}{\rma@embed}%
- {\rm@irfstrm}{}%
- }%
- \edef\rma@appendToNameTree{\rma@appendToNameTree
- \rm@appendNameTree{BG\rmiiiDOpts@bg@rName}{\filename@area}%
- {\filename@base.\filename@ext}{\rma@embed}%
- {\rm@irfstrm}{}%
- }%
-}
-\define@key{rm3DOpts}{material}{%
- \setkeys{rm3DOpts@mat}{rName,mName,flashvars,#1}%
- \rma@edefexecute{\noexpand
- \filename@parse{\rma@useNamedPath{\rmiiiDOpts@mat@rName}}}%
- \rma@ckFileForEmbed{\rmiiiDOpts@mat@rName}{MAT}%
- \edef\rma@Instances{\rma@Instances
- \ps@mark{rmInstances\therm@Cnt} %
- {rmInstance\therm@Cnt_MAT\rmiiiDOpts@mat@rName}%
- /APPEND pdfmark^^J%
- \ps@mark/_objdef{rmInstance\therm@Cnt_MAT%
- \rmiiiDOpts@mat@rName}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmInstance\therm@Cnt_MAT\rmiiiDOpts@mat@rName}<<%
- /Asset {rmfilespec\therm@Cnt-MAT\rmiiiDOpts@mat@rName}%
- /Params <</Binding/Material%
- /BindingMaterialName(\rmiiiDOpts@mat@mName)%
- /FlashVars(\rmiiiDOpts@mat@flashvars)>>%
- /Type/RichMediaInstance%
- >>/PUT pdfmark^^J%
- \rm@appendFileSpecs{MAT\rmiiiDOpts@mat@rName}{\filename@area}%
- {\filename@base.\filename@ext}{\rma@embed}%
- {\rm@irfstrm}{}%
- }%
- \edef\rma@appendToNameTree{\rma@appendToNameTree
- \rm@appendNameTree{MAT\rmiiiDOpts@mat@rName}{\filename@area}%
- {\filename@base.\filename@ext}{\rma@embed}%
- {\rm@irfstrm}{}%
- }%
-}
-\define@key{rm3DOpts@no}{rName}[]{\def\rmiiiDOpts@no@rName{#1}}
-\define@key{rm3DOpts@fg}{rName}[]{\def\rmiiiDOpts@fg@rName{#1}}
-\define@key{rm3DOpts@fg}{flashvars}[]{\def\rmiiiDOpts@fg@flashvars{#1}}
-\define@key{rm3DOpts@bg}{rName}[]{\def\rmiiiDOpts@bg@rName{#1}}
-\define@key{rm3DOpts@bg}{flashvars}[]{\def\rmiiiDOpts@bg@flashvars{#1}}
-\define@key{rm3DOpts@mat}{rName}[]{\def\rmiiiDOpts@mat@rName{#1}}
-\define@key{rm3DOpts@mat}{mName}[]{\def\rmiiiDOpts@mat@mName{#1}}
-\define@key{rm3DOpts@mat}{flashvars}[]{%
- \def\rmiiiDOpts@mat@flashvars{#1}}
-\newread\@MXV@@viewsfile% file handle for views file
-\newboolean{@MXV@eof}%
-\newcount\@MXV@viewscount%counter for number of 3D views per inclusion
-\newboolean{@MXV@viewsprovided}%3d views file provided?
-\newboolean{@MXV@defaultviewprovided}%default 3D view provided?
-\newcount\@MXV@nodecount% number of node dicts
-\newcount\@MXV@cscount% number of cross section dicts
-\def\@MXV@aac{30}% aperture angle of camera
-\def\@MXV@roll{0}% camera roll angle
-\def\@MXV@defaultbg{1 1 1}%
-\def\@MXV@background{/BG<</CS/DeviceRGB/C[1 1 1]>>}%
-\def\@MXV@defaultlights{}%
-\def\@MXV@lights{}%
-\def\@MXV@defaultrender{Solid}%
-\def\@MXV@render{/RM <</Subtype/Solid>>}%
-\def\@MXV@naentry{}% %takes array of Node dicts
-\def\@MXV@saentry{}% %takes array of cross section dicts
-\let\@MXV@jscriptiiid\@empty
-\let\rma@rmAnnot@iiiDjs\@empty
-\let\@MXV@varray\@empty
-\let\additional@Instances\@empty
-\def\@MXV@defaultview{}
-\def\@MXV@coo{0 0 0}% centre of orbit
-\def\@MXV@ctoc{0 -1 0}% centre of orbit to camera vector
-\def\@MXV@roo{0}% radius of orbit
-\def\@MXV@viewsfileii{}%file of views of the 3D object (new format)
-\setboolean{@MXV@viewsprovided}{false}%
-\setboolean{@MXV@defaultviewprovided}{false}%
-\def\@MXV@iiidview{}%
-\def\@MXV@ciiwmatrix#1 #2 #3 #4 #5 #6 #7 #8 {%
- \FPupn\@MXV@viewx{#4 neg}%
- \FPupn\@MXV@viewy{#5 neg}%
- \FPupn\@MXV@viewz{#6 neg}%
- \FPupn\@MXV@modulo{\@MXV@viewx{} copy mul %
- \@MXV@viewy{} copy mul + %
- \@MXV@viewz{} copy mul + 2 swap root%
- }%
- \FPupn\@MXV@viewx{\@MXV@viewx{} \@MXV@modulo{} div}%
- \FPupn\@MXV@viewy{\@MXV@viewy{} \@MXV@modulo{} div}%
- \FPupn\@MXV@viewz{\@MXV@viewz{} \@MXV@modulo{} div}%
- \FPupn\@MXV@sinroll{#8 180.0 div \FPpi{} mul sin}%
- \FPupn\@MXV@cosroll{#8 180.0 div \FPpi{} mul cos}%
- \FPupn\@MXV@leftx{-1.0}%
- \FPupn\@MXV@lefty{0.0}%
- \FPupn\@MXV@leftz{0.0}%
- \FPifneg\@MXV@viewz% top view
- %up-vector
- \FPupn\@MXV@upx{0.0}%
- \FPupn\@MXV@upy{1.0}%
- \FPupn\@MXV@upz{0.0}%
- \else% bottom view
- %up-vector
- \FPupn\@MXV@upx{0.0}%
- \FPupn\@MXV@upy{-1.0}%
- \FPupn\@MXV@upz{0.0}%
- \fi%
- \FPupn\@MXV@sumxy{\@MXV@viewx{} abs \@MXV@viewy{} abs add}%
- \FPifeq\@MXV@sumxy{0}\else% other views than top and bottom
- %up-vector = up_world - (up_world dot view) view
- \FPupn\@MXV@upx{\@MXV@viewz{} \@MXV@viewx{} mul neg}%
- \FPupn\@MXV@upy{\@MXV@viewz{} \@MXV@viewy{} mul neg}%
- \FPupn\@MXV@upz{\@MXV@viewz{} \@MXV@viewz{} mul neg 1.0 add}%
- %normalize up-vector
- \FPupn\@MXV@modulo{\@MXV@upx{} copy mul \@MXV@upy{} copy %
- mul + \@MXV@upz{} copy mul + 2 swap root}%
- \FPupn\@MXV@upx{\@MXV@upx{} \@MXV@modulo{} div}%
- \FPupn\@MXV@upy{\@MXV@upy{} \@MXV@modulo{} div}%
- \FPupn\@MXV@upz{\@MXV@upz{} \@MXV@modulo{} div}%
- %left vector = up x view
- \FPupn\@MXV@leftx{\@MXV@viewz{} \@MXV@upy{} mul %
- \@MXV@viewy{} \@MXV@upz{} mul sub}%
- \FPupn\@MXV@lefty{\@MXV@viewx{} \@MXV@upz{} mul %
- \@MXV@viewz{} \@MXV@upx{} mul sub}%
- \FPupn\@MXV@leftz{\@MXV@viewy{} \@MXV@upx{} mul %
- \@MXV@viewx{} \@MXV@upy{} mul sub}%
- %normalize left vector
- \FPupn\@MXV@modulo{\@MXV@leftx{} copy mul \@MXV@lefty{} %
- copy mul + \@MXV@leftz{} copy mul + 2 swap root}%
- \FPupn\@MXV@leftx{\@MXV@leftx{} \@MXV@modulo{} div}%
- \FPupn\@MXV@lefty{\@MXV@lefty{} \@MXV@modulo{} div}%
- \FPupn\@MXV@leftz{\@MXV@leftz{} \@MXV@modulo{} div}%
- \fi%
- \FPupn\@MXV@leftxprime{\@MXV@leftx{} \@MXV@cosroll{} mul %
- \@MXV@upx{} \@MXV@sinroll{} mul +}%
- \FPupn\@MXV@leftyprime{\@MXV@lefty{} \@MXV@cosroll{} mul %
- \@MXV@upy{} \@MXV@sinroll{} mul +}%
- \FPupn\@MXV@leftzprime{\@MXV@leftz{} \@MXV@cosroll{} mul %
- \@MXV@upz{} \@MXV@sinroll{} mul +}%
- \FPupn\@MXV@upxprime{\@MXV@upx{} \@MXV@cosroll{} mul %
- \@MXV@leftx{} \@MXV@sinroll{} mul sub}%
- \FPupn\@MXV@upyprime{\@MXV@upy{} \@MXV@cosroll{} mul %
- \@MXV@lefty{} \@MXV@sinroll{} mul sub}%
- \FPupn\@MXV@upzprime{\@MXV@upz{} \@MXV@cosroll{} mul %
- \@MXV@leftz{} \@MXV@sinroll{} mul sub}%
- \FPupn\@MXV@leftx{\@MXV@leftxprime}%
- \FPupn\@MXV@lefty{\@MXV@leftyprime}%
- \FPupn\@MXV@leftz{\@MXV@leftzprime}%
- \FPupn\@MXV@upx{\@MXV@upxprime}%
- \FPupn\@MXV@upy{\@MXV@upyprime}%
- \FPupn\@MXV@upz{\@MXV@upzprime}%
- \FPupn\@MXV@roo{#7 abs}%
- \FPifeq\@MXV@roo{0}\FPupn\@MXV@roo{0.0000001}\fi%
- \FPupn\@MXV@transx{#1 \@MXV@roo{} \@MXV@viewx{} mul sub}%
- \FPupn\@MXV@transy{#2 \@MXV@roo{} \@MXV@viewy{} mul sub}%
- \FPupn\@MXV@transz{#3 \@MXV@roo{} \@MXV@viewz{} mul sub}%
- \xdef\@MXV@matrix{%
- \@MXV@leftx\space\@MXV@lefty\space\@MXV@leftz\space%
- \@MXV@upx\space\@MXV@upy\space\@MXV@upz\space%
- \@MXV@viewx\space\@MXV@viewy\space\@MXV@viewz}%
- \xdef\@MXV@matrix{%
- \@MXV@matrix\space\@MXV@transx\space%
- \@MXV@transy\space\@MXV@transz%
- }%
-}% end of \@MXV@ciiwmatrix
-\newcommand{\@MXV@parseline}[6][]{%
- \pdfstringdef\@MXV@xname{#1}% name of the view (optional)
- \ifthenelse{\equal{#2}{}}{%
- \xdef\@MXV@coo{0 0 0}%
- }{%
- \xdef\@MXV@coo{#2}%
- }%
- \ifthenelse{\equal{#3}{}}{%
- \xdef\@MXV@ctoc{0 -1 0}%
- }{%
- \xdef\@MXV@ctoc{#3}%
- }%
- \ifthenelse{\equal{#4}{}}{%
- \xdef\@MXV@roo{0}%
- }{%
- \xdef\@MXV@roo{#4}%
- }%
- \ifthenelse{\equal{#5}{}}{%
- \xdef\@MXV@roll{0}%
- }{%
- \xdef\@MXV@roll{#5}%
- }%
- \ifthenelse{\equal{#6}{}}{%
- \xdef\@MXV@aac{30}%
- }{%
- \xdef\@MXV@aac{#6}%
- }%
-}
-\define@key{MXV@view}{VIEW}[]{%
- \ifnum\@MXV@cursection<\z@\else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- A VIEW section cannot be nested into another section}{}%
- \fi%
- \def\@MXV@cursection{0}%
- \pdfstringdef\@MXV@xname{#1}% name of the view (optional)
- %default camera settings
- \gdef\@MXV@coo{0 0 0}%
- \gdef\@MXV@ctoc{0 -1 0}%
- \gdef\@MXV@roo{0}%
- \gdef\@MXV@roll{0}%
- \gdef\@MXV@aac{30}%
- %default background, lights, render mode
- \xdef\@MXV@background{/BG <</CS/DeviceRGB/C [\@MXV@defaultbg]>>}%
- \xdef\@MXV@lights{/LS <</Subtype/\@MXV@defaultlights>>}%
- \gdef\@MXV@render{/RM <</Subtype/\@MXV@defaultrender>>}%
- %initialise array of node dicts
- \gdef\@MXV@naarray{}%
- \global\@MXV@nodecount=\z@
- %initialise array of crosssection dicts
- \gdef\@MXV@saarray{}%
- \global\@MXV@cscount=\z@
-}
-\define@key{MXV@view}{COO}{%
- \ifnum\@MXV@cursection=\z@\else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- COO entry not allowed here; must go into a VIEW section}{}%
- \fi%
- \xdef\@MXV@coo{#1}%
-}
-\define@key{MXV@view}{C2C}{%
- \ifnum\@MXV@cursection=\z@\else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- C2C entry not allowed here; must go into a VIEW section}{}%
- \fi\xdef\@MXV@ctoc{#1}%
-}
-\define@key{MXV@view}{ROO}{%
- \ifnum\@MXV@cursection=\z@\else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- ROO entry not allowed here; must go into a VIEW section}{}%
- \fi\xdef\@MXV@roo{#1}%
-}
-\define@key{MXV@view}{AAC}{%
- \ifnum\@MXV@cursection=\z@\else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- AAC entry not allowed here; must go into a VIEW section}{}%
- \fi\xdef\@MXV@aac{#1}%
-}
-\define@key{MXV@view}{ROLL}{%
- \ifnum\@MXV@cursection=\z@\else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- ROLL entry not allowed here; must go into a VIEW section}{}%
- \fi\xdef\@MXV@roll{#1}%
-}
-\define@key{MXV@view}{BGCOLOR}{%
- \ifnum\@MXV@cursection=\z@\else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- BGCOLOR entry not allowed here; must go into a VIEW section}{}%
- \fi\def\@MXV@background{/BG<</CS/DeviceRGB/C[#1]>>}%
-}
-\define@key{MXV@view}{LIGHTS}{%
- \ifnum\@MXV@cursection=\z@\else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- LIGHTS entry not allowed here; must go into a VIEW section}{}%
- \fi\def\@MXV@lights{/LS <</Subtype/#1>>}%
-}
-\define@key{MXV@view}{RENDERMODE}{%
- \ifnum\@MXV@cursection=\z@
- \def\@MXV@render{/RM <</Subtype/#1>>}%
- \else%
- \ifnum\@MXV@cursection=\@ne
- \def\@MXV@nrender{/RM <</Subtype/#1>>}%
- \else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- RENDERMODE entry not allowed here; must go into %
- either a VIEW or a PART section}{}%
- \fi%
- \fi%
-}
-\define@key{MXV@view}{PART}[]{%
- \ifnum\@MXV@cursection=\z@\else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- PART not allowed here; must be a sub-section of %
- a VIEW section}{}%
- \fi%
- \ifthenelse{\equal{#1}{}}{%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- You must provide a valid PART name (PART=<part name>), as
- shown in the model tree of the 3D object %
- (go to `View'->`Navigation Panels'->`Model Tree' %
- in Adobe Reader)}{}%
- }{}%
- \def\@MXV@cursection{1}%
- \pdfstringdef\@MXV@partname{#1}% name of the part
- \gdef\@MXV@nopacity{}%
- \gdef\@MXV@nvisibility{}%
- \gdef\@MXV@nrender{}%
- \gdef\@MXV@ntransform{}%
-}
-\define@key{MXV@view}{CROSSSECT}[]{%
- \ifnum\@MXV@cursection=\z@\else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- CROSSSECT not allowed here; must be a sub-section of %
- a VIEW section}{}%
- \fi%
- \ifthenelse{\equal{#1}{}}{}{%
- \PackageWarning{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- CROSSECT does not take a value%
- }%
- }%
- \def\@MXV@cursection{2}%
- \gdef\@MXV@cscenter{0 0 0}%
- \gdef\@MXV@csorient{null 0 0}%
-}
-\define@key{MXV@view}{OPACITY}{%
- \ifnum\@MXV@cursection=\@ne\else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- OPACITY entry not allowed here; must go into a PART section}{}%
- \fi%
- \gdef\@MXV@nopacity{/O #1}%
-}
-\define@key{MXV@view}{VISIBLE}{%
- \ifnum\@MXV@cursection=\@ne\else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- VISIBLE entry not allowed here; must go into a PART section}{}%
- \fi%
- \gdef\@MXV@nvisibility{/V #1}%
-}
-\define@key{MXV@view}{MATRIX}{%
- \ifnum\@MXV@cursection=\@ne\else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- MATRIX entry not allowed here; must go into a PART section}{}%
- \fi%
- \gdef\@MXV@ntransform{/M [#1]}%
-}
-\define@key{MXV@view}{CENTER}{%
- \ifnum\@MXV@cursection=2\relax\else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: CENTER %
- entry not allowed here; must go into a CROSSECT section}{}%
- \fi%
- \gdef\@MXV@cscenter{#1}%
-}
-\define@key{MXV@view}{ORIENTATION}{%
- \ifnum\@MXV@cursection=2\relax\else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: ORIENT %
- entry not allowed here; must go into a CROSSECT section}{}%
- \fi%
- \gdef\@MXV@csorient{#1}%
-}
-\define@key{MXV@view}{END}[]{%
- \ifcase\@MXV@cursection%
- %END VIEW
- \edef\@MXV@args{%
- \@MXV@coo\space\@MXV@ctoc\space\@MXV@roo\space%
- \@MXV@roll\space}%
- \expandafter\@MXV@ciiwmatrix\@MXV@args% build C2W matrix
- \global\advance\@MXV@viewscount by \@ne%
- \ifthenelse{\equal{\@MXV@xname}{}}{% default view name
- \pdfstringdef\@MXV@xname{View \the\@MXV@viewscount}%
- }{}%
- \ifthenelse{\equal{\@MXV@naarray}{}}{}{%
- \gdef\@MXV@naentry{/NR true/NA [\@MXV@naarray]}%
- }%
- \ifthenelse{\equal{\@MXV@saarray}{}}{}{%
- \gdef\@MXV@saentry{/SA [\@MXV@saarray]}%
- }%
- \@MXV@viewobj% create pdf object of 3D view
- %append current view obj ref to VA array
- \xdef\@MXV@varray{\@MXV@varray\space\@MXV@@viewobj}%
- \global\@MXV@viewsprovidedtrue%
- \def\@MXV@cursection{-1}%
- \or%
- %END PART
- \global\advance\@MXV@nodecount by \@ne
- \@MXV@nodeobj% create pdf object of 3D node dict
- %append it to node array
- \xdef\@MXV@naarray{\@MXV@naarray\space\@MXV@@nodeobj}%
- \def\@MXV@cursection{0}%
- \or%
- %END CROSSSECT
- \global\advance\@MXV@cscount by \@ne
- \@MXV@csobj% create pdf object of 3D cross section dict
- %append it to cross section array
- \xdef\@MXV@saarray{\@MXV@saarray\space\@MXV@@csobj}%
- \def\@MXV@cursection{0}%
- \else%
- \PackageError{rmannot}{%
- File \@MXV@viewsfileii, line \the\@MXV@inputlineno: %
- There is nothing to be ENDed here}{}%
- \fi%
-}%
-\def\@MXV@procinputline#1{\setkeys{MXV@view}{#1}}
-\newcount\@MXV@inputlineno
-\def\@MXV@buildva{%
- \global\@MXV@viewscount=0%
- \xdef\@MXV@varray{}% empty varray
- \edef\@MXV@args{%
- \@MXV@coo\space\@MXV@ctoc\space\@MXV@roo\space%
- \@MXV@roll\space}%
- \expandafter\@MXV@ciiwmatrix\@MXV@args% build C2W matrix
- \pdfstringdef\@MXV@xname{Default}%
- \if@MXV@defaultviewprovided%
- \@MXV@viewobj% create pdf object of 3D view
- \edef\@MXV@defaultview{\@MXV@@viewobj}%
- \fi%
- \def\@MXV@cursection{-1}% views file is divided in sections
- \IfFileExists{\@MXV@viewsfileii}{%
- \begingroup%
- \endlinechar=-1% suppress trailing space at input line end
- \@MXV@inputlineno=\z@%
- \openin\@MXV@@viewsfile=\@MXV@viewsfileii%
- \read\@MXV@@viewsfile to \@MXV@inputline%
- \ifeof\@MXV@@viewsfile\setboolean{@MXV@eof}{true}\else%
- \setboolean{@MXV@eof}{false}\fi%
- \whiledo{\NOT\boolean{@MXV@eof}}{%
- \advance\@MXV@inputlineno by \@ne%
- %process input line
- \edef\@MXV@@inputline{{\@MXV@inputline}}%
- \expandafter\@MXV@procinputline\@MXV@@inputline%
- \read\@MXV@@viewsfile to \@MXV@inputline%
- \ifeof\@MXV@@viewsfile%
- \setboolean{@MXV@eof}{true}%
- \else%
- \setboolean{@MXV@eof}{false}%
- \fi%
- }%
- \closein\@MXV@@viewsfile%
- \endgroup%
- }{}%
- \ifthenelse{\NOT\boolean{@MXV@defaultviewprovided}%
- \AND\boolean{@MXV@viewsprovided}}{%
- \xdef\@MXV@defaultview{/F}%
- }{}%
- \ifthenelse{\NOT\boolean{@MXV@defaultviewprovided}%
- \AND\NOT\boolean{@MXV@viewsprovided}}{%
- \@MXV@viewobj% create pdf object of 3D view
- \edef\@MXV@defaultview{\@MXV@@viewobj}%
- }{}%
-}
-\def\@MXV@viewobj{\literalps@out{%
- %projection dict
- \ps@mark/_objdef {pdict\therm@Cnt_\the\@MXV@viewscount}%
- /type/dict/OBJ pdfmark^^J%
- \ps@mark{pdict\therm@Cnt_\the\@MXV@viewscount} <<%
- /Subtype/P/FOV \@MXV@aac/PS/Min>>/PUT pdfmark^^J%
- \ps@mark/_objdef {viewobj\therm@Cnt_\the\@MXV@viewscount}%
- /type/dict/OBJ pdfmark^^J%
- \ps@mark{viewobj\therm@Cnt_\the\@MXV@viewscount} <<%
- /MS/M%
- /CO \@MXV@roo%
- /P {pdict\therm@Cnt_\the\@MXV@viewscount}%
- /C2W[\@MXV@matrix]%
- /XN(\@MXV@xname)%
-/IN(\@MXV@xname)%
- \@MXV@background%
- \@MXV@lights%
- \@MXV@render%
- \@MXV@naentry%
- \@MXV@saentry%
- >>%
- /PUT pdfmark
- }%
- \xdef\@MXV@@viewobj{{viewobj\therm@Cnt_\the\@MXV@viewscount}}%
-}%
-\def\@MXV@nodeobj{\literalps@out{%
- \ps@mark/type/dict%
- /_objdef {nodeobj\therm@Cnt_\the\@MXV@viewscount_%
- \the\@MXV@nodecount}/OBJ pdfmark^^J%
- \ps@mark{nodeobj\therm@Cnt_\the\@MXV@viewscount_%
- \the\@MXV@nodecount}<<%
- /Type/3DNode%
- /N (\@MXV@partname)%
- \@MXV@nopacity\@MXV@nvisibility\@MXV@ntransform%
- \@MXV@nrender%
- >>/PUT pdfmark
- }%
- \xdef\@MXV@@nodeobj{%
- {nodeobj\therm@Cnt_\the\@MXV@viewscount_%
- \the\@MXV@nodecount}}%
-}%
-\def\@MXV@csobj{\literalps@out{%
- \ps@mark/type/dict%
- /_objdef {csobj\therm@Cnt_\the\@MXV@viewscount_%
- \the\@MXV@cscount}/OBJ pdfmark^^J%
- \ps@mark{csobj\therm@Cnt_\the\@MXV@viewscount_%
- \the\@MXV@cscount}<<%
- /Type/3DCrossSection%
- /C [\@MXV@cscenter]%
- /O [\@MXV@csorient]%
- >>/PUT pdfmark
- }%
- \xdef\@MXV@@csobj{%
- {csobj\therm@Cnt_\the\@MXV@viewscount_\the\@MXV@cscount}}%
-}%
-\define@key{MXV@user}{3Dbg}[1 1 1]{%
- \def\@MXV@defaultbg{#1}%
- \def\@MXV@background{/BG<</CS/DeviceRGB/C[#1]>>}%
-}
-\define@key{MXV@user}{3Djscript}{%
- \def\rma@rmAnnot@iiiDjs{#1}%
- \ifx\rma@rmAnnot@iiiDjs\@empty\let\rma@addResources\@empty
- \let\rma@addFileSpecs\@empty\else
- \rma@toks={}\def\rmiiid@addToScriptsArray{}%
- \@for\rma@arg:=\rma@rmAnnot@iiiDjs\do{%
- \rma@edefexecute{\noexpand
- \filename@parse{\rma@useNamedPath{\rma@arg}}}%
- \@ifundefined{filename@ext}{%
- \rma@PkEr@iii{\rma@useNamedPath{\rma@arg}}}{}%
- \edef\rmiiid@addToScriptsArray{\rmiiid@addToScriptsArray
- \ps@mark{jscriptiiid\therm@Cnt}%
- {rmfilespec\therm@Cnt-JS\rma@arg}%
- /APPEND pdfmark^^J%
- }%
- \edef\rma@fs@expand{rmFileStrm\rma@arg}%
- \@ifundefined{\rma@fs@expand}{%
- \rm@csarg\xdef{\rma@fs@expand}%
- {rmfstream\therm@Cnt-JS\rma@arg}%
- \def\rma@embed{1}}{\def\rma@embed{0}}%
- \edef\rma@tmp@exp{\the\rma@toks%
- \noexpand\\{JS\rma@arg}%
- {\filename@area}{\filename@base.\filename@ext}%
- {\rma@embed}{\csname\rma@fs@expand\endcsname}%
- {\rm@csarg\noexpand{rma@mt@\rma@arg}}}%
- \rma@toks=\expandafter{\rma@tmp@exp}%
- }%
- \let\\\rm@appendNameTree
- \expandafter\xdef\expandafter\rma@addResources%
- \expandafter{\the\rma@toks}%
- \let\\\rm@appendFileSpecs
- \expandafter\xdef\expandafter\rma@addFileSpecs%
- \expandafter{\the\rma@toks}%
- \fi
-}
-\define@key{MXV@user}{3Dcoo}{%
- \def\@MXV@coo{#1}%
- \setboolean{@MXV@defaultviewprovided}{true}%
-}
-\define@key{MXV@user}{3Dc2c}{%
- \def\@MXV@ctoc{#1}%
- \setboolean{@MXV@defaultviewprovided}{true}%
-}
-\define@key{MXV@user}{3Droo}{%
- \def\@MXV@roo{#1}%
- \setboolean{@MXV@defaultviewprovided}{true}%
-}
-\define@key{MXV@user}{3Daac}{%
- \def\@MXV@aac{#1}%
- \setboolean{@MXV@defaultviewprovided}{true}%
-}
-\define@key{MXV@user}{3Droll}{%
- \def\@MXV@roll{#1}%
- \setboolean{@MXV@defaultviewprovided}{true}%
-}
-\define@key{MXV@user}{3Dviews}{%
- \IfFileExists{#1}{%
- \def\@MXV@viewsfileii{#1}%
- }{%
- \PackageError{rmannot}{3D views file `#1' cannot be opened%
- }{%
- Make sure file `#1' exists and is readable!%
- }%
- }%
-}
-\define@choicekey+{MXV@user}{3Dlights}%
- {None,White,Day,Night,Hard,Primary,Blue,%
- Red,Cube,CAD,Headlamp}[Cube]{%
- \gdef\@MXV@defaultlights{#1}%
- \gdef\@MXV@lights{/LS <</Subtype/#1>>}%
-}{\PackageWarning{rmannot}{Bad choice for 3Dlights, permissible
- values are None, White, Day, Night, Hard, Primary, Blue,
- Red, Cube, CAD, HeadLamp. Try again}}
-\define@choicekey+{MXV@user}{3Drender}%
- {Solid,SolidWireframe,Transparent,TransparentWireframe,%
- BoundingBox,TransparentBoundingBox,TransparentBoundingBoxOutline,%
- Wireframe,ShadedWireframe,HiddenWireframe,Vertices,ShadedVertices,%
- SolidOutline,Illustration,ShadedIllustration}[Solid]{%
- \gdef\@MXV@defaultrender{#1}%
- \gdef\@MXV@render{/RM <</Subtype/#1>>}%
-}{\PackageWarning{rmannot}{Bad choice for 3Dlights, permissible
- values are Solid, SolidWireframe, Transparent, TransparentWireframe,
- BoundingBox, TransparentBoundingBox, TransparentBoundingBoxOutline,
- Wireframe, ShadedWireframe, HiddenWireframe, Vertices,
- ShadedVertices, SolidOutline, Illustration, ShadedIllustration.
- Try again}}
-\endinput
-%%
-%% End of file `annot3d.def'.
+%% +%% This is file `annot3d.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rmannot.dtx (with options: `copyright,3Dcode') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% rmannot.sty package, %% +%% Copyright (C) 2008--2020 D. P. Story %% +%% dpstory@acrotex.net %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either vers ion 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\define@key{rm3DOptsTopLevel}{3DOptions}{% + \def\rmiiiDTLOpts{#1}% + \setkeys{MXV@user}{#1}% +} +\define@key{rm3DOptsTopLevel}{3DResources}{% + \def\rmiiiDOptsTLRes{#1}% + \setkeys{rm3DOpts}{#1}% +} +\def\rma@ckFileForEmbed#1#2{% + \edef\rma@fs@expand{rmFileStrm#1}% + \@ifundefined{\rma@fs@expand}{% + \rm@csarg\xdef{\rma@fs@expand}{% + rmfstream\therm@Cnt-#2#1}\def\rma@embed{1}}% + {\def\rma@embed{0}}% + \edef\rm@irfstrm{\@nameuse{rmFileStrm#1}}% +} +\define@key{rm3DOpts}{none}{% + \setkeys{rm3DOpts@no}{rName,#1}% + \rma@edefexecute{\noexpand + \filename@parse{\rma@useNamedPath{\rmiiiDOpts@no@rName}}}% + \rma@ckFileForEmbed{\rmiiiDOpts@no@rName}{NONE}% + \edef\rma@Instances{\rma@Instances + \ps@mark{rmInstances\therm@Cnt} % + {rmInstance\therm@Cnt_NONE\rmiiiDOpts@no@rName}% + /APPEND pdfmark^^J% + \ps@mark/_objdef{rmInstance\therm@Cnt_NONE% + \rmiiiDOpts@no@rName}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmInstance\therm@Cnt_NONE\rmiiiDOpts@no@rName}<<% + /Asset {rmfilespec\therm@Cnt-NONE\rmiiiDOpts@no@rName}% + /Type/RichMediaInstance>>/PUT pdfmark^^J% + \rm@appendFileSpecs{NONE\rmiiiDOpts@no@rName}% + {\filename@area}{\filename@base.\filename@ext}% + {\rma@embed}{\rm@irfstrm}{}% + }% + \edef\rma@appendToNameTree{\rma@appendToNameTree + \rm@appendNameTree{NONE\rmiiiDOpts@no@rName}% + {\filename@area}{\filename@base.\filename@ext}% + {\rma@embed}{\rm@irfstrm}{}% + }% +} +\define@key{rm3DOpts}{foreground}{% + \setkeys{rm3DOpts@fg}{rName,flashvars,#1}% + \rma@edefexecute{\noexpand + \filename@parse{\rma@useNamedPath{\rmiiiDOpts@fg@rName}}}% + \rma@ckFileForEmbed{\rmiiiDOpts@fg@rName}{FG}% + \edef\rma@Instances{\rma@Instances + \ps@mark{rmInstances\therm@Cnt} % + {rmInstance\therm@Cnt_FG\rmiiiDOpts@fg@rName}% + /APPEND pdfmark^^J% + \ps@mark/_objdef{rmInstance\therm@Cnt_FG% + \rmiiiDOpts@fg@rName}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmInstance\therm@Cnt_FG\rmiiiDOpts@fg@rName}<<% + /Asset {rmfilespec\therm@Cnt-FG\rmiiiDOpts@fg@rName}% + /Params <</Binding/Foreground% + /FlashVars(\rmiiiDOpts@fg@flashvars)>>% + /Type/RichMediaInstance% + >>/PUT pdfmark^^J% + \rm@appendFileSpecs{FG\rmiiiDOpts@fg@rName}{\filename@area}% + {\filename@base.\filename@ext}{\rma@embed}% + {\rm@irfstrm}{}% + }% + \edef\rma@appendToNameTree{\rma@appendToNameTree + \rm@appendNameTree{FG\rmiiiDOpts@fg@rName}{\filename@area}% + {\filename@base.\filename@ext}{\rma@embed}% + {\rm@irfstrm}{}% + }% +} +\define@key{rm3DOpts}{background}{% + \setkeys{rm3DOpts@bg}{rName,flashvars,#1}% + \rma@edefexecute{\noexpand + \filename@parse{\rma@useNamedPath{\rmiiiDOpts@bg@rName}}}% + \rma@ckFileForEmbed{\rmiiiDOpts@bg@rName}{BG}% + \edef\rma@Instances{\rma@Instances + \ps@mark{rmInstances\therm@Cnt} % + {rmInstance\therm@Cnt_BG\rmiiiDOpts@bg@rName}% + /APPEND pdfmark^^J% + \ps@mark/_objdef{rmInstance\therm@Cnt_BG% + \rmiiiDOpts@bg@rName}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmInstance\therm@Cnt_BG\rmiiiDOpts@bg@rName}<<% + /Asset {rmfilespec\therm@Cnt-BG\rmiiiDOpts@bg@rName}% + /Params <</Binding/Background% + /FlashVars(\rmiiiDOpts@bg@flashvars)>>% + /Type/RichMediaInstance% + >>/PUT pdfmark^^J% + \rm@appendFileSpecs{BG\rmiiiDOpts@bg@rName}{\filename@area}% + {\filename@base.\filename@ext}{\rma@embed}% + {\rm@irfstrm}{}% + }% + \edef\rma@appendToNameTree{\rma@appendToNameTree + \rm@appendNameTree{BG\rmiiiDOpts@bg@rName}{\filename@area}% + {\filename@base.\filename@ext}{\rma@embed}% + {\rm@irfstrm}{}% + }% +} +\define@key{rm3DOpts}{material}{% + \setkeys{rm3DOpts@mat}{rName,mName,flashvars,#1}% + \rma@edefexecute{\noexpand + \filename@parse{\rma@useNamedPath{\rmiiiDOpts@mat@rName}}}% + \rma@ckFileForEmbed{\rmiiiDOpts@mat@rName}{MAT}% + \edef\rma@Instances{\rma@Instances + \ps@mark{rmInstances\therm@Cnt} % + {rmInstance\therm@Cnt_MAT\rmiiiDOpts@mat@rName}% + /APPEND pdfmark^^J% + \ps@mark/_objdef{rmInstance\therm@Cnt_MAT% + \rmiiiDOpts@mat@rName}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmInstance\therm@Cnt_MAT\rmiiiDOpts@mat@rName}<<% + /Asset {rmfilespec\therm@Cnt-MAT\rmiiiDOpts@mat@rName}% + /Params <</Binding/Material% + /BindingMaterialName(\rmiiiDOpts@mat@mName)% + /FlashVars(\rmiiiDOpts@mat@flashvars)>>% + /Type/RichMediaInstance% + >>/PUT pdfmark^^J% + \rm@appendFileSpecs{MAT\rmiiiDOpts@mat@rName}{\filename@area}% + {\filename@base.\filename@ext}{\rma@embed}% + {\rm@irfstrm}{}% + }% + \edef\rma@appendToNameTree{\rma@appendToNameTree + \rm@appendNameTree{MAT\rmiiiDOpts@mat@rName}{\filename@area}% + {\filename@base.\filename@ext}{\rma@embed}% + {\rm@irfstrm}{}% + }% +} +\define@key{rm3DOpts@no}{rName}[]{\def\rmiiiDOpts@no@rName{#1}} +\define@key{rm3DOpts@fg}{rName}[]{\def\rmiiiDOpts@fg@rName{#1}} +\define@key{rm3DOpts@fg}{flashvars}[]{\def\rmiiiDOpts@fg@flashvars{#1}} +\define@key{rm3DOpts@bg}{rName}[]{\def\rmiiiDOpts@bg@rName{#1}} +\define@key{rm3DOpts@bg}{flashvars}[]{\def\rmiiiDOpts@bg@flashvars{#1}} +\define@key{rm3DOpts@mat}{rName}[]{\def\rmiiiDOpts@mat@rName{#1}} +\define@key{rm3DOpts@mat}{mName}[]{\def\rmiiiDOpts@mat@mName{#1}} +\define@key{rm3DOpts@mat}{flashvars}[]{% + \def\rmiiiDOpts@mat@flashvars{#1}} +\newread\@MXV@@viewsfile% file handle for views file +\newboolean{@MXV@eof}% +\newcount\@MXV@viewscount%counter for number of 3D views per inclusion +\newboolean{@MXV@viewsprovided}%3d views file provided? +\newboolean{@MXV@defaultviewprovided}%default 3D view provided? +\newcount\@MXV@nodecount% number of node dicts +\newcount\@MXV@cscount% number of cross section dicts +\def\@MXV@aac{30}% aperture angle of camera +\def\@MXV@roll{0}% camera roll angle +\def\@MXV@defaultbg{1 1 1}% +\def\@MXV@background{/BG<</CS/DeviceRGB/C[1 1 1]>>}% +\def\@MXV@defaultlights{}% +\def\@MXV@lights{}% +\def\@MXV@defaultrender{Solid}% +\def\@MXV@render{/RM <</Subtype/Solid>>}% +\def\@MXV@naentry{}% %takes array of Node dicts +\def\@MXV@saentry{}% %takes array of cross section dicts +\let\@MXV@jscriptiiid\@empty +\let\rma@rmAnnot@iiiDjs\@empty +\let\@MXV@varray\@empty +\let\additional@Instances\@empty +\def\@MXV@defaultview{} +\def\@MXV@coo{0 0 0}% centre of orbit +\def\@MXV@ctoc{0 -1 0}% centre of orbit to camera vector +\def\@MXV@roo{0}% radius of orbit +\def\@MXV@viewsfileii{}%file of views of the 3D object (new format) +\setboolean{@MXV@viewsprovided}{false}% +\setboolean{@MXV@defaultviewprovided}{false}% +\def\@MXV@iiidview{}% +\def\@MXV@ciiwmatrix#1 #2 #3 #4 #5 #6 #7 #8 {% + \FPupn\@MXV@viewx{#4 neg}% + \FPupn\@MXV@viewy{#5 neg}% + \FPupn\@MXV@viewz{#6 neg}% + \FPupn\@MXV@modulo{\@MXV@viewx{} copy mul % + \@MXV@viewy{} copy mul + % + \@MXV@viewz{} copy mul + 2 swap root% + }% + \FPupn\@MXV@viewx{\@MXV@viewx{} \@MXV@modulo{} div}% + \FPupn\@MXV@viewy{\@MXV@viewy{} \@MXV@modulo{} div}% + \FPupn\@MXV@viewz{\@MXV@viewz{} \@MXV@modulo{} div}% + \FPupn\@MXV@sinroll{#8 180.0 div \FPpi{} mul sin}% + \FPupn\@MXV@cosroll{#8 180.0 div \FPpi{} mul cos}% + \FPupn\@MXV@leftx{-1.0}% + \FPupn\@MXV@lefty{0.0}% + \FPupn\@MXV@leftz{0.0}% + \FPifneg\@MXV@viewz% top view + %up-vector + \FPupn\@MXV@upx{0.0}% + \FPupn\@MXV@upy{1.0}% + \FPupn\@MXV@upz{0.0}% + \else% bottom view + %up-vector + \FPupn\@MXV@upx{0.0}% + \FPupn\@MXV@upy{-1.0}% + \FPupn\@MXV@upz{0.0}% + \fi% + \FPupn\@MXV@sumxy{\@MXV@viewx{} abs \@MXV@viewy{} abs add}% + \FPifeq\@MXV@sumxy{0}\else% other views than top and bottom + %up-vector = up_world - (up_world dot view) view + \FPupn\@MXV@upx{\@MXV@viewz{} \@MXV@viewx{} mul neg}% + \FPupn\@MXV@upy{\@MXV@viewz{} \@MXV@viewy{} mul neg}% + \FPupn\@MXV@upz{\@MXV@viewz{} \@MXV@viewz{} mul neg 1.0 add}% + %normalize up-vector + \FPupn\@MXV@modulo{\@MXV@upx{} copy mul \@MXV@upy{} copy % + mul + \@MXV@upz{} copy mul + 2 swap root}% + \FPupn\@MXV@upx{\@MXV@upx{} \@MXV@modulo{} div}% + \FPupn\@MXV@upy{\@MXV@upy{} \@MXV@modulo{} div}% + \FPupn\@MXV@upz{\@MXV@upz{} \@MXV@modulo{} div}% + %left vector = up x view + \FPupn\@MXV@leftx{\@MXV@viewz{} \@MXV@upy{} mul % + \@MXV@viewy{} \@MXV@upz{} mul sub}% + \FPupn\@MXV@lefty{\@MXV@viewx{} \@MXV@upz{} mul % + \@MXV@viewz{} \@MXV@upx{} mul sub}% + \FPupn\@MXV@leftz{\@MXV@viewy{} \@MXV@upx{} mul % + \@MXV@viewx{} \@MXV@upy{} mul sub}% + %normalize left vector + \FPupn\@MXV@modulo{\@MXV@leftx{} copy mul \@MXV@lefty{} % + copy mul + \@MXV@leftz{} copy mul + 2 swap root}% + \FPupn\@MXV@leftx{\@MXV@leftx{} \@MXV@modulo{} div}% + \FPupn\@MXV@lefty{\@MXV@lefty{} \@MXV@modulo{} div}% + \FPupn\@MXV@leftz{\@MXV@leftz{} \@MXV@modulo{} div}% + \fi% + \FPupn\@MXV@leftxprime{\@MXV@leftx{} \@MXV@cosroll{} mul % + \@MXV@upx{} \@MXV@sinroll{} mul +}% + \FPupn\@MXV@leftyprime{\@MXV@lefty{} \@MXV@cosroll{} mul % + \@MXV@upy{} \@MXV@sinroll{} mul +}% + \FPupn\@MXV@leftzprime{\@MXV@leftz{} \@MXV@cosroll{} mul % + \@MXV@upz{} \@MXV@sinroll{} mul +}% + \FPupn\@MXV@upxprime{\@MXV@upx{} \@MXV@cosroll{} mul % + \@MXV@leftx{} \@MXV@sinroll{} mul sub}% + \FPupn\@MXV@upyprime{\@MXV@upy{} \@MXV@cosroll{} mul % + \@MXV@lefty{} \@MXV@sinroll{} mul sub}% + \FPupn\@MXV@upzprime{\@MXV@upz{} \@MXV@cosroll{} mul % + \@MXV@leftz{} \@MXV@sinroll{} mul sub}% + \FPupn\@MXV@leftx{\@MXV@leftxprime}% + \FPupn\@MXV@lefty{\@MXV@leftyprime}% + \FPupn\@MXV@leftz{\@MXV@leftzprime}% + \FPupn\@MXV@upx{\@MXV@upxprime}% + \FPupn\@MXV@upy{\@MXV@upyprime}% + \FPupn\@MXV@upz{\@MXV@upzprime}% + \FPupn\@MXV@roo{#7 abs}% + \FPifeq\@MXV@roo{0}\FPupn\@MXV@roo{0.0000001}\fi% + \FPupn\@MXV@transx{#1 \@MXV@roo{} \@MXV@viewx{} mul sub}% + \FPupn\@MXV@transy{#2 \@MXV@roo{} \@MXV@viewy{} mul sub}% + \FPupn\@MXV@transz{#3 \@MXV@roo{} \@MXV@viewz{} mul sub}% + \xdef\@MXV@matrix{% + \@MXV@leftx\space\@MXV@lefty\space\@MXV@leftz\space% + \@MXV@upx\space\@MXV@upy\space\@MXV@upz\space% + \@MXV@viewx\space\@MXV@viewy\space\@MXV@viewz}% + \xdef\@MXV@matrix{% + \@MXV@matrix\space\@MXV@transx\space% + \@MXV@transy\space\@MXV@transz% + }% +}% end of \@MXV@ciiwmatrix +\newcommand{\@MXV@parseline}[6][]{% + \pdfstringdef\@MXV@xname{#1}% name of the view (optional) + \ifthenelse{\equal{#2}{}}{% + \xdef\@MXV@coo{0 0 0}% + }{% + \xdef\@MXV@coo{#2}% + }% + \ifthenelse{\equal{#3}{}}{% + \xdef\@MXV@ctoc{0 -1 0}% + }{% + \xdef\@MXV@ctoc{#3}% + }% + \ifthenelse{\equal{#4}{}}{% + \xdef\@MXV@roo{0}% + }{% + \xdef\@MXV@roo{#4}% + }% + \ifthenelse{\equal{#5}{}}{% + \xdef\@MXV@roll{0}% + }{% + \xdef\@MXV@roll{#5}% + }% + \ifthenelse{\equal{#6}{}}{% + \xdef\@MXV@aac{30}% + }{% + \xdef\@MXV@aac{#6}% + }% +} +\define@key{MXV@view}{VIEW}[]{% + \ifnum\@MXV@cursection<\z@\else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + A VIEW section cannot be nested into another section}{}% + \fi% + \def\@MXV@cursection{0}% + \pdfstringdef\@MXV@xname{#1}% name of the view (optional) + %default camera settings + \gdef\@MXV@coo{0 0 0}% + \gdef\@MXV@ctoc{0 -1 0}% + \gdef\@MXV@roo{0}% + \gdef\@MXV@roll{0}% + \gdef\@MXV@aac{30}% + %default background, lights, render mode + \xdef\@MXV@background{/BG <</CS/DeviceRGB/C [\@MXV@defaultbg]>>}% + \xdef\@MXV@lights{/LS <</Subtype/\@MXV@defaultlights>>}% + \gdef\@MXV@render{/RM <</Subtype/\@MXV@defaultrender>>}% + %initialise array of node dicts + \gdef\@MXV@naarray{}% + \global\@MXV@nodecount=\z@ + %initialise array of crosssection dicts + \gdef\@MXV@saarray{}% + \global\@MXV@cscount=\z@ +} +\define@key{MXV@view}{COO}{% + \ifnum\@MXV@cursection=\z@\else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + COO entry not allowed here; must go into a VIEW section}{}% + \fi% + \xdef\@MXV@coo{#1}% +} +\define@key{MXV@view}{C2C}{% + \ifnum\@MXV@cursection=\z@\else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + C2C entry not allowed here; must go into a VIEW section}{}% + \fi\xdef\@MXV@ctoc{#1}% +} +\define@key{MXV@view}{ROO}{% + \ifnum\@MXV@cursection=\z@\else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + ROO entry not allowed here; must go into a VIEW section}{}% + \fi\xdef\@MXV@roo{#1}% +} +\define@key{MXV@view}{AAC}{% + \ifnum\@MXV@cursection=\z@\else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + AAC entry not allowed here; must go into a VIEW section}{}% + \fi\xdef\@MXV@aac{#1}% +} +\define@key{MXV@view}{ROLL}{% + \ifnum\@MXV@cursection=\z@\else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + ROLL entry not allowed here; must go into a VIEW section}{}% + \fi\xdef\@MXV@roll{#1}% +} +\define@key{MXV@view}{BGCOLOR}{% + \ifnum\@MXV@cursection=\z@\else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + BGCOLOR entry not allowed here; must go into a VIEW section}{}% + \fi\def\@MXV@background{/BG<</CS/DeviceRGB/C[#1]>>}% +} +\define@key{MXV@view}{LIGHTS}{% + \ifnum\@MXV@cursection=\z@\else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + LIGHTS entry not allowed here; must go into a VIEW section}{}% + \fi\def\@MXV@lights{/LS <</Subtype/#1>>}% +} +\define@key{MXV@view}{RENDERMODE}{% + \ifnum\@MXV@cursection=\z@ + \def\@MXV@render{/RM <</Subtype/#1>>}% + \else% + \ifnum\@MXV@cursection=\@ne + \def\@MXV@nrender{/RM <</Subtype/#1>>}% + \else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + RENDERMODE entry not allowed here; must go into % + either a VIEW or a PART section}{}% + \fi% + \fi% +} +\define@key{MXV@view}{PART}[]{% + \ifnum\@MXV@cursection=\z@\else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + PART not allowed here; must be a sub-section of % + a VIEW section}{}% + \fi% + \ifthenelse{\equal{#1}{}}{% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + You must provide a valid PART name (PART=<part name>), as + shown in the model tree of the 3D object % + (go to `View'->`Navigation Panels'->`Model Tree' % + in Adobe Reader)}{}% + }{}% + \def\@MXV@cursection{1}% + \pdfstringdef\@MXV@partname{#1}% name of the part + \gdef\@MXV@nopacity{}% + \gdef\@MXV@nvisibility{}% + \gdef\@MXV@nrender{}% + \gdef\@MXV@ntransform{}% +} +\define@key{MXV@view}{CROSSSECT}[]{% + \ifnum\@MXV@cursection=\z@\else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + CROSSSECT not allowed here; must be a sub-section of % + a VIEW section}{}% + \fi% + \ifthenelse{\equal{#1}{}}{}{% + \PackageWarning{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + CROSSECT does not take a value% + }% + }% + \def\@MXV@cursection{2}% + \gdef\@MXV@cscenter{0 0 0}% + \gdef\@MXV@csorient{null 0 0}% +} +\define@key{MXV@view}{OPACITY}{% + \ifnum\@MXV@cursection=\@ne\else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + OPACITY entry not allowed here; must go into a PART section}{}% + \fi% + \gdef\@MXV@nopacity{/O #1}% +} +\define@key{MXV@view}{VISIBLE}{% + \ifnum\@MXV@cursection=\@ne\else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + VISIBLE entry not allowed here; must go into a PART section}{}% + \fi% + \gdef\@MXV@nvisibility{/V #1}% +} +\define@key{MXV@view}{MATRIX}{% + \ifnum\@MXV@cursection=\@ne\else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + MATRIX entry not allowed here; must go into a PART section}{}% + \fi% + \gdef\@MXV@ntransform{/M [#1]}% +} +\define@key{MXV@view}{CENTER}{% + \ifnum\@MXV@cursection=2\relax\else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: CENTER % + entry not allowed here; must go into a CROSSECT section}{}% + \fi% + \gdef\@MXV@cscenter{#1}% +} +\define@key{MXV@view}{ORIENTATION}{% + \ifnum\@MXV@cursection=2\relax\else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: ORIENT % + entry not allowed here; must go into a CROSSECT section}{}% + \fi% + \gdef\@MXV@csorient{#1}% +} +\define@key{MXV@view}{END}[]{% + \ifcase\@MXV@cursection% + %END VIEW + \edef\@MXV@args{% + \@MXV@coo\space\@MXV@ctoc\space\@MXV@roo\space% + \@MXV@roll\space}% + \expandafter\@MXV@ciiwmatrix\@MXV@args% build C2W matrix + \global\advance\@MXV@viewscount by \@ne% + \ifthenelse{\equal{\@MXV@xname}{}}{% default view name + \pdfstringdef\@MXV@xname{View \the\@MXV@viewscount}% + }{}% + \ifthenelse{\equal{\@MXV@naarray}{}}{}{% + \gdef\@MXV@naentry{/NR true/NA [\@MXV@naarray]}% + }% + \ifthenelse{\equal{\@MXV@saarray}{}}{}{% + \gdef\@MXV@saentry{/SA [\@MXV@saarray]}% + }% + \@MXV@viewobj% create pdf object of 3D view + %append current view obj ref to VA array + \xdef\@MXV@varray{\@MXV@varray\space\@MXV@@viewobj}% + \global\@MXV@viewsprovidedtrue% + \def\@MXV@cursection{-1}% + \or% + %END PART + \global\advance\@MXV@nodecount by \@ne + \@MXV@nodeobj% create pdf object of 3D node dict + %append it to node array + \xdef\@MXV@naarray{\@MXV@naarray\space\@MXV@@nodeobj}% + \def\@MXV@cursection{0}% + \or% + %END CROSSSECT + \global\advance\@MXV@cscount by \@ne + \@MXV@csobj% create pdf object of 3D cross section dict + %append it to cross section array + \xdef\@MXV@saarray{\@MXV@saarray\space\@MXV@@csobj}% + \def\@MXV@cursection{0}% + \else% + \PackageError{rmannot}{% + File \@MXV@viewsfileii, line \the\@MXV@inputlineno: % + There is nothing to be ENDed here}{}% + \fi% +}% +\def\@MXV@procinputline#1{\setkeys{MXV@view}{#1}} +\newcount\@MXV@inputlineno +\def\@MXV@buildva{% + \global\@MXV@viewscount=0\relax% dps + \xdef\@MXV@varray{}% empty varray + \edef\@MXV@args{% + \@MXV@coo\space\@MXV@ctoc\space\@MXV@roo\space% + \@MXV@roll\space}% + \expandafter\@MXV@ciiwmatrix\@MXV@args% build C2W matrix + \pdfstringdef\@MXV@xname{Default}% + \if@MXV@defaultviewprovided% + \@MXV@viewobj% create pdf object of 3D view + \edef\@MXV@defaultview{\@MXV@@viewobj}% + \fi% + \def\@MXV@cursection{-1}% views file is divided in sections + \IfFileExists{\@MXV@viewsfileii}{% + \begingroup% + \endlinechar=-1% suppress trailing space at input line end + \@MXV@inputlineno=\z@% + \openin\@MXV@@viewsfile=\@MXV@viewsfileii% + \read\@MXV@@viewsfile to \@MXV@inputline% + \ifeof\@MXV@@viewsfile\setboolean{@MXV@eof}{true}\else% + \setboolean{@MXV@eof}{false}\fi% + \whiledo{\not\boolean{@MXV@eof}}{% + \advance\@MXV@inputlineno by \@ne% + %process input line + \edef\@MXV@@inputline{{\@MXV@inputline}}% + \expandafter\@MXV@procinputline\@MXV@@inputline% + \read\@MXV@@viewsfile to \@MXV@inputline% + \ifeof\@MXV@@viewsfile% + \setboolean{@MXV@eof}{true}% + \else% + \setboolean{@MXV@eof}{false}% + \fi% + }% + \closein\@MXV@@viewsfile% + \endgroup% + }{}% + \ifthenelse{\not\boolean{@MXV@defaultviewprovided}% + \and\boolean{@MXV@viewsprovided}}{% + \xdef\@MXV@defaultview{/F}% + }{}% + \ifthenelse{\not\boolean{@MXV@defaultviewprovided}% + \and\not\boolean{@MXV@viewsprovided}}{% + \@MXV@viewobj% create pdf object of 3D view + \edef\@MXV@defaultview{\@MXV@@viewobj}% + }{}% +} +\def\@MXV@viewobj{\literalps@out{% + \ps@mark/_objdef {pdict\therm@Cnt_\the\@MXV@viewscount}% + /type/dict/OBJ pdfmark^^J% + \ps@mark{pdict\therm@Cnt_\the\@MXV@viewscount} <<% + /Subtype/P/FOV \@MXV@aac/PS/Min>>/PUT pdfmark^^J% + \ps@mark/_objdef {viewobj\therm@Cnt_\the\@MXV@viewscount}% + /type/dict/OBJ pdfmark^^J% + \ps@mark{viewobj\therm@Cnt_\the\@MXV@viewscount} <<% + /MS/M% + /CO \@MXV@roo% + /P {pdict\therm@Cnt_\the\@MXV@viewscount}% + /C2W[\@MXV@matrix]% + /XN(\@MXV@xname)% + /IN(\@MXV@xname)% + \@MXV@background% + \@MXV@lights% + \@MXV@render% + \@MXV@naentry% + \@MXV@saentry% + >>% + /PUT pdfmark +}% +\xdef\@MXV@@viewobj{{viewobj\therm@Cnt_\the\@MXV@viewscount}}% +}% +\def\@MXV@nodeobj{\literalps@out{% + \ps@mark/type/dict% + /_objdef {nodeobj\therm@Cnt_\the\@MXV@viewscount_% + \the\@MXV@nodecount}/OBJ pdfmark^^J% + \ps@mark{nodeobj\therm@Cnt_\the\@MXV@viewscount_% + \the\@MXV@nodecount}<<% + /Type/3DNode% + /N (\@MXV@partname)% + \@MXV@nopacity\@MXV@nvisibility\@MXV@ntransform% + \@MXV@nrender% + >>/PUT pdfmark +}% +\xdef\@MXV@@nodeobj{% + {nodeobj\therm@Cnt_\the\@MXV@viewscount_% + \the\@MXV@nodecount}}% +}% +\def\@MXV@csobj{\literalps@out{% + \ps@mark/type/dict% + /_objdef {csobj\therm@Cnt_\the\@MXV@viewscount_% + \the\@MXV@cscount}/OBJ pdfmark^^J% + \ps@mark{csobj\therm@Cnt_\the\@MXV@viewscount_% + \the\@MXV@cscount}<<% + /Type/3DCrossSection% + /C [\@MXV@cscenter]% + /O [\@MXV@csorient]% + >>/PUT pdfmark + }% + \xdef\@MXV@@csobj{% + {csobj\therm@Cnt_\the\@MXV@viewscount_\the\@MXV@cscount}}% +}% +\define@key{MXV@user}{3Dbg}[1 1 1]{% + \def\@MXV@defaultbg{#1}% + \def\@MXV@background{/BG<</CS/DeviceRGB/C[#1]>>}% +} +\define@key{MXV@user}{3Djscript}{% + \def\rma@rmAnnot@iiiDjs{#1}% + \ifx\rma@rmAnnot@iiiDjs\@empty\let\rma@addResources\@empty + \let\rma@addFileSpecs\@empty\else + \rma@toks={}\def\rmiiid@addToScriptsArray{}% + \@for\rma@arg:=\rma@rmAnnot@iiiDjs\do{% + \rma@edefexecute{\noexpand + \filename@parse{\rma@useNamedPath{\rma@arg}}}% + \@ifundefined{filename@ext}{% + \rma@PkEr@iii{\rma@useNamedPath{\rma@arg}}}{}% + \edef\rmiiid@addToScriptsArray{\rmiiid@addToScriptsArray + \ps@mark{jscriptiiid\therm@Cnt}% + {rmfilespec\therm@Cnt-JS\rma@arg}% + /APPEND pdfmark^^J% + }% + \edef\rma@fs@expand{rmFileStrm\rma@arg}% + \@ifundefined{\rma@fs@expand}{% + \rm@csarg\xdef{\rma@fs@expand}% + {rmfstream\therm@Cnt-JS\rma@arg}% + \def\rma@embed{1}}{\def\rma@embed{0}}% + \edef\rma@tmp@exp{\the\rma@toks% + \noexpand\\{JS\rma@arg}% + {\filename@area}{\filename@base.\filename@ext}% + {\rma@embed}{\csname\rma@fs@expand\endcsname}% + {\rm@csarg\noexpand{rma@mt@\rma@arg}}}% + \rma@toks=\expandafter{\rma@tmp@exp}% + }% do + \let\\\rm@appendNameTree + \expandafter\xdef\expandafter\rma@addResources% + \expandafter{\the\rma@toks}% + \let\\\rm@appendFileSpecs + \expandafter\xdef\expandafter\rma@addFileSpecs% + \expandafter{\the\rma@toks}% + \fi +} +\define@key{MXV@user}{3Dcoo}{% + \def\@MXV@coo{#1}% + \setboolean{@MXV@defaultviewprovided}{true}% +} +\define@key{MXV@user}{3Dc2c}{% + \def\@MXV@ctoc{#1}% + \setboolean{@MXV@defaultviewprovided}{true}% +} +\define@key{MXV@user}{3Droo}{% + \def\@MXV@roo{#1}% + \setboolean{@MXV@defaultviewprovided}{true}% +} +\define@key{MXV@user}{3Daac}{% + \def\@MXV@aac{#1}% + \setboolean{@MXV@defaultviewprovided}{true}% +} +\define@key{MXV@user}{3Droll}{% + \def\@MXV@roll{#1}% + \setboolean{@MXV@defaultviewprovided}{true}% +} +\define@key{MXV@user}{3Dviews}{% + \IfFileExists{#1}{% + \def\@MXV@viewsfileii{#1}% + }{% + \PackageError{rmannot}{3D views file `#1' cannot be opened% + }{% + Make sure file `#1' exists and is readable!% + }% + }% +} +\define@choicekey+{MXV@user}{3Dlights}% + {None,White,Day,Night,Hard,Primary,Blue,% + Red,Cube,CAD,Headlamp}[Cube]{% + \gdef\@MXV@defaultlights{#1}% + \gdef\@MXV@lights{/LS <</Subtype/#1>>}% +}{\PackageWarning{rmannot}{Bad choice for 3Dlights, permissible + values are None, White, Day, Night, Hard, Primary, Blue, + Red, Cube, CAD, HeadLamp. Try again}} +\define@choicekey+{MXV@user}{3Drender}% + {Solid,SolidWireframe,Transparent,TransparentWireframe,% + BoundingBox,TransparentBoundingBox,TransparentBoundingBoxOutline,% + Wireframe,ShadedWireframe,HiddenWireframe,Vertices,ShadedVertices,% + SolidOutline,Illustration,ShadedIllustration}[Solid]{% + \gdef\@MXV@defaultrender{#1}% + \gdef\@MXV@render{/RM <</Subtype/#1>>}% +}{\PackageWarning{rmannot}{Bad choice for 3Dlights, permissible + values are Solid, SolidWireframe, Transparent, TransparentWireframe, + BoundingBox, TransparentBoundingBox, TransparentBoundingBoxOutline, + Wireframe, ShadedWireframe, HiddenWireframe, Vertices, + ShadedVertices, SolidOutline, Illustration, ShadedIllustration. + Try again}} +\endinput +%% +%% End of file `annot3d.def'. diff --git a/texmf-dist/tex/latex/rmannot/rmannot.cfg b/texmf-dist/tex/latex/rmannot/rmannot.cfg index e3ca13af..e86bd6ce 100644 --- a/texmf-dist/tex/latex/rmannot/rmannot.cfg +++ b/texmf-dist/tex/latex/rmannot/rmannot.cfg @@ -10,6 +10,7 @@ % Oncomment this next line, but specify the major version of Acrobat you are using % 9, 10, 11, DC, 2015, Beta (if you are using a Beta version of Acrobat) %\AcroVer{11} +\AcroVer{DC} \endinput % If you are using an older computer, you may have to enter the path % using the \pathToSkins command. \AcrobatVer expands to the argument diff --git a/texmf-dist/tex/latex/rmannot/rmannot.sty b/texmf-dist/tex/latex/rmannot/rmannot.sty index 289daba2..891b3392 100644 --- a/texmf-dist/tex/latex/rmannot/rmannot.sty +++ b/texmf-dist/tex/latex/rmannot/rmannot.sty @@ -1,1013 +1,1153 @@ -%%
-%% This is file `rmannot.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% rmannot.dtx (with options: `copyright,package')
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% rmannot.sty package, %%
-%% Copyright (C) 2008--2016 D. P. Story %%
-%% dpstory@acrotex.net %%
-%% %%
-%% This program can redistributed and/or modified under %%
-%% the terms of the LaTeX Project Public License %%
-%% Distributed from CTAN archives in directory %%
-%% macros/latex/base/lppl.txt; either version 1 of the %%
-%% License, or (at your option) any later version. %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NeedsTeXFormat{LaTeX2e}[1997/12/01]
-\ProvidesPackage{rmannot}
- [2016/10/09 v2.0e Rich Media Annotations (dps)]
-\RequirePackage{xkeyval}
-\DeclareOptionX{use3D}{%
- \def\rma@input@iiidCode{\InputIfFileExists{annot3d.def}{}{}}%
- \def\rma@requirefp{\RequirePackage[nomessages]{fp}}%
-}
-\let\rma@input@iiidCode\relax
-\let\rma@requirefp\relax
-\ProcessOptionsX
-\RequirePackage{graphicxsp}
-\rma@requirefp
-\RequirePackage{ifthen}
-\newcounter{rm@Cnt}
-\newif\ifrma@EmbedFile\rma@EmbedFiletrue
-\newif\ifrma@EmbedVideoPlayer\rma@EmbedVideoPlayerfalse
-\let\rma@isVPEmbedded=0
-\newif\ifrma@EmbedAudioPlayer\rma@EmbedAudioPlayerfalse
-\let\rma@isAPEmbedded=0
-\def\rm@csarg#1#2{\expandafter#1\csname#2\endcsname}
-\newcommand{\pathToSkins}[1]{%
- \pdfstringdef\rma@pathToSkins{#1}%
- \def\PathToSkins{\rma@pathToSkins}%
- \def\rma@pathToPlayers{\rma@pathToSkins/Players}%
-}
-\newif\ifuseWinAcrobat\useWinAcrobattrue
-\define@key{rmAcroVer}{win}[win]{\useWinAcrobattrue}
-\define@key{rmAcroVer}{mac}[mac]{\useWinAcrobatfalse}
-\newcommand{\AcroVer}[2][]{%
- \def\rmDC{DC}\def\rmBeta{Beta}\def\rmArgi{#1}%
- \def\AcrobatVer{#2}\ifx\rmArgi\@empty\else
- \setkeys{rmAcroVer}{#1}\fi\def\@x{\string\ }%
- \ifx\AcrobatVer\rmDC
- \ifuseWinAcrobat
- \edef\rmSkinPath{C:/Program Files (x86)/Adobe/Acrobat DC/%
- Acrobat/Multimedia Skins}\else
- \edef\rmSkinPath{/Applications/Adobe{\@x}Acrobat{\@x}DC/%
- Adobe{\@x}Acrobat.app/Contents/Resources/%
- Multimedia{\@x}Skins}\fi
- \else\ifx\AcrobatVer\rmBeta
- \ifuseWinAcrobat
- \edef\rmSkinPath{C:/Program Files (x86)/Adobe/Acrobat Beta/%
- Acrobat/Multimedia Skins}\else
- \edef\rmSkinPath{/Applications/Adobe{\@x}Acrobat{\@x}Beta/%
- Adobe{\@x}Acrobat.app/Contents/Resources/%
- Multimedia{\@x}Skins}\fi
- \else\ifnum\AcrobatVer<9\relax
- \PackageError{rmannot}{Acrobat version 9 or later
- supports\MessageBreak rich multimedia annotations}
- {Upgrade your Acrobat to a more recent version.}%
- \else
- \ifuseWinAcrobat
- \ifnum\AcrobatVer<12\relax
- \edef\rmSkinPath{C:/Program Files (x86)/Adobe/%
- Acrobat \AcrobatVer.0/Acrobat/Multimedia Skins}%
- \else
- \edef\rmSkinPath{C:/Program Files (x86)/Adobe/%
- Acrobat \AcrobatVer/Acrobat/Multimedia Skins}%
- \fi
- \else
- \ifnum\AcrobatVer<12\relax
- \ifnum\AcrobatVer=9\relax
- \edef\rmSkinPath{/Applications/%
- Adobe{\@x}Acrobat{\@x}\AcrobatVer{\@x}Pro/%
- Adobe{\@x}Acrobat{\@x}Pro.app/Contents/%
- MacOS/Multimedia{\@x}Skins}%
- \else % ver 10 or 11
- \ifnum\AcrobatVer=10\relax\def\romanVer{X}\else
- \ifnum\AcrobatVer=11\relax\def\romanVer{XI}\fi\fi
- \edef\rmSkinPath{/Applications/%
- Adobe{\@x}Acrobat{\@x}\romanVer{\@x}Pro/%
- Adobe{\@x}Acrobat{\@x}Pro.app/Contents/%
- Resources/Multimedia{\@x}Skins}\fi
- \else
- \edef\rmSkinPath{/Applications/%
- Adobe{\@x}Acrobat{\@x}\AcrobatVer/%
- Adobe{\@x}Acrobat.app/Contents/Resources/%
- Multimedia{\@x}Skins}%
- \fi
- \fi\fi\fi\fi
- \expandafter\pathToSkins\expandafter{\rmSkinPath}%
-}
-\@onlypreamble\AcroVer
-\AcroVer{11}
-\newcommand{\pathToPlayers}[1]{\pdfstringdef\rma@pathToPlayers{#1}}
-\newcommand{\defineRMPath}[1]{\def\rm@ctrlName{#1}%
- \hyper@normalise\rm@defineURLPath}
-\def\rm@defineURLPath#1{\expandafter\xdef\rm@ctrlName{#1}}
-\newif\ifVideoPlayerEx\VideoPlayerExfalse
-\def\rma@VideoPlayer{VideoPlayer.swf}
-\newcommand{\useVideoPlayerPlus}{%
- \PackageWarning{rmannot}{The \string\useVideoPlayerPlus\space
- is no longer supported,\MessageBreak
- will use \string\useVideoPlayX\space instead.
- In the future\MessageBreak
- specify \string\useVideoPlayX}%
- \useVideoPlayerX
-}
-\newcommand{\useVideoPlayerX}{\VideoPlayerExtrue
- \def\rma@VideoPlayer{VideoPlayerX.swf}%
- \let\useVideoPlayerPlus\relax
-}
-\@onlypreamble\useVideoPlayerPlus
-\@onlypreamble\useVideoPlayerX
-\def\mmPlay{"multimedia_play"}
-\def\mmPause{"multimedia_pause"}
-\def\mmRewind{"multimedia_rewind"}
-\def\mmNextCuePoint{"multimedia_nextCuePoint"}
-\def\mmPrevCuePoint{"multimedia_prevCuePoint"}
-\def\mmSeek{"multimedia_seek"}
-\def\mmMute{"multimedia_mute"}
-\def\mmVolume{"multimedia_volume"}
-\def\mmSource{"multimedia_setSource"}
-\def\mmSkin{"multimedia_setSkin"}
-\def\mmSkinColor{"multimedia_setSkinColor"}
-\def\mmSeekCuePoint{"multimedia_seekCuePoint"}
-\def\mmSkinAlpha{"multimedia_setSkinAlpha"}
-\def\mmGetSource{"multimedia_getSource"}
-\def\mmUseLocal{"multimedia_useLocal"}
-\def\mmGetMetaData{"multimedia_getMetdata"}
-\def\mmGetVideoState{"multimedia_getVideoState"}
-\def\mmSetScaleMode{"multimedia_setScaleMode"}
-\def\mmGetVersion{"multimedia_getVersion"}
- \def\mmSetStageColor{"multimedia_setStageColor"}
- \def\mmIsLooping{"multimedia_isLooping"}
- \def\mmSkinAutoHide{"multimedia_skinAutoHide"}
- \def\mmShowLoopButton{"multimedia_showLoopButton"}
-\def\ps@mark{[\space}
-\def\rma@edefexecute#1{\edef\rm@@temp@@exp{#1}\rm@@temp@@exp}
-\def\@MXV@newlabel#1#2{{%
- \rm@csarg\xdef{#1}{#2}}}%
-\def\@MXV@getlabelvalue#1{%
- \rm@csarg\ifx{#1}\relax%
- undefined%
- \else%
- \csname#1\endcsname%
- \fi%
-}%
-\def\@MXV@labeltoaux#1#2{%
- \@bsphack\protected@write\@auxout{}{%
- \string\@MXV@newlabel{#1}{#2}%
- \string\@MXV@newlabel{@#1@}{\@MXV@getlabelvalue{#1}}%
- }\@esphack%
- \ifthenelse{%
- \equal{\@MXV@getlabelvalue{#1}}{undefined}\OR%
- %double check that the value hasn't changed
- \NOT\equal{\@MXV@getlabelvalue{#1}}{\@MXV@getlabelvalue{@#1@}}%
- }{%
- \ifthenelse{\isundefined{\@MXV@warning}}{%
- \gdef\@MXV@warning{}%
- \AtEndDocument{%
- \PackageWarningNoLine{rmannot}{%
- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\MessageBreak
- @@ Rerun to get object references right! @@\MessageBreak
- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}%
- }%
- }{}%
- }{}%
-}%
-\def\RefObjRm#1{{\@MXV@getlabelvalue{rmAnnot_#1}}}
-\InputIfFileExists{rmannot.cfg}{}{}
-\def\rma@embed@mpiii@Poster{%
- \embedEPS[hiresbb]{ramp3poster}{ramp3poster}%
- \global\let\rma@embed@mpiii@Poster\relax
-}
-\def\rma@set@mpiiiposter{%
- \begin{sp@createImage}{\bboxOf{ramp3poster}}{nramp3poster}%
- \rma@invisible
- \ps@mark{ramp3poster} /SP pdfmark
- \end{sp@createImage}%
- \global\let\rma@set@mpiiiposter\relax
-}
-\newcommand{\saveNamedPath}[2][]{%
- \edef\rm@argii{#2}\@ifundefined{rma@@#2}%
- {\gdef\rm@thisPath{rma@@#2}}{\rma@PkEr@ii}%
- \gdef\rm@thisMimeType{#1}%
- \hyper@normalise\rm@saveNamedPath
-}
-\def\rm@saveNamedPath#1{%
- \rm@csarg\gdef{\rm@thisPath}{#1}%
- \rm@csarg\xdef{rma@mt@\rm@argii}{\rm@thisMimeType}%
- \rma@edefexecute{\noexpand\filename@parse{#1}}%
- \@ifundefined{filename@ext}{\rma@PkEr@iii{#1}}{}%
- \rma@edefexecute{\noexpand
- \uppercase{\noexpand\def\noexpand\rma@tempi
- {\filename@ext}}}
- \rm@csarg\xdef{\rm@argii FileName}{%
- \filename@base.\filename@ext}%
- \rm@csarg\xdef{\rm@argii URL}{%
- \filename@area\filename@base.\filename@ext}%
- \ifx\rma@tempi\rma@rmAnnot@type@mpiii\rma@embed@mpiii@Poster\fi
-}
-\def\rma@useNamedPath#1{\@nameuse{rma@@#1}}
-\def\rma@resource#1{\csname#1FileName\endcsname}
-\def\rma@urlresource#1{\csname#1URL\endcsname}
-\expandafter\def\expandafter\makeJSspecials\expandafter{\makeJSspecials
- \let\Name\rma@resource\let\urlName\rma@urlresource
-}
-\let\rmaName\rma@resource
-\def\rmaNameP(#1){\rma@resource{#1}}
-\let\rmaUrlName\rma@urlresource
-\def\rmaUrlNameP(#1){\rma@urlresource{#1}}
-\def\getargsiii#1#2#3{\def\aeb@argi{#1}\def\aeb@argii{#2}%
- \def\aeb@argiii{#3}}
-\@tfor\rma@data:={{uiiid}{U3D}{model/u3d}}{{prc}{PRC}{model/prc}}%
- {{swf}{SWF}{application/x-shockwave-flash}}%
- {{flv}{FLV}{video/x-flv}}{{fiv}{F4V}{video/mp4}}%
- {{mpiv}{MP4}{video/mp4}}{{mivV}{M4V}{video/x-m4v}}%
- {{mov}{MOV}{video/quicktime}}{{iiiGP}{3GP}{video/3gpp}}%
- {{iiiGii}{3G2}{video/3gpp2}}{{mpiii}{MP3}{audio/x-mp3}}\do{%
- \expandafter\getargsiii\rma@data
- \rm@csarg\edef{rma@rmAnnot@type@\aeb@argi}{\aeb@argii}
- \rm@csarg\edef{rma@mimetype@\aeb@argi}{\aeb@argiii}
-}
-\def\rm@SkinsAndPlayerPaths{%
- \saveNamedPath{VideoPlayer}{\PathToSkins/Players/\rma@VideoPlayer}%
- \saveNamedPath{AudioPlayer}{\PathToSkins/Players/AudioPlayer.swf}%
- \saveNamedPath{skin1}{\PathToSkins/SkinOverAllNoFullNoCaption.swf}%
- \saveNamedPath{skin2}%
- {\PathToSkins/SkinOverAllNoVolNoCaptionNoFull.swf}%
- \saveNamedPath{skin3}{\PathToSkins/SkinOverPlay.swf}%
- \saveNamedPath{skin4}{\PathToSkins/SkinOverPlayMute.swf}%
- \saveNamedPath{skin5}{\PathToSkins/SkinOverPlaySeekMute.swf}%
- \saveNamedPath{skin6}{\PathToSkins/SkinOverPlaySeekStop.swf}%
- \saveNamedPath{skin7}{\PathToSkins/SkinOverPlayStopSeekMuteVol.swf}%
-}
-\AtBeginDocument{\rm@SkinsAndPlayerPaths}
-\@namedef{noneFileName}{}
-\@namedef{noneURL}{}
-\@namedef{noChangeFileName}{noChange}
-\@namedef{noChange}{noChange}
-\def\rma@ANT{rmAssetsNameTree-\therm@Cnt}
-\define@key{rmAnnot}{name}[aebRM\therm@Cnt]{\def\rma@Annot@name{#1}}
-\define@choicekey+{rmAnnot}{enabled}[\val\nr]%
- {onclick,pageopen,pagevisible}[onclick]{%
- \ifcase\nr\relax
- \def\rma@rmAnnot@enabled{/XA}\or
- \def\rma@rmAnnot@enabled{/PO}\or
- \def\rma@rmAnnot@enabled{/PV}\fi
-}{\PackageWarning{rmannot}{Bad choice for enabled, permissible values
- are onclick, pageopen and pagevisible. Try again}}
-\define@choicekey+{rmAnnot}{deactivated}[\val\nr]%
- {onclick,pageclose,pageinvisible}[onclick]{%
- \ifcase\nr\relax
- \def\rma@rmAnnot@deactivated{/XD}\or
- \def\rma@rmAnnot@deactivated{/PC}\or
- \def\rma@rmAnnot@deactivated{/PI}\fi
-}{\PackageWarning{rmannot}{Bad choice for deactivated, permissible
- values are onclick, pageclose and pageinvisible. Try again}}
-\define@boolkey{rmAnnot}{windowed}[true]{}
-\define@key{winDimPos}{width}{\def\rma@winDimPos@width{#1}}
- \define@key{winDimPosWidth}{default}[288]%
- {\def\rma@winDimPosWidth@def{#1}}
- \define@key{winDimPosWidth}{max}[576]%
- {\def\rma@winDimPosWidth@max{#1}}
- \define@key{winDimPosWidth}{min}[72]%
- {\def\rma@winDimPosWidth@min{#1}}
-\define@key{winDimPos}{height}{\def\rma@winDimPos@height{#1}}
- \define@key{winDimPosHeight}{default}[216]%
- {\def\rma@winDimPosHeight@def{#1}}
- \define@key{winDimPosHeight}{max}[432]%
- {\def\rma@winDimPosHeight@max{#1}}
- \define@key{winDimPosHeight}{min}[72]%
- {\def\rma@winDimPosHeight@min{#1}}
-\define@key{winDimPos}{position}{\def\rma@winDimPos@position{#1}}
- \define@choicekey+{winDimPosPos}{halign}[\val\nr]%
- {near,center,far}[far]{%
- \ifcase\nr\relax
- \def\rma@winDimPosPos@halign{/Near}\or
- \def\rma@winDimPosPos@halign{/Center}\or
- \def\rma@winDimPosPos@halign{/Far}\fi
- }{}
- \define@choicekey+{winDimPosPos}{valign}[\val\nr]%
- {near,center,far}[near]{%
- \ifcase\nr\relax
- \def\rma@winDimPosPos@valign{/Near}\or
- \def\rma@winDimPosPos@valign{/Center}\or
- \def\rma@winDimPosPos@valign{/Far}\fi
- }{}
- \define@key{winDimPosPos}{hoffset}[18]%
- {\def\rma@winDimPosPos@hoffset{#1}}
- \define@key{winDimPosPos}{voffset}[18]%
- {\def\rma@winDimPosPos@voffset{#1}}
-\providecommand{\setWindowDimPos}[1]{%
- \setkeys{winDimPos}{#1}%
- \edef\temp@expand@sets{%
- \noexpand\setkeys{winDimPosWidth}{\rma@winDimPos@width}%
- \noexpand\setkeys{winDimPosHeight}{\rma@winDimPos@height}%
- \noexpand\setkeys{winDimPosPos}{\rma@winDimPos@position}%
- }\temp@expand@sets
-}
-\providecommand{\resetWindowDimPos}{%
- \setWindowDimPos{width={default,max,min},height={default,max,min},
- position={halign,valign,hoffset,voffset}}%
-}
-\resetWindowDimPos
-\define@boolkey{rmAnnot}{url}[true]{}
-\def\setRmOptions3D#1#2{\rm@csarg\xdef{#1_3DOPTS}{#2}}
-\define@choicekey+{rmAnnot}{borderwidth}[\val\nr]%
- {none,thin,medium,thick}[none]{%
- \ifcase\nr\relax
- \def\rma@rmAnnot@borderwidth{0}\or
- \def\rma@rmAnnot@borderwidth{1}\or
- \def\rma@rmAnnot@borderwidth{3}\or
- \def\rma@rmAnnot@borderwidth{5}\fi
-}{\PackageWarning{rmannot}{Bad choice for borderwidth, permissible
- values are none,thin,medium,and thick. Try again}}
-\define@key{rmAnnot}{poster}[]{\def\rma@rmAnnot@poster{#1}}
-\define@key{rmAnnot}{posternote}[AcroTeX \rma@poster@descrip]%
- {\def\rma@posternote{#1}}
-\define@key{rmAnnot}{invisible}[]%
- {\def\rma@invisible{\ps@mark/ca 0/SetTransparency pdfmark }}
-\let\rma@invisible\@empty
-\define@boolkey{rmAnnot}{transparentBG}[true]{%
- \ifKV@rmAnnot@transparentBG
- \def\rma@rmAnnot@transparent{true}\else
- \def\rma@rmAnnot@transparent{false}\fi
-}
-\define@boolkey{rmAnnot}{toolbar}[true]{%
- \ifKV@rmAnnot@toolbar
- \def\rma@rmAnnot@toolbar{true}\else
- \def\rma@rmAnnot@toolbar{false}\fi
-}
-\define@boolkey{rmAnnot}{modeltree}[true]{%
- \ifKV@rmAnnot@modeltree
- \def\rma@rmAnnot@modeltree{true}\else
- \def\rma@rmAnnot@modeltree{false}\fi
-}
-\define@boolkey{rmAnnot}{passcontext}[true]{%
- \ifKV@rmAnnot@passcontext
- \def\rma@rmAnnot@PassContextClick{true}\else
- \def\rma@rmAnnot@PassContextClick{false}\fi
-}
-\define@choicekey+{rmAnnot}{skin}[\val\nr]%
- {none,skin1,skin2,skin3,skin4,skin5,skin6,skin7}[skin1]{%
- \edef\rma@skinName{#1}% 2011/10/18 changed from number to name
- \ifcase\nr\relax
- \let\rma@rmAnnot@Skin\@empty\or
- \def\rma@rmAnnot@Skin{SkinOverAllNoFullNoCaption.swf}\or
- \def\rma@rmAnnot@Skin{SkinOverAllNoVolNoCaptionNoFull.swf}\or
- \def\rma@rmAnnot@Skin{SkinOverPlay.swf}\or
- \def\rma@rmAnnot@Skin{SkinOverPlayMute.swf}\or
- \def\rma@rmAnnot@Skin{SkinOverPlaySeekMute.swf}\or
- \def\rma@rmAnnot@Skin{SkinOverPlaySeekStop.swf}\or
- \def\rma@rmAnnot@Skin{SkinOverPlayStopSeekMuteVol.swf}\fi
-}{%
- \@ifundefined{rma@@#1}{%
- \PackageWarning{rmannot}{Bad choice for 'skin,' permissible
- values are skin1--skin7, or a custom skin already defined.
- Try again}}{%
- \PackageWarning{rmannot}{Recording new skin, '#1'}%
- \edef\rma@skinName{#1}%
- \edef\rma@rmAnnot@Skin{\csname#1FileName\endcsname}%
- \rm@csarg\let{embedSkin#1}=1
- }%
-}
-\@tfor\rma@arg:={skin0}{skin1}{skin2}{skin3}{skin4}%
- {skin5}{skin6}{skin7}\do{%
- \rm@csarg\let{embedSkin\rma@arg}=1
-}
-\define@boolkey{rmAnnot}{skinAutoHide}[true]{%
- \ifKV@rmAnnot@skinAutoHide
- \def\rma@skinAutoHide{true}\else
- \def\rma@skinAutoHide{false}\fi
-}
-\define@key{rmAnnot}{skinBGColor}[0x5F5F5F]%
- {\def\rma@skinBGColor{#1}}
-\define@key{rmAnnot}{skinBGAlpha}[0.75]%
- {\def\rma@skinBGAlpha{#1}}
-\define@key{rmAnnot}{volume}[1.00]%
- {\def\rma@rmAnnot@volume{#1}}
-\define@key{rmAnnot}{speed}[1]{%
- \def\rma@rmAnnot@speed{#1}%
-}
-\define@key{rmAnnot}{playcount}[-1]{%
- \def\rma@rmAnnot@playcount{#1}%
-}
-\newtoks\rma@toks\rma@toks={}
-\newcount\rma@nResources
-\newif\ifrma@isiiid\rma@isiiidfalse
-\define@key{rmAnnot}{resources}[]{\rma@toks={}\rma@nResources=0%
- \ifrma@isiiid\let\rma@next\relax
- \else\def\rma@next{\rma@proc@resources{#1}}\fi\rma@next
-}
-\newcommand{\rma@proc@resources}[1]{%
- \def\rma@rmAnnot@resources{#1}%
- \ifx\rma@rmAnnot@resources\@empty\let\rma@addResources\@empty
- \let\rma@addFileSpecs\@empty\else
- \@for\rma@arg:=\rma@rmAnnot@resources\do{%
- \advance\rma@nResources1\relax
- \rma@edefexecute{\noexpand
- \filename@parse{\rma@useNamedPath{\rma@arg}}}%
- \@ifundefined{filename@ext}{%
- \rma@PkEr@iii{\rma@useNamedPath{\rma@arg}}}{}%
- \edef\rma@fs@expand{rmFileStrm\rma@arg}%
- \@ifundefined{\rma@fs@expand}{%
- \rm@csarg\xdef{\rma@fs@expand}%
- {rmfstream\therm@Cnt-\the\rma@nResources}%
- \def\rma@embed{1}}{\def\rma@embed{0}}%
- \edef\rma@tmp@exp{\the\rma@toks%
- \noexpand\\{\the\rma@nResources}%
- {\filename@area}{\filename@base.\filename@ext}%
- {\rma@embed}{\csname\rma@fs@expand\endcsname}%
- {\rm@csarg\noexpand{rma@mt@\rma@arg}}}%
- \rma@toks=\expandafter{\rma@tmp@exp}%
- }%
- \let\\\rm@appendNameTree
- \expandafter\xdef\expandafter\rma@addResources%
- \expandafter{\the\rma@toks}%
- \let\\\rm@appendFileSpecs
- \expandafter\xdef\expandafter\rma@addFileSpecs%
- \expandafter{\the\rma@toks}%
- \fi
-}
-\def\rm@appendNameTree#1#2#3#4#5#6{%
- \ps@mark{\rma@ANT} (#3) /APPEND pdfmark^^J%
- \ps@mark{\rma@ANT} {rmfilespec\therm@Cnt-#1}/APPEND pdfmark^^J%
-}
-\def\rm@appendFileSpecs#1#2#3#4#5#6{%
- \ps@mark/_objdef {rmfilespec\therm@Cnt-#1}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmfilespec\noexpand\therm@Cnt-#1} <<%
- /F(#3)%
- /UF (#3)%
- /EF <</F {#5}>>%
- /Type/Filespec%
- >>/PUT pdfmark^^J%
- \if#41
- \ps@mark/_objdef {#5} /type/stream/OBJ pdfmark^^J%
- \ps@mark{#5} (#2#3) (r) file /PUT pdfmark^^J%
- \ps@mark{#5}<<%
- /Type/EmbeddedFile%
-\ifx#6\@empty\else
- /Subtype(#6)%
-\fi
- >>/PUT pdfmark^^J%
- \ps@mark{#5} /CLOSE pdfmark^^J%
- \fi
-}
-\define@key{rmAnnot}{flashvars}[]{%
- \def\rma@rmAnnot@flashvars{#1}%
-}
-\define@key{rmAnnot}{cuepoints}[]{%
- \edef\rma@rmAnnot@cuepoints{#1}%
- \ifx\rma@rmAnnot@cuepoints\@empty\else
- \rma@nResources=0%
- \def\rma@array@hold{}\def\rma@dict@hold{}%
- \@for\arg:=\rma@rmAnnot@cuepoints\do{%
- \advance\rma@nResources1\relax
- \rma@edefexecute{\noexpand\setkeys{rmCuePt}{\arg}}%
- % need to build the array of indirect references,
- \edef\rma@array@hold{\rma@array@hold\space
- {rmCuePoints\therm@Cnt-\the\rma@nResources}}%
- % and the code for the cue point dictionary
- \edef\rma@dict@hold{\rma@dict@hold
- \ps@mark/_objdef %
- {rmCuePoints\therm@Cnt-\the\rma@nResources}%
- /type/dict/OBJ pdfmark^^J%
- \ps@mark{rmCuePoints\therm@Cnt-\the\rma@nResources} <<
- /Type/CuePoint
-\ifx\rma@rmCuePt@name\@empty
- /Name (RMACP \the\rma@nResources)
-\else
- /Name (\rma@rmCuePt@name)
-\fi
- /Subtype \rma@rmCuePt@type
- /Time \rma@rmCuePt@time
-\ifx\rma@rmCuePt@action\@empty\else
- /A << /Type/Action\JS{\rma@rmCuePt@action} >>
-\fi
- >> /PUT pdfmark^^J%
- }%
- }% end of \@for
- \fi
-}
-\define@choicekey+{rmCuePt}{type}[\val\nr]%
- {event,nav}[nav]{%
- \ifcase\nr\relax
- \def\rma@rmCuePt@type{/Event}\or
- \def\rma@rmCuePt@type{/Navigation}\fi
-}{\PackageWarning{rmannot}{Bad choice for type, permissible values
- are event and nav. Try again}}
-\define@key{rmCuePt}{name}[]{%
- \def\rma@rmCuePt@name{#1}%
-}
-\define@key{rmCuePt}{time}[0]{%
- \def\rma@rmCuePt@time{#1}%
-}
-\define@key{rmCuePt}{action}[]{%
- \def\rma@rmCuePt@action{#1}%
-}
-\setkeys{rmAnnot}{name,url=false,enabled,deactivated,borderwidth,%
- windowed=false,poster,posternote,skin,skinAutoHide,skinBGColor,%
- skinBGAlpha,volume,speed,playcount,resources,flashvars,%
- transparentBG=false,passcontext=false,cuepoints,toolbar,%
- modeltree=false}
-\def\rma@recordVideoPlayer{%
- \ifrma@EmbedVideoPlayer
- \global\let\rma@isVPEmbedded=1\global\rma@EmbedVideoPlayerfalse
- \else
- \if\rma@isVPEmbedded0\global\rma@EmbedVideoPlayertrue\fi
- \fi
-}
-\def\rma@recordAudioPlayer{%
- \ifrma@EmbedAudioPlayer
- \global\let\rma@isAPEmbedded=1\global\rma@EmbedAudioPlayerfalse
- \else
- \if\rma@isAPEmbedded0\global\rma@EmbedAudioPlayertrue\fi
- \rma@set@mpiiiposter
- \fi
-}
-\newif\if@FndSuppExt \@FndSuppExtfalse
-\newcommand{\rmAnnot}[4][]{\begingroup
- \let\Name\rma@resource
- \let\urlName\rma@urlresource
- \makeJSspecials
- \let\rma@addResources\@empty\let\rma@addFileSpecs\@empty
- {\setlength{\dimen@}{#2}\xdef\rm@Annot@width{\the\dimen@}%
- \setlength{\dimen@}{#3}\xdef\rm@Annot@height{\the\dimen@}}%
- \stepcounter{rm@Cnt}%
- \rma@edefexecute{\noexpand\filename@parse{\rma@useNamedPath{#4}}}%
- \edef\rma@fs@expand{rmFileStrm#4}\@ifundefined{\rma@fs@expand}{%
- \rm@csarg\xdef{\rma@fs@expand}%
- {rmfstream\therm@Cnt}\global\rma@EmbedFiletrue}%
- {\global\rma@EmbedFilefalse}%
- \edef\rma@thisfilepath{\filename@area}%
- \edef\rma@basefilename{\filename@base}%
- \edef\rma@extension{\filename@ext}%
- \rma@edefexecute{\noexpand\uppercase{\noexpand
- \def\noexpand\rma@tempi{\rma@extension}}}%
- \ifx\rma@tempi\rma@rmAnnot@type@uiiid\rma@isiiidtrue
- \else\ifx\rma@tempi\rma@rmAnnot@type@prc\rma@isiiidtrue
- \else\rma@isiiidfalse
- \fi\fi
- \rma@edefexecute{\noexpand\setkeys{rmAnnot}{#1}}%
-\ifx\rma@input@iiidCode\relax\else
-\ifrma@isiiid
- \@ifundefined{\rma@Annot@name_3DOPTS}{%
- }{%
- \def\rma@Instances{}\def\rma@appendToNameTree{}%
- \rma@edefexecute{\noexpand\setkeys{rm3DOptsTopLevel}%
- {\@nameuse{\rma@Annot@name_3DOPTS}}}%
- \edef\additional@Instances{\rma@Instances}%
- \edef\rma@addResources{\rma@appendToNameTree}%
- \ifx\rma@rmAnnot@iiiDjs\@empty\else
- \def\@MXV@jscriptiiid{}%
- \literalps@out{%
- \ps@mark/_objdef {jscriptiiid\therm@Cnt}%
- /type/array/OBJ pdfmark^^J%
- \rmiiid@addToScriptsArray
- \rma@addFileSpecs
- }%
- \edef\@MXV@jscriptiiid{%
- /Scripts {jscriptiiid\therm@Cnt}%
- }%
- \fi
- \@MXV@buildva%
- }%
-\fi\fi
- \rma@edefexecute{\noexpand\uppercase{\noexpand
- \def\noexpand\rma@tempi{\rma@extension}}}%
-\ifrma@isiiid
- \def\rma@poster@descrip{3D}%
- \def\rma@RMCSubtype{/3D}%
- \ifx\rma@tempi\rma@rmAnnot@type@uiiid
- \def\rma@rmAnnot@type{U3D}%
- \edef\rma@mimeType{\rma@mimetype@uiiid}%
- \else
- \ifx\rma@tempi\rma@rmAnnot@type@prc
- \def\rma@rmAnnot@type{PRC}%
- \edef\rma@mimeType{\rma@mimetype@prc}%
- \fi\fi
-\else
- \def\rma@poster@descrip{Flash}%
- \ifx\rma@tempi\rma@rmAnnot@type@swf
- \def\rma@rmAnnot@type{SWF}\edef\rma@mimeType{\rma@mimetype@swf}%
- \def\rma@RMCSubtype{/Flash}%
- \else % if not flash
- \def\rma@poster@descrip{Video}\def\rma@rmAnnot@type{FLV}%
- \@FndSuppExtfalse
- \@tfor\rma@type:={flv}{fiv}{mpiv}{mivV}{mov}{iiiGP}{iiiGii}\do{%
- \expandafter\ifx\expandafter\rma@tempi\csname%
- rma@rmAnnot@type@\rma@type\endcsname
- \@FndSuppExttrue
- \edef\rma@mimeType{\csname%
- rma@mimetype@\rma@type\endcsname}%
- \rma@recordVideoPlayer\@break@tfor
- \fi
- }%
- \if@FndSuppExt
- \def\rma@RMCSubtype{/Video}%
- \xdef\FileStrmVideoPlayer{rmVideoPlayer\therm@Cnt}%
- \else % if not video
- \ifx\rma@tempi\rma@rmAnnot@type@mpiii
- \def\rma@rmAnnot@type{MP3}\edef\rma@mimeType{\rma@mimetype@mpiii}%
- \def\rma@poster@descrip{MP3}\def\rma@RMCSubtype{/Sound}%
- \xdef\FileStrmAudioPlayer{rmAudioPlayer\therm@Cnt}%
- \let\rma@rmAnnot@resources\@empty
- \rma@recordAudioPlayer
- \else % not mp3
- \rma@PkEr@i
-\fi\fi\fi\fi
- \def\rma@thisfileName{\rma@basefilename.\rma@extension}%
- \def\rma@fullpath{\rma@thisfilepath\rma@thisfileName}%
- \ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv
- \let\rma@rmAnnot@flashvars\@empty\fi
- \ifx\rma@rmAnnot@type\rma@rmAnnot@type@mpiii
- \let\rma@rmAnnot@flashvars\@empty\fi
-\ifx\rma@rmAnnot@poster\@empty
-\ifx\rma@rmAnnot@type\rma@rmAnnot@type@mpiii
- \def\rma@rmAnnot@poster{nramp3poster}%
-\else
- \Gin@defaultbp\this@width\rm@Annot@width
- \Gin@defaultbp\this@height\rm@Annot@height
- \ifdim\rm@Annot@width < \rm@Annot@height
- \edef\calc@prop{\this@width}\else
- \edef\calc@prop{\this@height}\fi
- \def\this@bbox{0 0 \this@width\space\this@height}%
- \begin{sp@createImage}{\this@bbox}{rmAP@#4@\therm@Cnt}%
- \rma@invisible
- \rma@psgraphics@poster
- \end{sp@createImage}%
- \def\rma@rmAnnot@poster{rmAP@#4@\therm@Cnt}%
-\fi\fi
- \pdf@rect{\Bbox{\rm@Annot@width}{\rm@Annot@height}}%
- \@MXV@newlabel{rmAnnot_\rma@Annot@name}{rmAnnot\therm@Cnt}%
- \@MXV@labeltoaux{rmAnnot_\rma@Annot@name}{rmAnnot\therm@Cnt}%
- \literalps@out{%
- \ps@mark/_objdef {rmAnnot\therm@Cnt}%
- /Type/Annot%
- /Subtype/RichMedia%
- /NM (\rma@Annot@name)% % Annotation name
-\ifx\rma@rmAnnot@poster\@empty\else
- /AP <</N {\rma@rmAnnot@poster}>>% % poster appearance
-\fi
- /F 68% % Annotation flags
- /P {ThisPage}% % Parent
- /Border [ 0 0 \rma@rmAnnot@borderwidth ]% Border
- /BS <</Type/Border% % Border Style dictionary
- /W \rma@rmAnnot@borderwidth% % Width
- /S/S% % Border style (Solid)
- >>%
- /RichMediaContent {rmContent\therm@Cnt}%
- /RichMediaSettings {rmSettings\therm@Cnt}
- H.B /ANN pdfmark^^J%
- \ps@mark/_objdef {rmContent\therm@Cnt}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmContent\therm@Cnt} <<%
- /Type/RichMediaContent%
-\ifrma@isiiid
- /Subtype/3D%
-\ifx\@MXV@varray\@empty\else
- /Views [\@MXV@varray]%
-\fi\fi
- /Configurations [{rmConfig\therm@Cnt}]%
- /Assets {rmAssets\therm@Cnt}%
- >>/PUT pdfmark^^J%
- \ps@mark/_objdef {rmConfig\therm@Cnt}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmConfig\therm@Cnt} <<%
- /Type/RichMediaConfiguration%
- /Name (RMConfig\therm@Cnt)%
- /Subtype\rma@RMCSubtype%
- /Instances {rmInstances\therm@Cnt}%
- >> /PUT pdfmark^^J%
- \ps@mark/_objdef {rmInstances\therm@Cnt}/type/array/OBJ pdfmark^^J%
-\ifrma@isiiid
- \ps@mark{rmInstances\therm@Cnt} {rmInstance\therm@Cnt}%
- /APPEND pdfmark^^J%
- \additional@Instances
-\else
-\ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv
- \ps@mark{rmInstances\therm@Cnt} {rmVideoPlayer\therm@Cnt}%
- /APPEND pdfmark^^J%
-\else\ifx\rma@rmAnnot@type\rma@rmAnnot@type@swf
- \ps@mark{rmInstances\therm@Cnt} {rmInstance\therm@Cnt}%
- /APPEND pdfmark^^J%
-\else
- \ps@mark{rmInstances\therm@Cnt} {rmAudioPlayer\therm@Cnt}%
- /APPEND pdfmark^^J%
-\fi\fi\fi
- \ps@mark/_objdef {rmAssets\therm@Cnt}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmAssets\therm@Cnt} <<%
- /Names {\rma@ANT}>>/PUT pdfmark^^J%
- \ps@mark/_objdef {\rma@ANT}/type/array/OBJ pdfmark^^J%
-\ifrma@isiiid
- \ps@mark{\rma@ANT} (\rma@thisfileName) /APPEND pdfmark^^J%
- \ps@mark{\rma@ANT} {rmfilespec\therm@Cnt} /APPEND pdfmark^^J%
- \rma@addResources
-\else
-\ifx\rma@rmAnnot@type\rma@rmAnnot@type@swf
- \ifKV@rmAnnot@url\else
- \ps@mark{\rma@ANT} (\rma@thisfileName)/APPEND pdfmark^^J%
- \ps@mark{\rma@ANT} {rmfilespec\therm@Cnt}/APPEND pdfmark^^J%
- \rma@addResources
- \fi
-\else\ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv
- \ifKV@rmAnnot@url\else
- \ps@mark{\rma@ANT} (\rma@thisfileName)/APPEND pdfmark^^J%
- \ps@mark{\rma@ANT} {rmfilespec\therm@Cnt}/APPEND pdfmark^^J%
- \ifVideoPlayerEx\rma@addResources\fi
- \fi
- \ifx\rma@rmAnnot@Skin\@empty\else
- \ps@mark{\rma@ANT} (\rma@rmAnnot@Skin)/APPEND pdfmark^^J%
- \ps@mark{\rma@ANT} {rmfilespecSkin\rma@skinName}%
- /APPEND pdfmark^^J%
- \fi
- \ps@mark{\rma@ANT} (\rma@VideoPlayer)/APPEND pdfmark^^J%
- \ps@mark{\rma@ANT} {rmfilespecVP}/APPEND pdfmark^^J%
-\else
- \ps@mark{\rma@ANT} (AudioPlayer.swf)/APPEND pdfmark^^J%
- \ps@mark{\rma@ANT} {rmfilespecAP}/APPEND pdfmark^^J%
- \ps@mark{\rma@ANT} (\rma@thisfileName)/APPEND pdfmark^^J%
- \ps@mark{\rma@ANT} {rmfilespec\therm@Cnt}/APPEND pdfmark^^J%
-\fi\fi\fi
-\ifrma@isiiid
- \ps@mark/_objdef {rmInstance\therm@Cnt}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmInstance\therm@Cnt}%
-\else
-\ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv
- \ps@mark/_objdef {rmVideoPlayer\therm@Cnt}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmVideoPlayer\therm@Cnt}%
-\else\ifx\rma@rmAnnot@type\rma@rmAnnot@type@swf
- \ps@mark/_objdef {rmInstance\therm@Cnt}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmInstance\therm@Cnt}%
-\else
- \ps@mark/_objdef {rmAudioPlayer\therm@Cnt}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmAudioPlayer\therm@Cnt}%
-\fi\fi\fi
- <<%
- /Type/RichMediaInstance%
-\ifrma@isiiid
- /Subtype/3D%
- /Asset {rmfilespec\therm@Cnt}%
-\else
- /Subtype/Flash%
-\ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv
- /Asset {rmfilespecVP}%
-\else\ifx\rma@rmAnnot@type\rma@rmAnnot@type@swf
- /Asset {rmfilespec\therm@Cnt}%
-\else
- /Asset {rmfilespecAP}%
-\fi\fi\fi
-\ifrma@isiiid\else
- /Params {rmParams\therm@Cnt}%
-\fi
- >> /PUT pdfmark^^J%
- \ps@mark/_objdef {rmParams\therm@Cnt}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmParams\therm@Cnt} <<%
- /Type/RichMediaParams%
-\ifrma@isiiid\else
-\ifx\rma@rmAnnot@resources\@empty
- /Binding/Background%
-\else
- /Binding/Foreground%
-\fi\fi
-\ifrma@isiiid\else
-\ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv
- \ifKV@rmAnnot@url
- /FlashVars (source=\rma@fullpath&%
- \else
- /FlashVars (source=\rma@thisfileName&%
- \fi
- \ifx\rma@rmAnnot@Skin\@empty\else
- skin=\rma@rmAnnot@Skin&%
- \fi
- skinAutoHide=\rma@skinAutoHide&%
- skinBackgroundColor=\rma@skinBGColor&%
- skinBackgroundAlpha=\rma@skinBGAlpha&%
- volume=\rma@rmAnnot@volume)
-\ifx\rma@rmAnnot@cuepoints\@empty\else
- /CuePoints [\rma@array@hold]%
-\fi
-\else\ifx\rma@rmAnnot@type\rma@rmAnnot@type@swf
- \ifx\rma@rmAnnot@flashvars\@empty\else
- /FlashVars (\rma@rmAnnot@flashvars)%
- \fi
-\else
- /FlashVars (source=\ifKV@rmAnnot@url\rma@fullpath\else
- \rma@thisfileName\fi&autoPlay=true&%
- volume=\rma@rmAnnot@volume)%
-\fi\fi\fi
- >> /PUT pdfmark^^J%
- \ps@mark/_objdef {rmSettings\therm@Cnt}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmSettings\therm@Cnt} <<%
- /Type/RichMediaSettings%
- /Activation <<%
- /Type/RichMediaActivation%
- /Condition\rma@rmAnnot@enabled
- /Configuration {rmConfig\therm@Cnt}%
-\ifrma@isiiid
- /Animation%
- <<%
- /Type/RichMediaAnimation%
- /Subtype/Linear%
- /Speed \rma@rmAnnot@speed
- /PlayCount \rma@rmAnnot@playcount
- >>%
-\ifx\@MXV@defaultview\@empty\else
- /View \@MXV@defaultview
-\fi
-\ifx\@MXV@jscriptiiid\@empty\else
- \@MXV@jscriptiiid
-\fi\fi
- /Presentation {rmPresentation\therm@Cnt}%
- >>
- /Deactivation<<%
- /Type/RichMediaDeactivation%
- /Condition\rma@rmAnnot@deactivated
- >>%
->>/PUT pdfmark^^J%
-\ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv
-\ifx\rma@rmAnnot@cuepoints\@empty\else\rma@dict@hold\fi\fi
- \ps@mark/_objdef {rmPresentation\therm@Cnt}%
- /type/dict/OBJ pdfmark^^J%
- \ps@mark{rmPresentation\therm@Cnt}<<%
- /Type/RichMediaPresentation%
-\ifrma@isiiid
- /NavigationPane \rma@rmAnnot@modeltree % need key
- /Toolbar \rma@rmAnnot@toolbar % need key
- /Transparent \rma@rmAnnot@transparent
-\else
-\ifx\rma@rmAnnot@type\rma@rmAnnot@type@swf
- /Transparent \rma@rmAnnot@transparent
- /PassContextClick \rma@rmAnnot@PassContextClick
- /NavigationPan false%
-\else
- /Transparent false%
- /NavigationPan false%
-\fi\fi
-\ifKV@rmAnnot@windowed
- /Style/Windowed%
- /Window {rmWindow\therm@Cnt}%
-\else
- /Style/Embedded%
-\fi
- >>/PUT pdfmark^^J%
-\ifKV@rmAnnot@windowed
- \ps@mark/_objdef {rmWindow\therm@Cnt}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmWindow\therm@Cnt}<<%
- /Type/RichMediaWindow%
- /Height<<%
- /Default \rma@winDimPosHeight@def
- /Max \rma@winDimPosHeight@max
- /Min \rma@winDimPosHeight@min
- >>%
- /Width<<%
- /Default \rma@winDimPosWidth@def
- /Max \rma@winDimPosWidth@max
- /Min \rma@winDimPosWidth@min
- >>%
- /Position<<%
- /Type/RichMediaPosition % RichMediaPosition dictionary
- /HAlign\rma@winDimPosPos@halign
- /VAlign\rma@winDimPosPos@valign
- /HOffset \rma@winDimPosPos@hoffset
- /VOffset \rma@winDimPosPos@voffset
- >>%
- >>/PUT pdfmark^^J%
-\fi
- \ps@mark/_objdef {rmfilespec\therm@Cnt}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmfilespec\therm@Cnt} <<%
-\ifKV@rmAnnot@url
- /F(\rma@fullpath)%
- /FS/URL%
-\else
- /F(\rma@thisfileName)%
- /UF (\rma@thisfileName)%
- /EF <</F {\csname rmFileStrm#4\endcsname}>>
-\fi
- /Type/Filespec
- >>/PUT pdfmark^^J%
-\ifKV@rmAnnot@url\else
-\ifrma@EmbedFile
- \ps@mark/_objdef {\csname rmFileStrm#4\endcsname}%
- /type/stream/OBJ pdfmark^^J%
- \ps@mark{\csname rmFileStrm#4\endcsname} (\rma@fullpath)
- (r) file /PUT pdfmark^^J%
- \ps@mark{\csname rmFileStrm#4\endcsname} <<%
- /Type/EmbeddedFile%
- /Subtype(\rma@mimeType)%
- >>/PUT pdfmark^^J%
- \ps@mark{\csname rmFileStrm#4\endcsname} /CLOSE pdfmark^^J%
-\fi\fi
-\ifx\rma@rmAnnot@type\rma@rmAnnot@type@swf\rma@addFileSpecs\fi
-\ifrma@isiiid\rma@addFileSpecs\fi
-\ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv
-\ifVideoPlayerEx\rma@addFileSpecs\fi
-\ifx\rma@rmAnnot@Skin\@empty\else
- \ps@mark/_objdef {rmfilespecSkin\rma@skinName}%
- /type/dict/OBJ pdfmark^^J%
- \ps@mark{rmfilespecSkin\rma@skinName} <<%
- /F (\rma@rmAnnot@Skin)%
- /Type/Filespec%
- /UF (\rma@rmAnnot@Skin)%
- /EF <</F {rmfstreamSkin\rma@skinName}>>
- >>/PUT pdfmark^^J%
-\rm@csarg\if{embedSkin\rma@skinName}1
- \ps@mark/_objdef {rmfstreamSkin\rma@skinName}%
- /type/stream/OBJ pdfmark^^J%
- \ps@mark{rmfstreamSkin\rma@skinName}%
- (\rma@pathToSkins/\rma@rmAnnot@Skin) (r) file%
- /PUT pdfmark^^J%
- \ps@mark{rmfstreamSkin\rma@skinName} <<%
- /Type/EmbeddedFile
- /Subtype (\rma@mimetype@swf)
- >>/PUT pdfmark^^J%
- \ps@mark{rmfstreamSkin\rma@skinName}/CLOSE pdfmark^^J%
-\fi\fi\fi
-\ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv
- \ps@mark/_objdef {rmfilespecVP}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmfilespecVP} <<%
- /Type/Filespec%
- /F (\rma@VideoPlayer)%
- /UF (\rma@VideoPlayer)%
- /EF <</F {rmfstreamVP}>>
- >>/PUT pdfmark^^J%
-\ifrma@EmbedVideoPlayer
- \ps@mark/_objdef {rmfstreamVP}/type/stream/OBJ pdfmark^^J%
- \ps@mark{rmfstreamVP} (\rma@pathToPlayers/\rma@VideoPlayer)
- (r) file /PUT pdfmark^^J%
- \ps@mark{rmfstreamVP} <<%
- /Type/EmbeddedFile%
- /Subtype (\rma@mimetype@swf)%
- >>/PUT pdfmark^^J%
- \ps@mark{rmfstreamVP} /CLOSE pdfmark^^J%
-\fi\fi
-\ifx\rma@rmAnnot@type\rma@rmAnnot@type@mpiii
- \ps@mark/_objdef {rmfilespecAP}/type/dict/OBJ pdfmark^^J%
- \ps@mark{rmfilespecAP} <<%
- /F (AudioPlayer.swf)%
- /Type/Filespec%
- /UF (AudioPlayer.swf)%
- /EF <</F {rmfstreamAP}>>%
- >>/PUT pdfmark^^J%
-\ifrma@EmbedAudioPlayer
- \ps@mark/_objdef {rmfstreamAP}/type/stream/OBJ pdfmark^^J%
- \ps@mark{rmfstreamAP}(\rma@pathToPlayers/AudioPlayer.swf)
- (r) file /PUT pdfmark^^J%
- \ps@mark{rmfstreamAP} <<%
- /Type/EmbeddedFile%
- /Subtype (\rma@mimetype@mpiii)%
- >>/PUT pdfmark^^J%
- \ps@mark{rmfstreamAP} /CLOSE pdfmark^^J%
-\fi\fi}%
-\ifx\rma@rmAnnot@type@flv\rma@rmAnnot@type
-\ifx\rma@rmAnnot@Skin\@empty\else
-\expandafter\global\rm@csarg\let{embedSkin\rma@skinName}=0\relax
-\fi\fi
-\endgroup}
-\newcommand{\defaultPoster}[1]{\def\rma@psgraphics@poster{#1}}
-\defaultPoster
-{%
- \rma@ps@bg@setcolor
- 0 0 \this@width\space\this@height\space rectfill
- \rma@ps@txt@x\adj@measure\rma@ps@txt@y\adj@measure moveto
- \rma@ps@txt@setcolor/\rma@ps@font\this@height\space
- \rma@ps@relfontsize div selectfont
- \rma@ps@msg
-}
-\def\adj@measure{\calc@prop\space mul 100 div }%
-\def\rma@ps@bg@setcolor{.7529 setgray }
-\def\rma@ps@txt@x{10 }\def\rma@ps@txt@y{10 }
-\def\rma@ps@txt@setcolor{.4 setgray }
-\def\rma@ps@font{Helvetica }\def\rma@ps@relfontsize{10 }%
-\def\rma@ps@msg{(\rma@posternote) show}
-\providecommand{\makePoster}[3][]{%
- \embedEPS[#1]{rma@#2}{#3}%
- \begin{createImage}{\bboxOf{rma@#2}}{#2}%
- \ps@mark{rma@#2} /SP pdfmark
- \end{createImage}%
-}
-\@onlypreamble{\makePoster}
-\def\rma@PkEr@i{%
-\PackageError{rmannot}{%
- You must specify a file with an extension\MessageBreak
- of .swf, .flv, .f4v, .mp4, .m4v, .mov, .3gp,\MessageBreak
- .3g2, .mp3}{Specify one of the supported file extensions to
- embed in this annotation.\MessageBreak
- See the rmannot manual for details on supported extensions.}}
-\def\rma@PkEr@ii{%
-\PackageError{rmannot}{%
- The name `\rm@argii' has already been used. Either\MessageBreak
- you are defining the same path, or a different path\MessageBreak
- with the same name}{%
- Names must be unique to the document, choose another}}
-\def\rma@PkEr@iii#1{%
-\PackageError{rmannot}{%
- No extension supplied with this file name,\MessageBreak#1.%
- \MessageBreak Please include a file extension of\MessageBreak
- .swf, .flv, or .mp3, as appropriate}{%
- Include an extension of .swf, .flv, or .mp3}}
-\rma@input@iiidCode
-\endinput
-%%
-%% End of file `rmannot.sty'.
+%% +%% This is file `rmannot.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rmannot.dtx (with options: `copyright,package') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% rmannot.sty package, %% +%% Copyright (C) 2008--2020 D. P. Story %% +%% dpstory@acrotex.net %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either vers ion 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NeedsTeXFormat{LaTeX2e}[1997/12/01] +\ProvidesPackage{rmannot} + [2020/08/21 v2.2 Rich Media Annotations (dps)] +\RequirePackage{xkeyval} +\RequirePackage{ifpdf}[2006/02/20] +\RequirePackage{ifxetex}[2006/08/21] +\let\rm@One=1 \let\rm@Zero=0 +\ifpdf + \let\RM@action\endinput +\else + \ifxetex + \let\RM@action\endinput + \else + \let\RM@action\relax + \fi +\fi +\ifx\RM@action\endinput +\RequirePackage{eforms}[2020/12/14] +\DeclareOptionX*{} +\ProcessOptionsX\relax +\newcommand\AcroVer[2][]{} +\let\saveNamedPath\@gobbletwo +\def\rma@edefexecute#1{\edef\rm@@temp@@exp{#1}\rm@@temp@@exp} +\newcommand\makePoster[3][]{} +\define@key{rmAnnot}{width}{\def\rmAnnot@width{#1}} +\define@key{rmAnnot}{scale}{\def\rmAnnot@scale{#1}} +\let\rmAnnot@width\@empty +\define@key{rmAnnot}{height}{\def\rmAnnot@height{#1}} +\let\rmAnnot@height\@empty +\newcommand{\rmAnnot}[4][]{% + \bgroup + \setlength{\dimen@}{#2}\xdef\rm@Annot@width{\the\dimen@}% + \setlength{\dimen@}{#3}\xdef\rm@Annot@height{\the\dimen@}% + \egroup + \rma@edefexecute{\noexpand\setkeys*{rmAnnot}{#1}}% + \bgroup + \ifx\rmAnnot@width\@empty + \ifx\rmAnnot@height\@empty + \else + \setlength{\dimen@}% + {\rmAnnot@height*\ratio + {\rm@Annot@width}{\rm@Annot@height}}% + \xdef\rm@Annot@width{\the\dimen@}% + \setlength{\dimen@}{\rmAnnot@height}% + \xdef\rm@Annot@height{\the\dimen@}% + \fi + \else + \setlength{\dimen@}% + {\rmAnnot@width*\ratio + {\rm@Annot@height}{\rm@Annot@width}}% + \xdef\rm@Annot@height{\the\dimen@}% + \setlength{\dimen@}{\rmAnnot@width}% + \xdef\rm@Annot@width{\the\dimen@}% + \fi + \egroup + {\previewOn\pushButton[\CA{Distiller required}\BC{}\BG{} + \S{S}\Ff{\FfReadOnly}]{btn}{\rm@Annot@width}{\rm@Annot@height}}} +\def\setRmOptions3D#1#2{} +\PackageWarningNoLine{rmannot} + {PDF creation requires Adobe Distiller.\MessageBreak + Workflow is latex > dvips > distiller; otherwise,\MessageBreak + this package does nothing} +\fi +\RM@action % \endinput or \relax +\DeclareOptionX{use3D}{% + \def\rma@input@iiidCode{\InputIfFileExists{annot3d.def}{}{}}% + \def\rma@requirefp{\RequirePackage[nomessages]{fp}}% +} +\let\rma@input@iiidCode\relax +\let\rma@requirefp\relax +\ProcessOptionsX +\RequirePackage{graphicxsp} +\rma@requirefp +\RequirePackage{ifthen} +\newcounter{rm@Cnt} +\newif\ifrma@EmbedFile\rma@EmbedFiletrue +\newif\ifrma@EmbedVideoPlayer\rma@EmbedVideoPlayerfalse +\let\rma@isVPEmbedded\rm@Zero +\newif\ifrma@EmbedAudioPlayer\rma@EmbedAudioPlayerfalse +\let\rma@isAPEmbedded\rm@Zero +\def\rm@csarg#1#2{\expandafter#1\csname#2\endcsname} +\newcommand{\pathToSkins}[1]{\begingroup + \Hy@unicodefalse\pdfstringdef\rma@pathToSkins{#1}% + \gdef\PathToSkins{\rma@pathToSkins}% + \gdef\rma@pathToPlayers{\rma@pathToSkins/Players}\endgroup +} +\newif\ifuseWinAcrobat\useWinAcrobattrue +\define@choicekey{rmAcroVer}{win}{32,64}[32]{% + \appType{#1}\useWinAcrobattrue} +\define@key{rmAcroVer}{mac}[mac]{\useWinAcrobatfalse} +\def\appType#1{\def\@rgi{#1}\def\@tstii{64}% + \def\p@thHash{ (x86)}\ifx\@rgi\@tstii\let\p@thHash\@empty\fi +} +\def\p@thHash{ (x86)} +\newcommand{\AcroVer}[2][]{% + \def\rmDC{DC}\def\rmBeta{Beta}\def\rmArgi{#1}% + \def\AcrobatVer{#2}\ifx\rmArgi\@empty\else + \setkeys{rmAcroVer}{#1}\fi\def\@x{\string\ }% + \ifx\AcrobatVer\rmDC + \ifuseWinAcrobat + \edef\rmSkinPath{C:/Program Files\p@thHash/Adobe/Acrobat DC/% + Acrobat/Multimedia Skins}\else + \edef\rmSkinPath{/Applications/Adobe{\@x}Acrobat{\@x}DC/% + Adobe{\@x}Acrobat.app/Contents/Resources/% + Multimedia{\@x}Skins}\fi + \else\ifx\AcrobatVer\rmBeta + \ifuseWinAcrobat + \edef\rmSkinPath{C:/Program Files\p@thHash/Adobe/Acrobat Beta/% + Acrobat/Multimedia Skins}\else + \edef\rmSkinPath{/Applications/Adobe{\@x}Acrobat{\@x}Beta/% + Adobe{\@x}Acrobat.app/Contents/Resources/% + Multimedia{\@x}Skins}\fi + \else + \ifnum\AcrobatVer<9\relax + \PackageError{rmannot}{Acrobat version 9 or later + supports\MessageBreak rich multimedia annotations} + {Upgrade your Acrobat to a more recent version.}% + \else + \ifuseWinAcrobat + \ifnum\AcrobatVer<12\relax + \edef\rmSkinPath{C:/Program Files (x86)/Adobe/% + Acrobat \AcrobatVer.0/Acrobat/Multimedia Skins}% + \else + \edef\rmSkinPath{C:/Program Files (x86)/Adobe/% + Acrobat \AcrobatVer/Acrobat/Multimedia Skins}% + \fi + \else + \ifnum\AcrobatVer<12\relax + \ifnum\AcrobatVer=9\relax + \edef\rmSkinPath{/Applications/% + Adobe{\@x}Acrobat{\@x}\AcrobatVer{\@x}Pro/% + Adobe{\@x}Acrobat{\@x}Pro.app/Contents/% + MacOS/Multimedia{\@x}Skins}% + \else % ver 10 or 11 + \ifnum\AcrobatVer=10\relax\def\romanVer{X}\else + \ifnum\AcrobatVer=11\relax\def\romanVer{XI}\fi\fi + \edef\rmSkinPath{/Applications/% + Adobe{\@x}Acrobat{\@x}\romanVer{\@x}Pro/% + Adobe{\@x}Acrobat{\@x}Pro.app/Contents/% + Resources/Multimedia{\@x}Skins}% + \fi + \else + \edef\rmSkinPath{/Applications/% + Adobe{\@x}Acrobat{\@x}\AcrobatVer/% + Adobe{\@x}Acrobat.app/Contents/Resources/% + Multimedia{\@x}Skins}% + \fi + \fi\fi\fi\fi + \expandafter\pathToSkins\expandafter{\rmSkinPath}% +} +\@onlypreamble\AcroVer +\AcroVer{DC} +\newcommand{\pathToPlayers}[1]{\pdfstringdef\rma@pathToPlayers{#1}} +\newcommand{\defineRMPath}[1]{\def\rm@ctrlName{#1}% + \hyper@normalise\rm@defineURLPath} +\def\rm@defineURLPath#1{\expandafter\xdef\rm@ctrlName{#1}} +\newif\ifVideoPlayerEx\VideoPlayerExfalse +\def\rma@VideoPlayer{VideoPlayer.swf} +\newcommand{\useVideoPlayerPlus}{% + \PackageWarning{rmannot}{The \string\useVideoPlayerPlus\space + is no longer supported,\MessageBreak + will use \string\useVideoPlayX\space instead. + In the future\MessageBreak + specify \string\useVideoPlayX}% + \useVideoPlayerX +} +\newcommand{\useVideoPlayerX}{\VideoPlayerExtrue + \def\rma@VideoPlayer{VideoPlayerX.swf}% + \let\useVideoPlayerPlus\relax +} +\@onlypreamble\useVideoPlayerPlus +\@onlypreamble\useVideoPlayerX +\def\mmPlay{"multimedia_play"} +\def\mmPause{"multimedia_pause"} +\def\mmRewind{"multimedia_rewind"} +\def\mmNextCuePoint{"multimedia_nextCuePoint"} +\def\mmPrevCuePoint{"multimedia_prevCuePoint"} +\def\mmSeek{"multimedia_seek"} +\def\mmMute{"multimedia_mute"} +\def\mmVolume{"multimedia_volume"} +\def\mmSource{"multimedia_setSource"} +\def\mmSkin{"multimedia_setSkin"} +\def\mmSkinColor{"multimedia_setSkinColor"} +\def\mmSeekCuePoint{"multimedia_seekCuePoint"} +\def\mmSkinAlpha{"multimedia_setSkinAlpha"} +\def\mmGetSource{"multimedia_getSource"} +\def\mmUseLocal{"multimedia_useLocal"} +\def\mmGetMetaData{"multimedia_getMetdata"} +\def\mmGetVideoState{"multimedia_getVideoState"} +\def\mmSetScaleMode{"multimedia_setScaleMode"} +\def\mmGetVersion{"multimedia_getVersion"} +\def\mmSetStageColor{"multimedia_setStageColor"} +\def\mmIsLooping{"multimedia_isLooping"} +\def\mmSkinAutoHide{"multimedia_skinAutoHide"} +\def\mmShowLoopButton{"multimedia_showLoopButton"} +\def\ps@mark{[\space} +\def\rma@edefexecute#1{\edef\rm@@temp@@exp{#1}\rm@@temp@@exp} +\def\@MXV@newlabel#1#2{{% + \rm@csarg\xdef{#1}{#2}}}% +\def\@MXV@getlabelvalue#1{% + \rm@csarg\ifx{#1}\relax% + undefined% + \else% + \csname#1\endcsname% + \fi% +}% +\def\@MXV@labeltoaux#1#2{% + \@bsphack\protected@write\@auxout{}{% + \string\@MXV@newlabel{#1}{#2}% + \string\@MXV@newlabel{@#1@}{\@MXV@getlabelvalue{#1}}% + }\@esphack% + \ifthenelse{% + \equal{\@MXV@getlabelvalue{#1}}{undefined}\or% + %double check that the value hasn't changed + \not\equal{\@MXV@getlabelvalue{#1}}{\@MXV@getlabelvalue{@#1@}}% + }{% + \ifthenelse{\isundefined{\@MXV@warning}}{% + \gdef\@MXV@warning{}% + \AtEndDocument{% + \PackageWarningNoLine{rmannot}{% + @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\MessageBreak + @@ Rerun to get object references right! @@\MessageBreak + @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}% + }% + }{}% + }{}% +}% +\def\RefObjRm#1{{\@MXV@getlabelvalue{rmAnnot_#1}}} +\InputIfFileExists{rmannot.cfg}{}{} +\def\rma@embed@mpiii@Poster{% + \embedEPS[hiresbb]{ramp3poster}{ramp3poster}% + \global\let\rma@embed@mpiii@Poster\relax +} +\def\audCtrlWd{613bp}\let\cntrlbrWd\audCtrlWd +\def\audCtrlHt{66bp}\let\cntrlbrHt\audCtrlHt +\def\rma@set@mpiiiposter{% + \begin{sp@createImage}{\bboxOf{ramp3poster}}{nramp3poster}% + \rma@invisible + \ps@mark{ramp3poster} /SP pdfmark + \end{sp@createImage}% + \global\let\rma@set@mpiiiposter\relax +} +\newcommand{\saveNamedPath}[2][]{% + \edef\rm@argii{#2}\@ifundefined{rma@@#2}% + {\gdef\rm@thisPath{rma@@#2}}{\rma@PkEr@ii}% + \gdef\rm@thisMimeType{#1}% + \hyper@normalise\rm@saveNamedPath +} +\def\rm@saveNamedPath#1{% + \rm@csarg\gdef{\rm@thisPath}{#1}% + \rm@csarg\xdef{rma@mt@\rm@argii}{\rm@thisMimeType}% + \rma@edefexecute{\noexpand\filename@parse{#1}}% + \@ifundefined{filename@ext}{\rma@PkEr@iii{#1}}{}% + \rma@edefexecute{\noexpand + \uppercase{\noexpand\def\noexpand\rma@tempi + {\filename@ext}}} + \rm@csarg\xdef{\rm@argii FileName}{% + \filename@base.\filename@ext}% + \rm@csarg\xdef{\rm@argii URL}{% + \filename@area\filename@base.\filename@ext}% + \ifx\rma@tempi\rma@rmAnnot@type@mpiii\rma@embed@mpiii@Poster\fi +} +\def\rma@useNamedPath#1{\@nameuse{rma@@#1}} +\def\rma@resource#1{\csname#1FileName\endcsname} +\def\rma@urlresource#1{\csname#1URL\endcsname} +\expandafter\def\expandafter\makeJSspecials\expandafter{\makeJSspecials + \let\Name\rma@resource\let\urlName\rma@urlresource +} +\let\rmaName\rma@resource +\def\rmaNameP(#1){\rma@resource{#1}} +\let\rmaUrlName\rma@urlresource +\def\rmaUrlNameP(#1){\rma@urlresource{#1}} +\def\getargsiii#1#2#3{\def\aeb@argi{#1}\def\aeb@argii{#2}% + \def\aeb@argiii{#3}} +\@tfor\rma@data:={{uiiid}{U3D}{model/u3d}}{{prc}{PRC}{model/prc}}% + {{swf}{SWF}{application/x-shockwave-flash}}% + {{flv}{FLV}{video/x-flv}}{{fiv}{F4V}{video/mp4}}% + {{mpiv}{MP4}{video/mp4}}{{mivV}{M4V}{video/x-m4v}}% + {{mov}{MOV}{video/quicktime}}{{iiiGP}{3GP}{video/3gpp}}% + {{iiiGii}{3G2}{video/3gpp2}}{{mpiii}{MP3}{audio/x-mp3}}\do{% + \expandafter\getargsiii\rma@data + \rm@csarg\edef{rma@rmAnnot@type@\aeb@argi}{\aeb@argii} + \rm@csarg\edef{rma@mimetype@\aeb@argi}{\aeb@argiii} +} +\def\rm@SkinsAndPlayerPaths{% + \saveNamedPath{VideoPlayer}{\PathToSkins/Players/\rma@VideoPlayer}% + \saveNamedPath{AudioPlayer}{\PathToSkins/Players/AudioPlayer.swf}% + \saveNamedPath{skin1}{\PathToSkins/SkinOverAllNoFullNoCaption.swf}% + \saveNamedPath{all}{\PathToSkins/SkinOverAllNoFullNoCaption.swf}% + \saveNamedPath{skin2}% + {\PathToSkins/SkinOverAllNoVolNoCaptionNoFull.swf}% + \saveNamedPath{skin3}{\PathToSkins/SkinOverPlay.swf}% + \saveNamedPath{skin4}{\PathToSkins/SkinOverPlayMute.swf}% + \saveNamedPath{skin5}{\PathToSkins/SkinOverPlaySeekMute.swf}% + \saveNamedPath{skin6}{\PathToSkins/SkinOverPlaySeekStop.swf}% + \saveNamedPath{skin7}{\PathToSkins/SkinOverPlayStopSeekMuteVol.swf}% +} +\AtBeginDocument{\rm@SkinsAndPlayerPaths} +\@namedef{noneFileName}{} +\@namedef{noneURL}{} +\@namedef{noChangeFileName}{noChange} +\@namedef{noChange}{noChange} +\def\rma@ANT{rmAssetsNameTree-\therm@Cnt} +\define@key{rmAnnot}{name}[aebRM\therm@Cnt]{\def\rma@Annot@name{#1}} +\define@choicekey+{rmAnnot}{enabled}[\val\nr]% + {onclick,pageopen,pagevisible}[onclick]{% + \ifcase\nr\relax + \def\rma@rmAnnot@enabled{/XA}\or + \def\rma@rmAnnot@enabled{/PO}\or + \def\rma@rmAnnot@enabled{/PV}\fi +}{\PackageWarning{rmannot}{Bad choice for enabled, permissible values + are onclick, pageopen and pagevisible. Try again}} +\define@choicekey+{rmAnnot}{deactivated}[\val\nr]% + {onclick,pageclose,pageinvisible}[onclick]{% + \ifcase\nr\relax + \def\rma@rmAnnot@deactivated{/XD}\or + \def\rma@rmAnnot@deactivated{/PC}\or + \def\rma@rmAnnot@deactivated{/PI}\fi +}{\PackageWarning{rmannot}{Bad choice for deactivated, permissible + values are onclick, pageclose and pageinvisible. Try again}} +\define@boolkey{rmAnnot}{windowed}[true]{} +\define@key{winDimPos}{width}{\def\rma@winDimPos@width{#1}} + \define@key{winDimPosWidth}{default}[288]% + {\def\rma@winDimPosWidth@def{#1}} + \define@key{winDimPosWidth}{max}[576]% + {\def\rma@winDimPosWidth@max{#1}} + \define@key{winDimPosWidth}{min}[72]% + {\def\rma@winDimPosWidth@min{#1}} +\define@key{winDimPos}{height}{\def\rma@winDimPos@height{#1}} + \define@key{winDimPosHeight}{default}[216]% + {\def\rma@winDimPosHeight@def{#1}} + \define@key{winDimPosHeight}{max}[432]% + {\def\rma@winDimPosHeight@max{#1}} + \define@key{winDimPosHeight}{min}[72]% + {\def\rma@winDimPosHeight@min{#1}} +\define@key{winDimPos}{position}{\def\rma@winDimPos@position{#1}} + \define@choicekey+{winDimPosPos}{halign}[\val\nr]% + {near,center,far}[far]{% + \ifcase\nr\relax + \def\rma@winDimPosPos@halign{/Near}\or + \def\rma@winDimPosPos@halign{/Center}\or + \def\rma@winDimPosPos@halign{/Far}\fi + }{} + \define@choicekey+{winDimPosPos}{valign}[\val\nr]% + {near,center,far}[near]{% + \ifcase\nr\relax + \def\rma@winDimPosPos@valign{/Near}\or + \def\rma@winDimPosPos@valign{/Center}\or + \def\rma@winDimPosPos@valign{/Far}\fi + }{} + \define@key{winDimPosPos}{hoffset}[18]% + {\def\rma@winDimPosPos@hoffset{#1}} + \define@key{winDimPosPos}{voffset}[18]% + {\def\rma@winDimPosPos@voffset{#1}} +\providecommand{\setWindowDimPos}[1]{% + \setkeys{winDimPos}{#1}% + \edef\temp@expand@sets{% + \noexpand\setkeys{winDimPosWidth}{\rma@winDimPos@width}% + \noexpand\setkeys{winDimPosHeight}{\rma@winDimPos@height}% + \noexpand\setkeys{winDimPosPos}{\rma@winDimPos@position}% + }\temp@expand@sets +} +\providecommand{\resetWindowDimPos}{% + \setWindowDimPos{width={default,max,min},height={default,max,min}, + position={halign,valign,hoffset,voffset}}% +} +\resetWindowDimPos +\define@boolkey{rmAnnot}{url}[true]{} +\def\setRmOptions3D#1#2{\rm@csarg\xdef{#1_3DOPTS}{#2}} +\define@choicekey+{rmAnnot}{borderwidth}[\val\nr]% + {none,thin,medium,thick}[none]{% + \ifcase\nr\relax + \def\rma@rmAnnot@borderwidth{0}\or + \def\rma@rmAnnot@borderwidth{1}\or + \def\rma@rmAnnot@borderwidth{3}\or + \def\rma@rmAnnot@borderwidth{5}\fi +}{\PackageWarning{rmannot}{Bad choice for borderwidth, permissible + values are none,thin,medium,and thick. Try again}} +\define@key{rmAnnot}{poster}[]{\def\rma@rmAnnot@poster{#1}} +\define@key{rmAnnot}{posternote}[AcroTeX \rma@poster@descrip]% + {\def\rma@posternote{#1}} +\define@boolkey{rmAnnot}{defaultposter}[true]{} +\define@key{rmAnnot}{invisible}[]% + {\def\rma@invisible{\ps@mark/ca 0/SetTransparency pdfmark }} +\let\rma@invisible\@empty +\define@boolkey{rmAnnot}{transparentBG}[true]{% + \ifKV@rmAnnot@transparentBG + \def\rma@rmAnnot@transparent{true}\else + \def\rma@rmAnnot@transparent{false}\fi +} +\define@key{rmAnnot}{width}{\def\rmAnnot@width{#1}} +\let\rmAnnot@width\@empty +\define@key{rmAnnot}{height}{\def\rmAnnot@height{#1}} +\let\rmAnnot@height\@empty +\define@key{rmAnnot}{scale}{\def\rmAnnot@scale{#1}} +\let\rmAnnot@scale\@empty +\define@boolkey{rmAnnot}{toolbar}[true]{% + \ifKV@rmAnnot@toolbar + \def\rma@rmAnnot@toolbar{true}\else + \def\rma@rmAnnot@toolbar{false}\fi +} +\define@boolkey{rmAnnot}{modeltree}[true]{% + \ifKV@rmAnnot@modeltree + \def\rma@rmAnnot@modeltree{true}\else + \def\rma@rmAnnot@modeltree{false}\fi +} +\define@boolkey{rmAnnot}{passcontext}[true]{% + \ifKV@rmAnnot@passcontext + \def\rma@rmAnnot@PassContextClick{true}\else + \def\rma@rmAnnot@PassContextClick{false}\fi +} +\define@choicekey+{rmAnnot}{skin}[\val\nr]% + {none,all,skin1,skin2,skin3,skin4,skin5,skin6,skin7}[skin1]{% + \edef\rma@skinName{#1}% 2011/10/18 changed from number to name + \ifcase\nr\relax + \let\rma@rmAnnot@Skin\@empty\or % none + \def\rma@skinName{skin1}% + \def\rma@rmAnnot@Skin{SkinOverAllNoFullNoCaption.swf}\or % all + \def\rma@rmAnnot@Skin{SkinOverAllNoFullNoCaption.swf}\or % 1 + \def\rma@rmAnnot@Skin{SkinOverAllNoVolNoCaptionNoFull.swf}\or % 2 + \def\rma@rmAnnot@Skin{SkinOverPlay.swf}\or % 3 + \def\rma@rmAnnot@Skin{SkinOverPlayMute.swf}\or % 4 + \def\rma@rmAnnot@Skin{SkinOverPlaySeekMute.swf}\or % 5 + \def\rma@rmAnnot@Skin{SkinOverPlaySeekStop.swf}\or % 6 + \def\rma@rmAnnot@Skin{SkinOverPlayStopSeekMuteVol.swf}\fi % 7 +}{% + \@ifundefined{rma@@#1}{% + \PackageWarning{rmannot}{Bad choice for 'skin,' permissible + values are none, all, skin1--skin7, or a custom skin already + defined. Try again}}{% + \PackageWarning{rmannot}{Recording new skin, '#1'}% + \edef\rma@skinName{#1}% + \edef\rma@rmAnnot@Skin{\csname#1FileName\endcsname}% + \rm@csarg\let{embedSkin#1}\rm@One + }% +} +\@tfor\rma@arg:={skin0}{skin1}{skin2}{skin3}{skin4}% + {skin5}{skin6}{skin7}\do{% + \rm@csarg\let{embedSkin\rma@arg}\rm@One +} +\define@boolkey{rmAnnot}{skinAutoHide}[true]{% + \ifKV@rmAnnot@skinAutoHide + \def\rma@skinAutoHide{true}\else + \def\rma@skinAutoHide{false}\fi +} +\define@key{rmAnnot}{skinBGColor}[0x5F5F5F]% + {\def\rma@skinBGColor{#1}} +\define@key{rmAnnot}{skinBGAlpha}[0.75]% + {\def\rma@skinBGAlpha{#1}} +\define@key{rmAnnot}{volume}[1.00]% + {\def\rma@rmAnnot@volume{#1}} +\define@key{rmAnnot}{speed}[1]{% + \def\rma@rmAnnot@speed{#1}% +} +\define@key{rmAnnot}{playcount}[-1]{% + \def\rma@rmAnnot@playcount{#1}% +} +\newtoks\rma@toks\rma@toks={} +\newcount\rma@nResources +\newif\ifrma@isiiid\rma@isiiidfalse +\define@key{rmAnnot}{resources}[]{\rma@toks={}\rma@nResources=0\relax + \ifrma@isiiid\let\rma@next\relax + \else\def\rma@next{\rma@proc@resources{#1}}\fi\rma@next +} +\newcommand{\rma@proc@resources}[1]{% + \def\rma@rmAnnot@resources{#1}% + \ifx\rma@rmAnnot@resources\@empty\let\rma@addResources\@empty + \let\rma@addFileSpecs\@empty\else + \@for\rma@arg:=\rma@rmAnnot@resources\do{% + \advance\rma@nResources1\relax + \rma@edefexecute{\noexpand + \filename@parse{\rma@useNamedPath{\rma@arg}}}% + \@ifundefined{filename@ext}{% + \rma@PkEr@iii{\rma@useNamedPath{\rma@arg}}}{}% + \edef\rma@fs@expand{rmFileStrm\rma@arg}% + \@ifundefined{\rma@fs@expand}{% + \rm@csarg\xdef{\rma@fs@expand}% + {rmfstream\therm@Cnt-\the\rma@nResources}% + \def\rma@embed{1}}{\def\rma@embed{0}}% + \edef\rma@tmp@exp{\the\rma@toks% + \noexpand\\{\the\rma@nResources}% + {\filename@area}{\filename@base.\filename@ext}% + {\rma@embed}{\csname\rma@fs@expand\endcsname}% + {\rm@csarg\noexpand{rma@mt@\rma@arg}}}% + \rma@toks=\expandafter{\rma@tmp@exp}% + }% do + \let\\\rm@appendNameTree + \expandafter\xdef\expandafter\rma@addResources% + \expandafter{\the\rma@toks}% + \let\\\rm@appendFileSpecs + \expandafter\xdef\expandafter\rma@addFileSpecs% + \expandafter{\the\rma@toks}% + \fi +} +\def\rm@appendNameTree#1#2#3#4#5#6{% + \ps@mark{\rma@ANT} (#3) /APPEND pdfmark^^J% + \ps@mark{\rma@ANT} {rmfilespec\therm@Cnt-#1}/APPEND pdfmark^^J% +} +\def\rm@appendFileSpecs#1#2#3#4#5#6{% + \ps@mark/_objdef {rmfilespec\therm@Cnt-#1}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmfilespec\noexpand\therm@Cnt-#1} <<% + /F(#3)% + /UF (#3)% + /EF <</F {#5}>>% + /Type/Filespec% + >>/PUT pdfmark^^J% + \if#41 + \ps@mark/_objdef {#5} /type/stream/OBJ pdfmark^^J% + \ps@mark{#5} (#2#3) (r) file /PUT pdfmark^^J% + \ps@mark{#5}<<% + /Type/EmbeddedFile% +\ifx#6\@empty\else + /Subtype(#6)% +\fi + >>/PUT pdfmark^^J% + \ps@mark{#5} /CLOSE pdfmark^^J% + \fi +} +\define@key{rmAnnot}{flashvars}[]{% + \def\rma@rmAnnot@flashvars{#1}% +} +\define@key{rmAnnot}{cuepoints}[]{% + \edef\rma@rmAnnot@cuepoints{#1}% + \ifx\rma@rmAnnot@cuepoints\@empty\else + \rma@nResources=0\relax% dps + \def\rma@array@hold{}\def\rma@dict@hold{}% + \@for\arg:=\rma@rmAnnot@cuepoints\do{% + \advance\rma@nResources1\relax + \rma@edefexecute{\noexpand\setkeys{rmCuePt}{\arg}}% + % need to build the array of indirect references, + \edef\rma@array@hold{\rma@array@hold\space + {rmCuePoints\therm@Cnt-\the\rma@nResources}}% + % and the code for the cue point dictionary + \edef\rma@dict@hold{\rma@dict@hold + \ps@mark/_objdef % + {rmCuePoints\therm@Cnt-\the\rma@nResources}% + /type/dict/OBJ pdfmark^^J% + \ps@mark{rmCuePoints\therm@Cnt-\the\rma@nResources} << + /Type/CuePoint +\ifx\rma@rmCuePt@name\@empty + /Name (RMACP \the\rma@nResources) +\else + /Name (\rma@rmCuePt@name) +\fi + /Subtype \rma@rmCuePt@type + /Time \rma@rmCuePt@time +\ifx\rma@rmCuePt@action\@empty\else + /A << /Type/Action\JS{\rma@rmCuePt@action} >> +\fi + >> /PUT pdfmark^^J% + }% + }% end of \@for + \fi +} +\define@choicekey+{rmCuePt}{type}[\val\nr]% + {event,nav}[nav]{% + \ifcase\nr\relax + \def\rma@rmCuePt@type{/Event}\or + \def\rma@rmCuePt@type{/Navigation}\fi +}{\PackageWarning{rmannot}{Bad choice for type, permissible values + are event and nav. Try again}} +\define@key{rmCuePt}{name}[]{% + \def\rma@rmCuePt@name{#1}% +} +\define@key{rmCuePt}{time}[0]{% + \def\rma@rmCuePt@time{#1}% +} +\define@key{rmCuePt}{action}[]{% + \def\rma@rmCuePt@action{#1}% +} +\setkeys{rmAnnot}{name,url=false,enabled,deactivated,borderwidth,% + windowed=false,poster,posternote,skin,skinAutoHide,skinBGColor,% + skinBGAlpha,volume,speed,playcount,resources,flashvars,% + transparentBG=false,passcontext=false,cuepoints,toolbar,% + modeltree=false} +\def\rma@recordVideoPlayer{% + \ifrma@EmbedVideoPlayer + \global\let\rma@isVPEmbedded\rm@One\global\rma@EmbedVideoPlayerfalse + \else + \if\rma@isVPEmbedded\rm@Zero + \global\rma@EmbedVideoPlayertrue\fi + \fi +} +\def\rma@recordAudioPlayer{% + \ifrma@EmbedAudioPlayer + \global\let\rma@isAPEmbedded\rm@One\global\rma@EmbedAudioPlayerfalse + \else + \if\rma@isAPEmbedded\rm@Zero + \global\rma@EmbedAudioPlayertrue\fi + \ifx\rma@rmAnnot@poster\@empty\rma@set@mpiiiposter\fi + \fi +} +\newif\if@FndSuppExt \@FndSuppExtfalse +\newcommand{\rmAnnot}[4][]{\begingroup + \PMPV{#4}% + \let\Name\rma@resource + \let\urlName\rma@urlresource + \makeJSspecials + \let\rma@addResources\@empty\let\rma@addFileSpecs\@empty + \bgroup + \setlength{\dimen@}{#2}\xdef\rm@Annot@width{\the\dimen@}% + \setlength{\dimen@}{#3}\xdef\rm@Annot@height{\the\dimen@}% + \egroup + \stepcounter{rm@Cnt}% + \rma@edefexecute{\noexpand\filename@parse{\rma@useNamedPath{#4}}}% + \edef\rma@fs@expand{rmFileStrm#4}\@ifundefined{\rma@fs@expand}{% + \rm@csarg\xdef{\rma@fs@expand}% + {rmfstream\therm@Cnt}\global\rma@EmbedFiletrue}% + {\global\rma@EmbedFilefalse}% + \edef\rma@thisfilepath{\filename@area}% + \edef\rma@basefilename{\filename@base}% + \edef\rma@extension{\filename@ext}% + \rma@edefexecute{\noexpand\uppercase{\noexpand + \def\noexpand\rma@tempi{\rma@extension}}}% + \ifx\rma@tempi\rma@rmAnnot@type@uiiid\rma@isiiidtrue + \else\ifx\rma@tempi\rma@rmAnnot@type@prc\rma@isiiidtrue + \else\rma@isiiidfalse + \fi\fi + \rma@edefexecute{\noexpand\setkeys{rmAnnot}{#1}}% + \bgroup + \ifx\rmAnnot@width\@empty + \ifx\rmAnnot@height\@empty + \ifx\rmAnnot@scale\@empty\else + \setlength{\dimen@}% + {\rm@Annot@height*\real{\rmAnnot@scale}}% + \xdef\rm@Annot@height{\the\dimen@}% + \setlength{\dimen@}% + {\rm@Annot@width*\real{\rmAnnot@scale}}% + \xdef\rm@Annot@width{\the\dimen@}% + \fi + \else + \setlength{\dimen@}% + {\rmAnnot@height*\ratio + {\rm@Annot@width}{\rm@Annot@height}}% + \xdef\rm@Annot@width{\the\dimen@}% + \setlength{\dimen@}{\rmAnnot@height}% + \xdef\rm@Annot@height{\the\dimen@}% + \fi + \else + \setlength{\dimen@}% + {\rmAnnot@width*\ratio + {\rm@Annot@height}{\rm@Annot@width}}% + \xdef\rm@Annot@height{\the\dimen@}% + \setlength{\dimen@}{\rmAnnot@width}% + \xdef\rm@Annot@width{\the\dimen@}% + \fi + \egroup +\ifx\rma@input@iiidCode\relax\else +\ifrma@isiiid + \@ifundefined{\rma@Annot@name_3DOPTS}{% + }{% + \def\rma@Instances{}\def\rma@appendToNameTree{}% + \rma@edefexecute{\noexpand\setkeys{rm3DOptsTopLevel}% + {\@nameuse{\rma@Annot@name_3DOPTS}}}% + \edef\additional@Instances{\rma@Instances}% + \edef\rma@addResources{\rma@appendToNameTree}% + \ifx\rma@rmAnnot@iiiDjs\@empty\else + \def\@MXV@jscriptiiid{}% + \literalps@out{% + \ps@mark/_objdef {jscriptiiid\therm@Cnt}% + /type/array/OBJ pdfmark^^J% + \rmiiid@addToScriptsArray + \rma@addFileSpecs + }% + \edef\@MXV@jscriptiiid{% + /Scripts {jscriptiiid\therm@Cnt}% + }% + \fi + \@MXV@buildva% + }% +\fi\fi + \rma@edefexecute{\noexpand\uppercase{\noexpand + \def\noexpand\rma@tempi{\rma@extension}}}% +\ifrma@isiiid + \def\rma@poster@descrip{3D}% + \def\rma@RMCSubtype{/3D}% + \ifx\rma@tempi\rma@rmAnnot@type@uiiid + \def\rma@rmAnnot@type{U3D}% + \edef\rma@mimeType{\rma@mimetype@uiiid}% + \else + \ifx\rma@tempi\rma@rmAnnot@type@prc + \def\rma@rmAnnot@type{PRC}% + \edef\rma@mimeType{\rma@mimetype@prc}% + \fi\fi +\else + \def\rma@poster@descrip{Flash}% + \ifx\rma@tempi\rma@rmAnnot@type@swf + \def\rma@rmAnnot@type{SWF}\edef\rma@mimeType{\rma@mimetype@swf}% + \def\rma@RMCSubtype{/Flash}% + \else % if not flash + \def\rma@poster@descrip{Video}\def\rma@rmAnnot@type{FLV}% + \@FndSuppExtfalse + \@tfor\rma@type:={flv}{fiv}{mpiv}{mivV}{mov}{iiiGP}{iiiGii}\do{% + \expandafter\ifx\expandafter\rma@tempi\csname% + rma@rmAnnot@type@\rma@type\endcsname + \@FndSuppExttrue + \edef\rma@mimeType{\csname% + rma@mimetype@\rma@type\endcsname}% + \rma@recordVideoPlayer\@break@tfor + \fi + }% + \if@FndSuppExt + \def\rma@RMCSubtype{/Video}% + \xdef\FileStrmVideoPlayer{rmVideoPlayer\therm@Cnt}% + \else % if not video + \ifx\rma@tempi\rma@rmAnnot@type@mpiii + \def\rma@rmAnnot@type{MP3}\edef\rma@mimeType{\rma@mimetype@mpiii}% + \def\rma@poster@descrip{MP3}\def\rma@RMCSubtype{/Sound}% + \xdef\FileStrmAudioPlayer{rmAudioPlayer\therm@Cnt}% + \let\rma@rmAnnot@resources\@empty + \rma@recordAudioPlayer + \else % not mp3 + \rma@PkEr@i +\fi\fi\fi\fi + \def\rma@thisfileName{\rma@basefilename.\rma@extension}% + \def\rma@fullpath{\rma@thisfilepath\rma@thisfileName}% + \ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv + \let\rma@rmAnnot@flashvars\@empty\fi + \ifx\rma@rmAnnot@type\rma@rmAnnot@type@mpiii + \let\rma@rmAnnot@flashvars\@empty\fi +\ifx\rma@rmAnnot@poster\@empty + \ifKV@rmAnnot@defaultposter + \Gin@defaultbp\this@width\rm@Annot@width + \Gin@defaultbp\this@height\rm@Annot@height + \ifdim\rm@Annot@width < \rm@Annot@height + \edef\calc@prop{\this@width}\else + \edef\calc@prop{\this@height}\fi + \def\this@bbox{0 0 \this@width\space\this@height}% + \begin{sp@createImage}{\this@bbox}{rmAP@#4@\therm@Cnt}% + \rma@invisible + \rma@psgraphics@poster + \end{sp@createImage}% + \def\rma@rmAnnot@poster{rmAP@#4@\therm@Cnt}% +\else + \ifx\rma@rmAnnot@type\rma@rmAnnot@type@mpiii + \def\rma@rmAnnot@poster{nramp3poster}% + \else + \Gin@defaultbp\this@width\rm@Annot@width + \Gin@defaultbp\this@height\rm@Annot@height + \ifdim\rm@Annot@width < \rm@Annot@height + \edef\calc@prop{\this@width}\else + \edef\calc@prop{\this@height}\fi + \def\this@bbox{0 0 \this@width\space\this@height}% + \begin{sp@createImage}{\this@bbox}{rmAP@#4@\therm@Cnt}% + \rma@invisible + \rma@psgraphics@poster + \end{sp@createImage}% + \def\rma@rmAnnot@poster{rmAP@#4@\therm@Cnt}% + \fi + \fi +\fi + \pdf@rect{\Bbox{\rm@Annot@width}{\rm@Annot@height}}% + \@MXV@newlabel{rmAnnot_\rma@Annot@name}{rmAnnot\therm@Cnt}% + \@MXV@labeltoaux{rmAnnot_\rma@Annot@name}{rmAnnot\therm@Cnt}% + \literalps@out{% + \ps@mark/_objdef {rmAnnot\therm@Cnt}% + /Type/Annot% + /Subtype/RichMedia% + /NM (\rma@Annot@name)% % Annotation name +\ifx\rma@rmAnnot@poster\@empty\else + /AP <</N {\rma@rmAnnot@poster}>>% % poster appearance +\fi + /F 68% % Annotation flags + /P {ThisPage}% % Parent + /Border [ 0 0 \rma@rmAnnot@borderwidth ]% Border + /BS <</Type/Border% % Border Style dictionary + /W \rma@rmAnnot@borderwidth% % Width + /S/S% % Border style (Solid) + >>% + /RichMediaContent {rmContent\therm@Cnt}% + /RichMediaSettings {rmSettings\therm@Cnt} + H.B /ANN pdfmark^^J% + \ps@mark/_objdef {rmContent\therm@Cnt}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmContent\therm@Cnt} <<% + /Type/RichMediaContent% +\ifrma@isiiid + /Subtype/3D% +\ifx\@MXV@varray\@empty\else + /Views [\@MXV@varray]% +\fi\fi + /Configurations [{rmConfig\therm@Cnt}]% + /Assets {rmAssets\therm@Cnt}% + >>/PUT pdfmark^^J% + \ps@mark/_objdef {rmConfig\therm@Cnt}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmConfig\therm@Cnt} <<% + /Type/RichMediaConfiguration% + /Name (RMConfig\therm@Cnt)% + /Subtype\rma@RMCSubtype% + /Instances {rmInstances\therm@Cnt}% + >> /PUT pdfmark^^J% + \ps@mark/_objdef {rmInstances\therm@Cnt}/type/array/OBJ pdfmark^^J% +\ifrma@isiiid + \ps@mark{rmInstances\therm@Cnt} {rmInstance\therm@Cnt}% + /APPEND pdfmark^^J% + \additional@Instances +\else +\ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv + \ps@mark{rmInstances\therm@Cnt} {rmVideoPlayer\therm@Cnt}% + /APPEND pdfmark^^J% +\else\ifx\rma@rmAnnot@type\rma@rmAnnot@type@swf + \ps@mark{rmInstances\therm@Cnt} {rmInstance\therm@Cnt}% + /APPEND pdfmark^^J% +\else + \ps@mark{rmInstances\therm@Cnt} {rmAudioPlayer\therm@Cnt}% + /APPEND pdfmark^^J% +\fi\fi\fi + \ps@mark/_objdef {rmAssets\therm@Cnt}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmAssets\therm@Cnt} <<% + /Names {\rma@ANT}>>/PUT pdfmark^^J% + \ps@mark/_objdef {\rma@ANT}/type/array/OBJ pdfmark^^J% +\ifrma@isiiid + \ps@mark{\rma@ANT} (\rma@thisfileName) /APPEND pdfmark^^J% + \ps@mark{\rma@ANT} {rmfilespec\therm@Cnt} /APPEND pdfmark^^J% + \rma@addResources +\else +\ifx\rma@rmAnnot@type\rma@rmAnnot@type@swf + \ifKV@rmAnnot@url\else + \ps@mark{\rma@ANT} (\rma@thisfileName)/APPEND pdfmark^^J% + \ps@mark{\rma@ANT} {rmfilespec\therm@Cnt}/APPEND pdfmark^^J% + \rma@addResources + \fi +\else\ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv + \ifKV@rmAnnot@url\else + \ps@mark{\rma@ANT} (\rma@thisfileName)/APPEND pdfmark^^J% + \ps@mark{\rma@ANT} {rmfilespec\therm@Cnt}/APPEND pdfmark^^J% + \ifVideoPlayerEx\rma@addResources\fi + \fi + \ifx\rma@rmAnnot@Skin\@empty\else + \ps@mark{\rma@ANT} (\rma@rmAnnot@Skin)/APPEND pdfmark^^J% + \ps@mark{\rma@ANT} {rmfilespecSkin\rma@skinName}% + /APPEND pdfmark^^J% + \fi + \ps@mark{\rma@ANT} (\rma@VideoPlayer)/APPEND pdfmark^^J% + \ps@mark{\rma@ANT} {rmfilespecVP}/APPEND pdfmark^^J% +\else + \ps@mark{\rma@ANT} (AudioPlayer.swf)/APPEND pdfmark^^J% + \ps@mark{\rma@ANT} {rmfilespecAP}/APPEND pdfmark^^J% + \ps@mark{\rma@ANT} (\rma@thisfileName)/APPEND pdfmark^^J% + \ps@mark{\rma@ANT} {rmfilespec\therm@Cnt}/APPEND pdfmark^^J% +\fi\fi\fi +\ifrma@isiiid + \ps@mark/_objdef {rmInstance\therm@Cnt}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmInstance\therm@Cnt}% +\else +\ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv + \ps@mark/_objdef {rmVideoPlayer\therm@Cnt}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmVideoPlayer\therm@Cnt}% +\else\ifx\rma@rmAnnot@type\rma@rmAnnot@type@swf + \ps@mark/_objdef {rmInstance\therm@Cnt}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmInstance\therm@Cnt}% +\else + \ps@mark/_objdef {rmAudioPlayer\therm@Cnt}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmAudioPlayer\therm@Cnt}% +\fi\fi\fi + <<% + /Type/RichMediaInstance% +\ifrma@isiiid + /Subtype/3D% + /Asset {rmfilespec\therm@Cnt}% +\else + /Subtype/Flash% +\ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv + /Asset {rmfilespecVP}% +\else\ifx\rma@rmAnnot@type\rma@rmAnnot@type@swf + /Asset {rmfilespec\therm@Cnt}% +\else + /Asset {rmfilespecAP}% +\fi\fi\fi +\ifrma@isiiid\else + /Params {rmParams\therm@Cnt}% +\fi + >> /PUT pdfmark^^J% + \ps@mark/_objdef {rmParams\therm@Cnt}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmParams\therm@Cnt} <<% + /Type/RichMediaParams% +\ifrma@isiiid\else +\ifx\rma@rmAnnot@resources\@empty + /Binding/Background% +\else + /Binding/Foreground% +\fi\fi +\ifrma@isiiid\else +\ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv + \ifKV@rmAnnot@url + /FlashVars (source=\rma@fullpath&% + \else + /FlashVars (source=\rma@thisfileName&% + \fi + \ifx\rma@rmAnnot@Skin\@empty\else + skin=\rma@rmAnnot@Skin&% + \fi + skinAutoHide=\rma@skinAutoHide&% + skinBackgroundColor=\rma@skinBGColor&% + skinBackgroundAlpha=\rma@skinBGAlpha&% + volume=\rma@rmAnnot@volume) +\ifx\rma@rmAnnot@cuepoints\@empty\else + /CuePoints [\rma@array@hold]% +\fi +\else\ifx\rma@rmAnnot@type\rma@rmAnnot@type@swf + \ifx\rma@rmAnnot@flashvars\@empty\else + /FlashVars (\rma@rmAnnot@flashvars)% + \fi +\else + /FlashVars (source=\ifKV@rmAnnot@url\rma@fullpath\else + \rma@thisfileName\fi&autoPlay=true&% + volume=\rma@rmAnnot@volume)% +\fi\fi\fi + >> /PUT pdfmark^^J% + \ps@mark/_objdef {rmSettings\therm@Cnt}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmSettings\therm@Cnt} <<% + /Type/RichMediaSettings% + /Activation <<% + /Type/RichMediaActivation% + /Condition\rma@rmAnnot@enabled + /Configuration {rmConfig\therm@Cnt}% +\ifrma@isiiid + /Animation% + <<% + /Type/RichMediaAnimation% + /Subtype/Linear% + /Speed \rma@rmAnnot@speed + /PlayCount \rma@rmAnnot@playcount + >>% +\ifx\@MXV@defaultview\@empty\else + /View \@MXV@defaultview +\fi +\ifx\@MXV@jscriptiiid\@empty\else + \@MXV@jscriptiiid +\fi\fi + /Presentation {rmPresentation\therm@Cnt}% + >> + /Deactivation<<% + /Type/RichMediaDeactivation% + /Condition\rma@rmAnnot@deactivated + >>% + >>/PUT pdfmark^^J% +\ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv +\ifx\rma@rmAnnot@cuepoints\@empty\else\rma@dict@hold\fi\fi + \ps@mark/_objdef {rmPresentation\therm@Cnt}% + /type/dict/OBJ pdfmark^^J% + \ps@mark{rmPresentation\therm@Cnt}<<% + /Type/RichMediaPresentation% +\ifrma@isiiid + /NavigationPane \rma@rmAnnot@modeltree % need key + /Toolbar \rma@rmAnnot@toolbar % need key + /Transparent \rma@rmAnnot@transparent +\else +\ifx\rma@rmAnnot@type\rma@rmAnnot@type@swf + /Transparent \rma@rmAnnot@transparent + /PassContextClick \rma@rmAnnot@PassContextClick + /NavigationPan false% +\else + /Transparent false% + /NavigationPan false% +\fi\fi +\ifKV@rmAnnot@windowed + /Style/Windowed% + /Window {rmWindow\therm@Cnt}% +\else + /Style/Embedded% +\fi + >>/PUT pdfmark^^J% +\ifKV@rmAnnot@windowed + \ps@mark/_objdef {rmWindow\therm@Cnt}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmWindow\therm@Cnt}<<% + /Type/RichMediaWindow% + /Height<<% + /Default \rma@winDimPosHeight@def + /Max \rma@winDimPosHeight@max + /Min \rma@winDimPosHeight@min + >>% + /Width<<% + /Default \rma@winDimPosWidth@def + /Max \rma@winDimPosWidth@max + /Min \rma@winDimPosWidth@min + >>% + /Position<<% + /Type/RichMediaPosition % RichMediaPosition dictionary + /HAlign\rma@winDimPosPos@halign + /VAlign\rma@winDimPosPos@valign + /HOffset \rma@winDimPosPos@hoffset + /VOffset \rma@winDimPosPos@voffset + >>% + >>/PUT pdfmark^^J% +\fi + \ps@mark/_objdef {rmfilespec\therm@Cnt}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmfilespec\therm@Cnt} <<% +\ifKV@rmAnnot@url + /F(\rma@fullpath)% + /FS/URL% +\else + /F(\rma@thisfileName)% + /UF (\rma@thisfileName)% + /EF <</F {\csname rmFileStrm#4\endcsname}>> +\fi + /Type/Filespec + >>/PUT pdfmark^^J% +\ifKV@rmAnnot@url\else +\ifrma@EmbedFile + \ps@mark/_objdef {\csname rmFileStrm#4\endcsname}% + /type/stream/OBJ pdfmark^^J% + \ps@mark{\csname rmFileStrm#4\endcsname} (\rma@fullpath) + (r) file /PUT pdfmark^^J% + \ps@mark{\csname rmFileStrm#4\endcsname} <<% + /Type/EmbeddedFile% + /Subtype(\rma@mimeType)% + >>/PUT pdfmark^^J% + \ps@mark{\csname rmFileStrm#4\endcsname} /CLOSE pdfmark^^J% +\fi\fi +\ifx\rma@rmAnnot@type\rma@rmAnnot@type@swf\rma@addFileSpecs\fi +\ifrma@isiiid\rma@addFileSpecs\fi +\ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv +\ifVideoPlayerEx\rma@addFileSpecs\fi +\ifx\rma@rmAnnot@Skin\@empty\else + \ps@mark/_objdef {rmfilespecSkin\rma@skinName}% + /type/dict/OBJ pdfmark^^J% + \ps@mark{rmfilespecSkin\rma@skinName} <<% + /F (\rma@rmAnnot@Skin)% + /Type/Filespec% + /UF (\rma@rmAnnot@Skin)% + /EF <</F {rmfstreamSkin\rma@skinName}>> + >>/PUT pdfmark^^J% +\rm@csarg\if{embedSkin\rma@skinName}\rm@One + \ps@mark/_objdef {rmfstreamSkin\rma@skinName}% + /type/stream/OBJ pdfmark^^J% + \ps@mark{rmfstreamSkin\rma@skinName}% + (\rma@pathToSkins/\rma@rmAnnot@Skin) (r) file% + /PUT pdfmark^^J% + \ps@mark{rmfstreamSkin\rma@skinName} <<% + /Type/EmbeddedFile + /Subtype (\rma@mimetype@swf) + >>/PUT pdfmark^^J% + \ps@mark{rmfstreamSkin\rma@skinName}/CLOSE pdfmark^^J% +\fi\fi\fi +\ifx\rma@rmAnnot@type\rma@rmAnnot@type@flv + \ps@mark/_objdef {rmfilespecVP}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmfilespecVP} <<% + /Type/Filespec% + /F (\rma@VideoPlayer)% + /UF (\rma@VideoPlayer)% + /EF <</F {rmfstreamVP}>> + >>/PUT pdfmark^^J% +\ifrma@EmbedVideoPlayer + \ps@mark/_objdef {rmfstreamVP}/type/stream/OBJ pdfmark^^J% + \ps@mark{rmfstreamVP} (\rma@pathToPlayers/\rma@VideoPlayer) + (r) file /PUT pdfmark^^J% + \ps@mark{rmfstreamVP} <<% + /Type/EmbeddedFile% + /Subtype (\rma@mimetype@swf)% + >>/PUT pdfmark^^J% + \ps@mark{rmfstreamVP} /CLOSE pdfmark^^J% +\fi\fi +\ifx\rma@rmAnnot@type\rma@rmAnnot@type@mpiii + \ps@mark/_objdef {rmfilespecAP}/type/dict/OBJ pdfmark^^J% + \ps@mark{rmfilespecAP} <<% + /F (AudioPlayer.swf)% + /Type/Filespec% + /UF (AudioPlayer.swf)% + /EF <</F {rmfstreamAP}>>% + >>/PUT pdfmark^^J% +\ifrma@EmbedAudioPlayer + \ps@mark/_objdef {rmfstreamAP}/type/stream/OBJ pdfmark^^J% + \ps@mark{rmfstreamAP}(\rma@pathToPlayers/AudioPlayer.swf) + (r) file /PUT pdfmark^^J% + \ps@mark{rmfstreamAP} <<% + /Type/EmbeddedFile% + /Subtype (\rma@mimetype@mpiii)% + >>/PUT pdfmark^^J% + \ps@mark{rmfstreamAP} /CLOSE pdfmark^^J% +\fi\fi}% +\ifx\rma@rmAnnot@type@flv\rma@rmAnnot@type +\ifx\rma@rmAnnot@Skin\@empty\else +\expandafter\global\rm@csarg\let{embedSkin\rma@skinName}\rm@Zero +\fi\fi +\endgroup} +\newcommand{\defaultPoster}[1]{\def\rma@psgraphics@poster{#1}} +\defaultPoster +{% + \rma@ps@bg@setcolor + 0 0 \this@width\space\this@height\space rectfill + \rma@ps@txt@x\adj@measure\rma@ps@txt@y\adj@measure moveto + \rma@ps@txt@setcolor/\rma@ps@font + \rma@ps@relfontsize\rma@ps@fontsize selectfont + \rma@ps@msg +} +\def\adj@measure{\calc@prop\space mul 100 div } +\def\rma@ps@bg@setcolor{.7529 setgray } +\def\rma@ps@txt@x{10 }\def\rma@ps@txt@y{10 } +\def\rma@ps@txt@setcolor{.4 setgray } +\def\rma@ps@font{Helvetica } +\def\rma@ps@relfontsize{10 \adj@measure} +\let\rma@ps@fontsize\@empty +\def\rma@ps@msg{(\rma@posternote) show} +\define@key{rmPoster}{color}[]{\def\rma@ps@bg@setcolor{#1 }} +\define@key{rmPoster}{xPos}[]{\def\rma@ps@txt@x{#1 }} +\define@key{rmPoster}{yPos}[]{\def\rma@ps@txt@y{#1 }} +\define@key{rmPoster}{textColor}[]{\def\rma@ps@txt@setcolor{#1 }} +\define@key{rmPoster}{relTextSize}[]{\def + \rma@ps@relfontsize{#1 \adj@measure}% + \let\rma@ps@fontsize\@empty} +\define@key{rmPoster}{textSize}[]{\def\rma@ps@fontsize{#1 }% + \let\rma@ps@relfontsize\@empty} +\define@key{rmPoster}{textFont}[]{\def\rma@ps@font{#1 }} +\def\setPosterProps#1{\setkeys{rmPoster}{#1}} +\providecommand{\makePoster}[3][]{% + \embedEPS[#1]{rma@#2}{#3}% + \begin{createImage}{\bboxOf{rma@#2}}{#2}% + \ps@mark{rma@#2} /SP pdfmark + \end{createImage}% +} +\@onlypreamble{\makePoster} +\def\rma@PkEr@i{% + \PackageError{rmannot}{% + You must specify a file with an extension\MessageBreak + of .swf, .flv, .f4v, .mp4, .m4v, .mov, .3gp,\MessageBreak + .3g2, .mp3}{Specify one of the supported file extensions to + embed in this annotation.\MessageBreak + See the rmannot manual for details on supported extensions.}} +\def\rma@PkEr@ii{% + \PackageError{rmannot}{% + The name `\rm@argii' has already been used. Either\MessageBreak + you are defining the same path, or a different path\MessageBreak + with the same name}{% + Names must be unique to the document, choose another}} +\def\rma@PkEr@iii#1{% + \PackageError{rmannot}{% + No extension supplied with this file name,\MessageBreak#1.% + \MessageBreak Please include a file extension of\MessageBreak + .swf, .flv, or .mp3, as appropriate}{% + Include an extension of .swf, .flv, or .mp3}} +\rma@input@iiidCode +\endinput +%% +%% End of file `rmannot.sty'. |