1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
if not modules then modules = { } end modules ['grph-u3d'] = {
version = 1.001,
comment = "companion to grph-inc.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "see context related readme files"
}
-- see lpdf-u3d.lua for comment
local trace_inclusion = false trackers.register("figures.inclusion", function(v) trace_inclusion = v end)
local report_u3d = logs.reporter("graphics","u3d")
local figures = figures
local nodeinjections = backends.nodeinjections
local todimen = string.todimen
-- maybe todo: backends.codeinjections.insertu3d
function figures.checkers.u3d(data)
local dr, du, ds = data.request, data.used, data.status
local width = todimen(dr.width or figures.defaultwidth)
local height = todimen(dr.height or figures.defaultheight)
local foundname = du.fullname
dr.width, dr.height = width, height
du.width, du.height, du.foundname = width, height, foundname
if trace_inclusion then
report_u3d("including u3d '%s': width %s, height %s",foundname,width,height)
end
context.startfoundexternalfigure(width .. "sp",height .. "sp")
context(function()
nodeinjections.insertu3d {
foundname = foundname,
width = width,
height = height,
factor = number.dimenfactors.bp,
display = dr.display,
controls = dr.controls,
label = dr.label,
}
end)
context.stopfoundexternalfigure()
return data
end
figures.includers.u3d = figures.includers.nongeneric
figures.registersuffix("u3d","u3d")
figures.registersuffix("prc","u3d")
|