thirddata = thirddata or { } thirddata.drops = thirddata.drops or { } local drops = thirddata.drops local metafun = context.metafun local format,todimen = string.format, string.todimen local floor = math.floor -- http://lua-users.org/wiki/SimpleRound local function round(num, idp) local mult = 10^(idp or 0) return floor(num * mult + 0.5) / mult end function drops.numberofpixels(n,idp) local dimenfactor = 1/tex.pdfpxdimen return round(todimen(n)*dimenfactor,idp) end local numberofpixels = drops.numberofpixels function drops.generate_default_path(id,width,height,radius) local w,h,r w = numberofpixels(width); h = numberofpixels(height); r = numberofpixels(radius) metafun.start() metafun("save p,pid; path p; string pid;") -- metafun("id := \"drops:boxshadow_w%sh%sr%s\";",w,h,r) metafun("pid := \"%s\";",id) --metafun("show pid;") -- ok metafun("p:= unitsquare xyscaled(%s,%s) smoothed %s;",w,h,r) metafun("passvariable(pid,p);") metafun("setbounds currentpicture to boundingbox(p);") -- 'activator'; void graphics are ignored metafun.stop() end function drops.foo(id,width,height,radius) drops.generate_default_path(id,width,height,radius) inspect(metapost.variables) -- empty here end