summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/meta-nod.mkiv
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2018-07-05 23:56:28 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2018-07-05 23:56:28 +0200
commitd6dece4edc2ef86889f99f3dbe5a6d6ed3b68b02 (patch)
treec1469b80be7520b9f2159390f9a8106216086997 /tex/context/base/mkiv/meta-nod.mkiv
parent847821faaecf92833f1e1564e1ef9377758d4d45 (diff)
downloadcontext-d6dece4edc2ef86889f99f3dbe5a6d6ed3b68b02.tar.gz
2018-07-05 23:13:00
Diffstat (limited to 'tex/context/base/mkiv/meta-nod.mkiv')
-rw-r--r--tex/context/base/mkiv/meta-nod.mkiv27
1 files changed, 20 insertions, 7 deletions
diff --git a/tex/context/base/mkiv/meta-nod.mkiv b/tex/context/base/mkiv/meta-nod.mkiv
index 5c7b3d503..bf36e315c 100644
--- a/tex/context/base/mkiv/meta-nod.mkiv
+++ b/tex/context/base/mkiv/meta-nod.mkiv
@@ -11,6 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\registerctxluafile{meta-nod}{}
+
\unprotect
\defineMPinstance
@@ -105,6 +107,9 @@
\let\stopnodes\relax
+%D Hm, we started out simple but it now quickly becomes the usual mess of
+%D \TEX, \METAPOST\ and \LUA. Hard to understand.
+
\unexpanded\def\startnodes
{\dosingleempty\meta_nodes_start}
@@ -120,6 +125,7 @@
#2\removeunwantedspaces
% for alan, will be commented:
\writestatus{metanodes}{\detokenize\expandafter{\the\t_meta_nodes}}%
+ \ctxlua{metapost.nodes.initialize()}%
\startMPcode
mfun_node_init(%
\the\dimexpr\metanodesparameter\c!dx\relax,%
@@ -129,11 +135,9 @@
\the\t_meta_nodes ;
mfun_node_flush ;
\stopMPcode
+ \ctxlua{metapost.nodes.reset()}%
\egroup}
-% \unexpanded\def\grph_nodes_node[#1,#2]#3%
-% {\etoksapp\t_meta_nodes{mfun_node_make(\number#1,\number#2,"\metanodesparameter\c!command{#3}");}}
-
\unexpanded\def\grph_nodes_node
{\dodoubleempty\grph_nodes_node_two}
@@ -145,10 +149,16 @@
\ifsecondargument
\setupcurrentmetanodes[#3]%
\fi
- \edef\p_label{#4}%
+ \edef\p_label {#4}%
+ \edef\p_reference{\metanodesparameter\c!reference}%
+ \ifx\p_reference\empty\else
+ \ctxlua{metapost.nodes.register("\p_reference",\number#1)}%
+ \fi
\normalexpanded{\endgroup\noexpand\etoksapp\t_meta_nodes{%
mfun_node_make(\number#1,\number#2%
- \ifx\p_label\empty \else
+ \ifx\p_label\empty
+ ,""%
+ \else
,"\metanodesparameter\c!command{\p_label}"%
\fi
);%
@@ -199,8 +209,11 @@
\space
mfun_nodes_fromto\begincsname\??metanodesposition\metanodesparameter\c!position\endcsname(%
\metanodesparameter\c!offset,%
- \number#1,\number#2%
- \ifx\p_label\empty \else
+ % \number#1,\number#2%
+ \ctxlua{metapost.nodes.resolve("#1")},\ctxlua{metapost.nodes.resolve("#2")}%
+ \ifx\p_label\empty
+ ,""%
+ \else
,"\ifx\p_command\empty\p_label\else\p_command{\p_label}\fi"%
\fi
)%