diff options
Diffstat (limited to 'Build/source/utils/asymptote/runpicture.in')
-rw-r--r-- | Build/source/utils/asymptote/runpicture.in | 71 |
1 files changed, 57 insertions, 14 deletions
diff --git a/Build/source/utils/asymptote/runpicture.in b/Build/source/utils/asymptote/runpicture.in index d5a7b32b618..710aa3e2e32 100644 --- a/Build/source/utils/asymptote/runpicture.in +++ b/Build/source/utils/asymptote/runpicture.in @@ -86,6 +86,8 @@ array *nop(array *a) return a; } +triple Zero; + // Autogenerated routines: @@ -244,9 +246,9 @@ void grestore(picture *f) f->append(new drawGrestore()); } -void begingroup(picture *f, string name=emptystring) +void begingroup(picture *f) { - f->append(new drawBegin(name)); + f->append(new drawBegin()); } void endgroup(picture *f) @@ -254,6 +256,20 @@ void endgroup(picture *f) f->append(new drawEnd()); } +void _begingroup3(picture *f, string name, real compression, + real granularity, bool closed, bool tessellate, + bool dobreak, bool nobreak, triple center, Int interaction) +{ + f->append(new drawBegin3(name,compression,granularity, + closed,tessellate,dobreak,nobreak, + center,(Interaction) intcast(interaction))); +} + +void endgroup3(picture *f) +{ + f->append(new drawEnd3()); +} + void add(picture *dest, picture *src) { dest->add(*src); @@ -561,38 +577,65 @@ void deconstruct(picture *f, picture *preamble=NULL, real magnification=1, // Three-dimensional picture and surface operations // Bezier curve -void _draw(picture *f, path3 g, pen p, string name=emptystring) +void _draw(picture *f, path3 g, pen p) { if(g.size() > 0) - f->append(new drawPath3(g,p,name)); + f->append(new drawPath3(g,p)); } // Bezier patch void draw(picture *f, triplearray2 *P, triple center, bool straight, penarray *p, real opacity, real shininess, real PRCshininess, - real granularity, triple normal, penarray *colors, bool lighton, - string name=emptystring, Int interaction) + triple normal, penarray *colors, bool lighton, + Int interaction, bool prc=true) { f->append(new drawSurface(*P,center,straight,*p,opacity,shininess, - PRCshininess,granularity,normal,*colors,lighton, - name,interaction)); + PRCshininess,normal,*colors,lighton, + (Interaction) intcast(interaction),prc)); } // General NURBS curve void draw(picture *f, triplearray *P, realarray *knot, - realarray *weights=emptyarray, pen p, string name=emptystring) + realarray *weights=emptyarray, pen p) { - f->append(new drawNurbsPath3(*P,knot,weights,p,name)); + f->append(new drawNurbsPath3(*P,knot,weights,p)); } // General NURBS surface void draw(picture *f, triplearray2 *P, realarray *uknot, realarray *vknot, - realarray2 *weights=emptyarray, penarray *p, - real opacity, real shininess, real PRCshininess, real granularity, - penarray *colors, bool lighton, string name=emptystring) + realarray2 *weights=emptyarray, penarray *p, real opacity, + real shininess, real PRCshininess, penarray *colors, bool lighton) { f->append(new drawNurbs(*P,uknot,vknot,weights,*p,opacity,shininess, - PRCshininess,granularity,*colors,lighton,name)); + PRCshininess,*colors,lighton)); +} + +// PRC unit sphere +void drawPRCsphere(picture *f, realarray2 *t, bool half=false, penarray *p, + real opacity, real shininess, Int type) +{ + f->append(new drawSphere(*t,half,*p,opacity,shininess,intcast(type))); +} + +// PRC unit cylinder +void drawPRCcylinder(picture *f, realarray2 *t, penarray *p, real opacity, + real shininess) +{ + f->append(new drawCylinder(*t,*p,opacity,shininess)); +} + +// PRC unit disk +void drawPRCdisk(picture *f, realarray2 *t, penarray *p, real opacity, + real shininess) +{ + f->append(new drawDisk(*t,*p,opacity,shininess)); +} + +// General PRC tube +void drawPRCtube(picture *f, path3 center, path3 g, penarray *p, real opacity, + real shininess) +{ + f->append(new drawTube(center,g,*p,opacity,shininess)); } triple min3(picture *f) |