ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Re: 3D annotations
@ 2010-05-02  9:08 gummybears
  0 siblings, 0 replies; 6+ messages in thread
From: gummybears @ 2010-05-02  9:08 UTC (permalink / raw)
  To: master; +Cc: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 307 bytes --]

Hi Michail,

I read your email (17 april 2010) on the mailing list and applied the two
patches to my Context minimal distro
(the very latest version). When I run your test.tex through context the
preview image test.png
is not shown.

Which version of ConText should I use to make it work

Thanks in advance

[-- Attachment #1.2: Type: text/html, Size: 341 bytes --]

[-- Attachment #2: Type: text/plain, Size: 486 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: 3D annotations
  2010-05-04 10:06 gummybears
@ 2010-05-04 14:15 ` Michail Vidiassov
  0 siblings, 0 replies; 6+ messages in thread
From: Michail Vidiassov @ 2010-05-04 14:15 UTC (permalink / raw)
  To: gummybears; +Cc: mailing list for ConTeXt users

[-- Attachment #1: Type: TEXT/PLAIN, Size: 2049 bytes --]

Dear gummybears,

On Tue, 4 May 2010, gummybears wrote:

>       I read your email (17 april 2010) on the mailing list and applied the two
>       patches to my Context minimal distro
>       (the very latest version). When I run your test.tex through context the
>       preview image test.png is not shown.
> 
> 
> >did you recreate formats after patch
> 
> Probably not (my mistake), but now I did make the formats and with the current minimals
> I got the following error (when running your test.tex file)
> bodyfont        : 12pt rm is loaded
> language        : language en is active
> systems         : begin file test.tex at line 3
> floatblocks     : 1 placed
> ! LuaTeX error ...text/tex/texmf-context/tex/context/base/lpdf-mis.lua:163: attempt to call field 'timestamp' (a nil value)
> stack traceback:
>     ...text/tex/texmf-context/tex/context/base/lpdf-mis.lua:163: in function 'setupidentity'
>     <main ctx instance>:1: in main chunk.
> \synchronizebackendidentity ...akeyword \!!es , }}
> 
> \actualshipout ...lio \or \the \everyfirstshipout
>                                                   \global \everyfirstshipout...
> \myshipout ...\@@ppmethod }\gobbleoneargument {#1}
>                                                   \setnextrealpageno \afters...
> \dofinaloutput ...hbox {\vbox {\dopagebody #1#2}}}
>                                                   \the \everyaftershipout \a...
> \finaloutput ...EAEAEA \dofinaloutput \fi \fi #1#2
>                                                   \resetselectiepagina \incr...
> \sidefloatoutput ...e \else \finalsidefloatoutput
>                                                   \global \sidefloatvsize \n...
> ...
> l.23 \stopTEXpage
> 
> Which version of ConText should I use to make it work?

I have just downloaded the latest version (2010.04.29 22:30) to my
Mac OS X 10.6.3, patched, run test.tex and got no problem.

May be you can describe our setup in more detail (context version, OS,
32/64 bit).

Sincerely, michail



[-- Attachment #2: Type: text/plain, Size: 486 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: 3D annotations
@ 2010-05-04 10:06 gummybears
  2010-05-04 14:15 ` Michail Vidiassov
  0 siblings, 1 reply; 6+ messages in thread
From: gummybears @ 2010-05-04 10:06 UTC (permalink / raw)
  To: master; +Cc: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 1690 bytes --]

On Sun, 2 May 2010, gummybears wrote:

I read your email (17 april 2010) on the mailing list and applied the two
patches to my Context minimal distro
(the very latest version). When I run your test.tex through context the
preview image test.png is not shown.


>did you recreate formats after patch
>("context -make" if memory serves me right)?
>I will test with current minimals today.

Probably not (my mistake), but now I did make the formats and with the
current minimals
I got the following error (when running your test.tex file)
bodyfont        : 12pt rm is loaded
language        : language en is active
systems         : begin file test.tex at line 3
floatblocks     : 1 placed
! LuaTeX error ...text/tex/texmf-context/tex/context/base/lpdf-mis.lua:163:
attempt to call field 'timestamp' (a nil value)
stack traceback:
    ...text/tex/texmf-context/tex/context/base/lpdf-mis.lua:163: in function
'setupidentity'
    <main ctx instance>:1: in main chunk.
\synchronizebackendidentity ...akeyword \!!es , }}

\actualshipout ...lio \or \the \everyfirstshipout
                                                  \global
\everyfirstshipout...
\myshipout ...\@@ppmethod }\gobbleoneargument {#1}
                                                  \setnextrealpageno
\afters...
\dofinaloutput ...hbox {\vbox {\dopagebody #1#2}}}
                                                  \the \everyaftershipout
\a...
\finaloutput ...EAEAEA \dofinaloutput \fi \fi #1#2
                                                  \resetselectiepagina
\incr...
\sidefloatoutput ...e \else \finalsidefloatoutput
                                                  \global \sidefloatvsize
\n...
...
l.23 \stopTEXpage

[-- Attachment #1.2: Type: text/html, Size: 2138 bytes --]

[-- Attachment #2: Type: text/plain, Size: 486 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: 3D annotations
@ 2010-04-17  7:00 Michail Vidiassov
  0 siblings, 0 replies; 6+ messages in thread
From: Michail Vidiassov @ 2010-04-17  7:00 UTC (permalink / raw)
  To: mailing list for ConTeXt users

[-- Attachment #1: Type: TEXT/PLAIN, Size: 6611 bytes --]

Dear Hans,

I wrote to you
> thank you for your latest effort to put u3d support in a working state, but

more thanks for more effort, but

> May be a more robust way is to read first 3 bytes of the model file, since
> "U3D" or "PRC" signature is always there - that can be done instead of 
> relying on file name extension or only in case it it not "u3d" or "prc".

you have implemented reading the file signature, but it is now 
almost useless, since if a file has extension other but U3D or PRC
3D annotation code will not be called by file inclusion mechanism
and "io.readdata" routine is called
local subtype, subdata = "U3D", io.readdata(foundname) or ""
- what's that?

One more point - preview bitmap images in 3D annotations are now disabled
since necessary functionality of measuring XForms is missing -
please, consider the following workaround.

--- lpdf-u3d.lua.org	2010-03-26 18:24:44.000000000 +0300
+++ lpdf-u3d.lua	2010-04-14 14:24:28.000000000 +0400
@@ -17,6 +17,7 @@
  local cos, sin, sqrt, pi, atan2, abs = math.cos, math.sin, math.sqrt, math.pi, math.atan2, math.abs

  local pdfconstant   = lpdf.constant
+local pdfnumber     = lpdf.number
  local pdfboolean    = lpdf.boolean
  local pdfunicode    = lpdf.unicode
  local pdfdictionary = lpdf.dictionary
@@ -62,8 +63,7 @@

  local function make3dview(view)

-    local name = viewname
-    local name = pdfunicode((view.name ~= "" and name) or "unknown view")
+    local name = pdfunicode((view.name ~= "" and view.name) or "unknown view")

      local viewdict = pdfdictionary {
         Type = pdfconstant("3DView"),
@@ -311,9 +311,6 @@
          for i=1,#nodes do
              local node = checkedkey(nodes,i,"table")
              if node then
-                local position = checkedkey(node,"position","table")
-                position = position and #position == 12 and pdfarray(position)
-                if position then
                      nodelist[#nodelist+1] = pdfdictionary {
                          Type = pdfconstant("3DNode"),
                          N    = node.name or ("node_" .. i), -- pdfunicode ?
@@ -325,13 +322,18 @@
                          },
                          M    = position,
                      }
+                local position = checkedkey(node,"position","table")
+                position = position and #position == 12 and pdfarray(position)
+                if position then
+                    nodelist[#nodelist].M = position
                  end
              end
        end
-      viewdict.NR = true
        viewdict.NA = nodelist
     end

+    viewdict.NR = true
+
     return viewdict

  end
@@ -349,19 +351,19 @@

      local activationdict = pdfdictionary {
         TB = pdfboolean(param.toolbar,true),
-       NP = pdfboolean(param.tree,true),
+       NP = pdfboolean(param.tree,false),
      }

      local stream = streams[label]
      if not stream then

-        local subtype, subdata = "U3D", io.readdata(foundname) or ""
+        local subtype, subdata = "U3D", file.readdata(foundname) or ""
          if find(subdata,"^PRC") then
-            subtype == "PRC"
+            subtype = "PRC"
          elseif find(subdata,"^U3D") then
-            subtype == "U3D"
+            subtype = "U3D"
          elseif file.extname(foundname) == "prc" then
-            subtype == "PRC"
+            subtype = "PRC"
          end

          local attr = pdfdictionary {
@@ -423,12 +425,35 @@
          local ref = stored_pr[tag]
          if not ref then
          --  weird, has to be a /Form and not an /Image so we need a wrap = true key
-        --  local figure = img.immediatewrite { filename = preview, width = width, height = height }
-            local figure = img.immediatewrite { stream = ".5 .75 .75 rg 0 0 20 10 re f", bbox = {0,0,20,10 } }
+            local figure = img.immediatewrite { filename = preview, width = width, height = height }
+        --  local figure = img.immediatewrite { stream = ".5 .75 .75 rg 0 0 20 10 re f", bbox = {0,0,20,10 } }
              ref = figure.objnum
              stored_pr[tag] = ref
          end
-        annot.AP = ref and pdfdictionary { N = pdfreference(ref) }
+        if ref then
+            local pw   = pdfdictionary {
+                Type      = pdfconstant("XObject"),
+                Subtype   = pdfconstant("Form"),
+                FormType  = pdfnumber(1),
+                BBox      = pdfarray { pdfnumber(0), pdfnumber(0), pdfnumber(factor*width), pdfnumber(factor*height) },
+                Matrix    = pdfarray { pdfnumber(1), pdfnumber(0), pdfnumber(0), pdfnumber(1), pdfnumber(0), pdfnumber(0) },
+                Resources = pdfdictionary {
+                                XObject = pdfdictionary {
+                                    IM = pdfreference(ref)
+                                }
+                            },
+                ExtGState = pdfdictionary {
+                                GS = pdfdictionary {
+                                    Type = pdfconstant("ExtGState"),
+                                    CA   = pdfnumber(1),
+                                    ca   = pdfnumber(1)
+                                }
+                            },
+                ProcSet    = pdfarray { pdfconstant("PDF"), pdfconstant("ImageC") },
+            }
+            local pwd = pdf.immediateobj("stream",format("q /GS gs %s 0 0 %s 0 0 cm /IM Do Q",factor*width,factor*height),pw())
+            annot.AP = pdfdictionary { N = pdfreference(pwd) }
+        end
          return annot, figure, ref
      else
          activationdict.A = pdfconstant("PV")

Also I try to remind you AGAIN and AGAIN about pdfboolean problem in 
lpdf-ini.lua (old code is not OK if b is "false" and default is "true")

  local function pdfboolean(b,default)
-    if ((type(b) == "boolean") and b) or default then
-        return p_true
+    if type(b) ~= "boolean" then
+        if default then
+            return p_true
+        else
+            return p_false
+        end
      else
-        return p_false
+        if b then
+            return p_true
+        else
+            return p_false
+        end
      end
  end

        Sincerely, Michail

PS. And a great palliative way to deal with 3D annotations is via
attaching a 3D PDF file made with LaTeX (by Asymptote, for example).

But while your method of answering my messages in lua works OK for
new code (updating minimals and making a diff with old code is not
harder than checking e-mail inbox - "Your morning patch, sir!" ;),
I can not deduce from existing sea of ConTeXt code the status of file 
attachments support.

[-- Attachment #2: Type: APPLICATION/octet-stream, Size: 29627 bytes --]

[-- Attachment #3: Type: TEXT/PLAIN, Size: 4822 bytes --]

--- lpdf-u3d.lua.org	2010-03-26 18:24:44.000000000 +0300
+++ lpdf-u3d.lua	2010-04-14 14:24:28.000000000 +0400
@@ -17,6 +17,7 @@
 local cos, sin, sqrt, pi, atan2, abs = math.cos, math.sin, math.sqrt, math.pi, math.atan2, math.abs
 
 local pdfconstant   = lpdf.constant
+local pdfnumber     = lpdf.number
 local pdfboolean    = lpdf.boolean
 local pdfunicode    = lpdf.unicode
 local pdfdictionary = lpdf.dictionary
@@ -62,8 +63,7 @@
 
 local function make3dview(view)
 
-    local name = viewname
-    local name = pdfunicode((view.name ~= "" and name) or "unknown view")
+    local name = pdfunicode((view.name ~= "" and view.name) or "unknown view")
 
     local viewdict = pdfdictionary {
        Type = pdfconstant("3DView"),
@@ -311,9 +311,6 @@
         for i=1,#nodes do
             local node = checkedkey(nodes,i,"table")
             if node then
-                local position = checkedkey(node,"position","table")
-                position = position and #position == 12 and pdfarray(position)
-                if position then
                     nodelist[#nodelist+1] = pdfdictionary {
                         Type = pdfconstant("3DNode"),
                         N    = node.name or ("node_" .. i), -- pdfunicode ?
@@ -325,13 +322,18 @@
                         },
                         M    = position,
                     }
+                local position = checkedkey(node,"position","table")
+                position = position and #position == 12 and pdfarray(position)
+                if position then
+                    nodelist[#nodelist].M = position
                 end
             end
       end
-      viewdict.NR = true
       viewdict.NA = nodelist
    end
 
+    viewdict.NR = true
+
    return viewdict
 
 end
@@ -349,19 +351,19 @@
 
     local activationdict = pdfdictionary {
        TB = pdfboolean(param.toolbar,true),
-       NP = pdfboolean(param.tree,true),
+       NP = pdfboolean(param.tree,false),
     }
 
     local stream = streams[label]
     if not stream then
 
-        local subtype, subdata = "U3D", io.readdata(foundname) or ""
+        local subtype, subdata = "U3D", file.readdata(foundname) or ""
         if find(subdata,"^PRC") then
-            subtype == "PRC"
+            subtype = "PRC"
         elseif find(subdata,"^U3D") then
-            subtype == "U3D"
+            subtype = "U3D"
         elseif file.extname(foundname) == "prc" then
-            subtype == "PRC"
+            subtype = "PRC"
         end
 
         local attr = pdfdictionary {
@@ -423,12 +425,35 @@
         local ref = stored_pr[tag]
         if not ref then
         --  weird, has to be a /Form and not an /Image so we need a wrap = true key
-        --  local figure = img.immediatewrite { filename = preview, width = width, height = height }
-            local figure = img.immediatewrite { stream = ".5 .75 .75 rg 0 0 20 10 re f", bbox = {0,0,20,10 } }
+            local figure = img.immediatewrite { filename = preview, width = width, height = height }
+        --  local figure = img.immediatewrite { stream = ".5 .75 .75 rg 0 0 20 10 re f", bbox = {0,0,20,10 } }
             ref = figure.objnum
             stored_pr[tag] = ref
         end
-        annot.AP = ref and pdfdictionary { N = pdfreference(ref) }
+        if ref then
+            local pw   = pdfdictionary {
+                Type      = pdfconstant("XObject"),
+                Subtype   = pdfconstant("Form"),
+                FormType  = pdfnumber(1),
+                BBox      = pdfarray { pdfnumber(0), pdfnumber(0), pdfnumber(factor*width), pdfnumber(factor*height) },
+                Matrix    = pdfarray { pdfnumber(1), pdfnumber(0), pdfnumber(0), pdfnumber(1), pdfnumber(0), pdfnumber(0) },
+                Resources = pdfdictionary {
+                                XObject = pdfdictionary {
+                                    IM = pdfreference(ref)
+                                }
+                            },
+                ExtGState = pdfdictionary {
+                                GS = pdfdictionary {
+                                    Type = pdfconstant("ExtGState"),
+                                    CA   = pdfnumber(1),
+                                    ca   = pdfnumber(1)
+                                }
+                            },
+                ProcSet    = pdfarray { pdfconstant("PDF"), pdfconstant("ImageC") },
+            }
+            local pwd = pdf.immediateobj("stream",format("q /GS gs %s 0 0 %s 0 0 cm /IM Do Q",factor*width,factor*height),pw())
+            annot.AP = pdfdictionary { N = pdfreference(pwd) }
+        end
         return annot, figure, ref
     else
         activationdict.A = pdfconstant("PV")

[-- Attachment #4: Type: TEXT/PLAIN, Size: 571 bytes --]

--- lpdf-ini.lua.org	2010-04-07 19:51:31.000000000 +0400
+++ lpdf-ini.lua	2010-03-25 20:33:27.000000000 +0300
@@ -278,10 +280,18 @@
 end
 
 local function pdfboolean(b,default)
-    if ((type(b) == "boolean") and b) or default then
-        return p_true
+    if type(b) ~= "boolean" then
+        if default then
+            return p_true
+        else
+            return p_false
+        end
     else
-        return p_false
+        if b then
+            return p_true
+        else
+            return p_false
+        end
     end
 end
 

[-- Attachment #5: Type: text/plain, Size: 486 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: 3D annotations
  2010-03-26  5:53       ` 3D annotations Michail Vidiassov
@ 2010-03-26 15:32         ` Hans Hagen
  0 siblings, 0 replies; 6+ messages in thread
From: Hans Hagen @ 2010-03-26 15:32 UTC (permalink / raw)
  To: mailing list for ConTeXt users

On 26-3-2010 6:53, Michail Vidiassov wrote:

> lpdf-u3d.lua
>
> if not stream then
> local attr = pdfdictionary {
> Type = pdfconstant("3D"),
> - Subtype = pdfconstant("U3D"),
> }
> + if string.upper(string.sub(foundname,-4))==".PRC" then
> + attr.Subtype = pdfconstant("PRC")
> + else
> + attr.Subtype = pdfconstant("U3D")
> + end
> local streamviews = checkedkey(streamparam, "views", "table")
> if streamviews then
> local list = pdfarray()
>
> May be a more robust way is to read first 3 bytes of the model file, since
> "U3D" or "PRC" signature is always there - that can be done instead of
> relying on file name extension or only in case it it not "u3d" or "prc".

more like:

         local subtype, subdata = "U3D", io.readdata(foundname) or ""
         if find(subdata,"^PRC") then
             subtype == "PRC"
         elseif find(subdata,"^U3D") then
             subtype == "U3D"
         elseif file.extname(foundname) == "prc" then
             subtype == "PRC"
         end

> Also PRC annotations have to trigger setting PDF version to 1.7.3
> (developer extensions dictionary mechanism).
> It can be done per your advice directly
>
> \doPDFaddtocatalog {
> /Extensions
> <</ADBE
> <</BaseVersion /1.7
> /ExtensionLevel 3
>  >>
>  >>
> }
>
> But what about an interface like \pdfmicroversion and
> automatic pushing up of PDF version once PRC annontation happens?

i don't know that command and anyway want to get rid of all commands 
that start with \pdf

concerning versions ... peter rolf and i are working on detailed support 
for standards (also related to preflighting) and before i even want to 
look in some automated version handling we first need to get that bit 
done well

> Also I try to remind you about pdfboolean problem in lpdf-ini.lua
> (old code is not OK if b is "false" and default is "true")
>
> local function pdfboolean(b,default)
> - if ((type(b) == "boolean") and b) or default then
> - return p_true
> + if type(b) ~= "boolean" then
> + if default then
> + return p_true
> + else
> + return p_false
> + end
> else
> - return p_false
> + if b then
> + return p_true
> + else
> + return p_false
> + end
> end
> end

i need to check it ... later (also for interferences)


> PS. And a great palliative way to deal with 3D annotations is via
> attaching a 3D PDF file made with LaTeX (by Asymptote, for example).

well, one can attach files as-is already (unless it's broken)

> I can not deduce from existing sea of ConTeXt code the status of file
> attachments support.

\attachment has been there for ages

actually, all kind of annotations hav ebeen supported as soon as they 
showed up in acrobat (mediademo is an exmaple of flash) but i gave up on 
implementing these things too early as in acrobat/pdf such new tricks 
normally needs a few versions to reach stability

Hans

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: 3D annotations
  2010-03-25 19:12     ` 3D annotations - was: " Michail Vidiassov
@ 2010-03-26  5:53       ` Michail Vidiassov
  2010-03-26 15:32         ` Hans Hagen
  0 siblings, 1 reply; 6+ messages in thread
From: Michail Vidiassov @ 2010-03-26  5:53 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Dear Hans,

On Thu, 25 Mar 2010, Michail Vidiassov wrote:

> On Wed, 24 Mar 2010, Hans Hagen wrote:
>
>> there is u3d support presen tbut nobody tested it
>
> thank you for your latest effort to put u3d support in a working state, but

now that Adobe has fallen in love with a new 3D format, PRC, the following 
is to be changed:

lpdf-u3d.lua

      if not stream then
          local attr = pdfdictionary {
              Type    = pdfconstant("3D"),
-            Subtype = pdfconstant("U3D"),
          }
+        if string.upper(string.sub(foundname,-4))==".PRC" then
+            attr.Subtype = pdfconstant("PRC")
+        else
+            attr.Subtype = pdfconstant("U3D")
+        end
          local streamviews = checkedkey(streamparam, "views", "table")
          if streamviews then
              local list = pdfarray()

May be a more robust way is to read first 3 bytes of the model file, since
"U3D" or "PRC" signature is always there - that can be done instead of 
relying on file name extension or only in case it it not "u3d" or "prc".

Also PRC annotations have to trigger setting PDF version to 1.7.3
(developer extensions dictionary mechanism).
It can be done per your advice directly

\doPDFaddtocatalog {
   /Extensions
     <</ADBE
         <</BaseVersion /1.7
           /ExtensionLevel 3
         >>
     >>
}

But what about an interface like \pdfmicroversion and
automatic pushing up of PDF version once PRC annontation happens?

Also I try to remind you about pdfboolean problem in lpdf-ini.lua
(old code is not OK if b is "false" and default is "true")

  local function pdfboolean(b,default)
-    if ((type(b) == "boolean") and b) or default then
-        return p_true
+    if type(b) ~= "boolean" then
+        if default then
+            return p_true
+        else
+            return p_false
+        end
      else
-        return p_false
+        if b then
+            return p_true
+        else
+            return p_false
+        end
      end
  end

        Sincerely, Michail

PS. And a great palliative way to deal with 3D annotations is via
attaching a 3D PDF file made with LaTeX (by Asymptote, for example).

But while your method of answering my messages in lua works OK for
new code (updating minimals and making a diff with old code is not
harder than checking e-mail inbox - "Your morning patch, sir!" ;),
I can not deduce from existing sea of ConTeXt code the status of file attachments support.
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-05-04 14:15 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-05-02  9:08 3D annotations gummybears
  -- strict thread matches above, loose matches on Subject: below --
2010-05-04 10:06 gummybears
2010-05-04 14:15 ` Michail Vidiassov
2010-04-17  7:00 Michail Vidiassov
2010-03-24  9:23 status of node.write Michail Vidiassov
2010-03-24  9:52 ` luigi scarso
2010-03-24 13:26   ` Hans Hagen
2010-03-25 19:12     ` 3D annotations - was: " Michail Vidiassov
2010-03-26  5:53       ` 3D annotations Michail Vidiassov
2010-03-26 15:32         ` Hans Hagen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).