On 2/21/2019 10:03 AM, Damien Thiriet wrote:
Hi,
Why does (1) compile, whereas (2) doesn't? I can't understand why can MPinclusions store path and not pairs.
%%%%%%%%%%%% (1) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \setuppapersize[A4,landscape]
\startMPinclusions u:=1mm ; %fond path p ; p:= (0,0) -- (150u,0) -- (150u,95u) -- (0,95u) -- cycle ; pair x[] ; x[0]:= (20u,90u) ; x[1]:= (40u,90u) ; x[2]:= (90u,90u) ; x[3]:= (140u,90u) ; \stopMPinclusions
\startreusableMPgraphic{test} draw p ; \stopreusableMPgraphic
\starttext \reuseMPgraphic{test} \stoptext
%%%%%%%%%%%% (1) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \setuppapersize[A4,landscape]
\startMPinclusions u:=1mm ; %fond path p ; p:= (0,0) -- (150u,0) -- (150u,95u) -- (0,95u) -- cycle ; pair x[] ; x[0]:= (20u,90u) ; x[1]:= (40u,90u) ; x[2]:= (90u,90u) ; x[3]:= (140u,90u) ; \stopMPinclusions
\startreusableMPgraphic{test} draw p ; for i=0 step 1 until 3 : drawdot x[i] ; endfor ; \stopreusableMPgraphic
\starttext \reuseMPgraphic{test}
More generaly, which kind of variables cannot be stored in \startMPinclusions ?
those that are likely to clash later \startMPinclusions vardef MyStuff = numeric u; u:=1mm ; path p ; p:= (0,0) -- (150u,0) -- (150u,95u) -- (0,95u) -- cycle ; pair x[] ; x[0]:= (20u,90u) ; x[1]:= (40u,90u) ; x[2]:= (90u,90u) ; x[3]:= (140u,90u) ; enddef ; \stopMPinclusions \startreusableMPgraphic{test} save p, u, x ; MyStuff ; draw p ; for i=0 step 1 until 3 : drawdot x[i] ; endfor ; \stopreusableMPgraphic \starttext \reuseMPgraphic{test} \stoptext but in your case you could as well put the inclusions in the test graphic itself \startreusableMPgraphic{test} save p, u, x ; numeric u; u:=1mm ; path p ; p:= (0,0) -- (150u,0) -- (150u,95u) -- (0,95u) -- cycle ; pair x[] ; x[0]:= (20u,90u) ; x[1]:= (40u,90u) ; x[2]:= (90u,90u) ; x[3]:= (140u,90u) ; draw p ; for i=0 step 1 until 3 : drawdot x[i] ; endfor ; \stopreusableMPgraphic \starttext \reuseMPgraphic{test} \stoptext ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------