summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/grph-inc.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/grph-inc.mkiv')
-rw-r--r--tex/context/base/mkiv/grph-inc.mkiv191
1 files changed, 187 insertions, 4 deletions
diff --git a/tex/context/base/mkiv/grph-inc.mkiv b/tex/context/base/mkiv/grph-inc.mkiv
index de5a2227a..25058b3f7 100644
--- a/tex/context/base/mkiv/grph-inc.mkiv
+++ b/tex/context/base/mkiv/grph-inc.mkiv
@@ -21,7 +21,9 @@
\writestatus{loading}{ConTeXt Graphic Macros / Figure Inclusion}
\registerctxluafile{grph-inc}{1.001}
+\registerctxluafile{grph-con}{1.001}
\registerctxluafile{grph-fil}{1.001}
+\registerctxluafile{grph-mem}{1.001}
\registerctxluafile{grph-u3d}{1.001} % this will change
\registerctxluafile{grph-swf}{1.001} % this will change
@@ -59,6 +61,7 @@
\c!preset =\v!yes,
\c!split =,
\c!color =,
+ \c!arguments =,
\c!symbol =\v!no,
\c!controls =\v!no,
\c!resources =,
@@ -100,6 +103,7 @@
\c!xmax =,
\c!align =\v!none, % New, for Tacos extremely large graphics.
\c!crossreference =\v!no,
+ \c!transform =\v!auto,
]
%D Defining figures.
@@ -312,7 +316,7 @@
\edef\p_reference{\externalfigureparameter\c!reference}%
%
\dostarttagged\t!image\empty
- \clf_figure_push
+ \clf_figure_push {
name {\p_grph_include_name}%
label {\ifx\p_label\empty\p_grph_include_label\else\p_label\fi}%
page {\externalfigureparameter\c!page}%
@@ -329,15 +333,17 @@
mask {\externalfigureparameter\c!mask}%
conversion {\externalfigureparameter\c!conversion}%
resolution {\externalfigureparameter\c!resolution}%
- color {\internalspotcolorparent{\externalfigureparameter\c!color}}% hack is needed
+ color {\externalfigureparameter\c!color}% unprocessed raw key
+ arguments {\externalfigureparameter\c!arguments}% used for converters
repeat {\externalfigureparameter\c!repeat}%
+ transform {\externalfigureparameter\c!transform}%
\ifx\p_width\empty \else
width \dimexpr\p_width\relax
\fi
\ifx\p_height\empty \else
height \dimexpr\p_height\relax
\fi
- \relax
+ }%\relax
\clf_figure_identify
\relax
\ifconditional\c_grph_include_test_only
@@ -527,6 +533,9 @@
\def\figurefilepage {\clf_figurerequest{page}{1}}
\def\figurefileoptions {\clf_figurerequest{options}{}}
\def\figurefileconversion{\clf_figurerequest{conversion}{}}
+\def\figurefileresolution{\clf_figurerequest{resolution}{}}
+\def\figurefilecolor {\clf_figurerequest{color}{}}
+\def\figurefilearguments {\clf_figurerequest{arguments}{}}
\def\figurefilecache {\clf_figurerequest{cache}{}}
\def\figurefileprefix {\clf_figurerequest{prefix}{}}
@@ -534,6 +543,8 @@
\def\figurenaturalheight {\clf_figureused{height}{\number\dimexpr\defaultfigureheight\relax}sp}
\def\figurexresolution {\clf_figureused{xresolution}{0}}
\def\figureyresolution {\clf_figureused{yresolution}{0}}
+\def\figureorientation {\clf_figureused{orientation}{1}}
+\def\figurerotation {\clf_figureused{rotation}{0}}
\def\figurexsize {\clf_figureused{xsize}{0}}
\def\figureysize {\clf_figureused{ysize}{0}}
\def\figurecolordepth {\clf_figureused{colordepth}{0}}
@@ -859,12 +870,184 @@
[\jobname.buffer]
[\c!object=\v!no]
-% Another one:
+% Another two:
\defineexternalfigure
[\v!inline]
[\c!height=\lineheight]
+\defineexternalfigure
+ [\v!combination]
+ [\c!width=\dimexpr(%
+ \textwidth-\effectiveleftskip-\effectiverightskip
+ -\numexpr\combinationparameter\c!nx-\plusone\relax\dimexpr\combinationparameter\c!distance\relax
+ )/\combinationparameter\c!nx\relax]
+
+% \startcombination[nx=2,ny=1]
+% {\externalfigure[dummy][combination]} {}
+% {\externalfigure[dummy][combination]} {}
+% \stopcombination
+
+% \startcombination[nx=2,ny=2]
+% {\externalfigure[dummy][combination]} {}
+% {\externalfigure[dummy][combination]} {}
+% {\externalfigure[dummy][combination]} {}
+% {\externalfigure[dummy][combination]} {}
+% \stopcombination
+
+% \startcombination[nx=3,ny=1]
+% {\externalfigure[dummy][combination]} {}
+% {\externalfigure[dummy][combination]} {}
+% {\externalfigure[dummy][combination]} {}
+% \stopcombination
+
+% \startcombination[nx=4,ny=1]
+% {\externalfigure[dummy][combination]} {}
+% {\externalfigure[dummy][combination]} {}
+% {\externalfigure[dummy][combination]} {}
+% {\externalfigure[dummy][combination]} {}
+% \stopcombination
+
\unexpanded\def\inlinefigure[#1]{\dontleavehmode\sbox{\externalfigure[#1][\v!inline]}}
\protect \endinput
+
+% Moved here because this already old code is nowhere documents (so I need to
+% check it:
+%
+% \starttext
+%
+% \startluaparameterset [u3d:myset:controls:1]
+% view = {
+% name = 'default',
+% bg = {1,1,1},
+% mag = 100,
+% coo = {0,0,0},
+% c2c = {0,0,1},
+% rot = {40,0,60},
+% roo = 6,
+% lights = 'CAD'
+% },
+% js = 'cloudq.js'
+% \stopluaparameterset
+%
+% \startluaparameterset [u3d:myset:controls:2]
+% views = {
+% {
+% name = 'AnglePositioning',
+% bg = {1,1,1},
+% azimuth = 45,
+% altitude = 45,
+% roo = 50,
+% aac = 2.5,
+% lights = 'Artwork'
+% },
+% {
+% name = 'RotationPositioning',
+% bg = {1,1,1},
+% rot = {0,45,45},
+% roo = 50,
+% aac = 2.5,
+% lights = 'Artwork'
+% },
+% {
+% name = 'VectorPositioning',
+% bg = {1,0,0},
+% c2c = {1,1,math.sqrt(2)},
+% roo = 50,
+% aac = 2.5,
+% lights = 'CAD'
+% },
+% {
+% name = 'PositionPositioning',
+% bg = {1,0,0},
+% pos = {1+25,1+25,1+50/math.sqrt(2)},
+% aac = 2.5,
+% lights = 'CAD'
+% },
+% {
+% name = 'ortho',
+% bg = {1,1,1},
+% mag = 300,
+% lights = 'CAD',
+% crossection = {}
+% }
+% },
+% view = {
+% name = 'default',
+% bg = {1,1,1},
+% c2c = {-1,-1,0},
+% roo = 50,
+% aac = 2.5,
+% roll = 45,
+% lights = 'CAD',
+% crossection = {
+% normal = {-1,-1,-1},
+% transparent = true
+% },
+% nodes = {
+% {
+% name = 'xlabel',
+% visible = false
+% },
+% {
+% name = 'ylabel',
+% opacity = 0.5
+% },
+% {
+% name = 'zlabel',
+% rendermode = 'Wireframe'
+% }
+% }
+% }
+% \stopluaparameterset
+%
+% \useexternalfigure
+% [cloudq]
+% [cloudq.u3d]
+% [width=0.7\textwidth,
+% height=.7\textwidth,
+% display=u3d:myset:display:1,
+% controls=u3d:myset:controls:1]
+%
+% \useexternalfigure
+% [axes]
+% [axes.u3d]
+% [width=0.7\textwidth,
+% height=.7\textwidth,
+% controls=u3d:myset:controls:1]
+%
+% \startluaparameterset[u3d:myset:display:2]
+% toolbar = true,
+% preview = 'cloudq.png'
+% \stopluaparameterset
+% \startluaparameterset[u3d:myset:display:3]
+% toolbar = true,
+% tree = false,
+% preview = 'axes.png'
+% \stopluaparameterset
+% \startluaparameterset[u3d:myset:display:4]
+% toolbar = true,
+% tree = false,
+% view = {
+% name = 'view',
+% bg = {0.1,0.1,0.1},
+% c2c = {-1,-1,0},
+% roo = 50,
+% aac = 2.5,
+% roll = 45,
+% lights = 'Red'
+% }
+% \stopluaparameterset
+% \startluaparameterset[u3d:myset:display:5]
+% toolbar = true,
+% tree = false,
+% view = 'ortho'
+% \stopluaparameterset
+%
+% \placefigure[here]{none}{\externalfigure[cloudq][frame=on,display=u3d:myset:display:2]}
+% \placefigure[here]{none}{\externalfigure[axes] [frame=on,display=u3d:myset:display:3]}
+% \placefigure[here]{none}{\externalfigure[axes] [frame=on,display=u3d:myset:display:4]}
+% \placefigure[here]{none}{\externalfigure[axes] [frame=on,display=u3d:myset:display:5,width=0.5\textwidth,height=.5\textwidth]}
+%
+% \stoptext