diff options
author | Karl Berry <karl@freefriends.org> | 2013-04-02 23:03:22 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-04-02 23:03:22 +0000 |
commit | 324efbd652f973cd70f42fe08c665c518995bcbe (patch) | |
tree | 818ae382dfa133f3dcceec8e12e4cbd42be8bcf4 /Build/source/utils/asymptote/runpath.cc | |
parent | bbf699abe485e707133ff3ba502119f261f27269 (diff) |
asy 2.21 sources (no runtime update)
git-svn-id: svn://tug.org/texlive/trunk@29618 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/asymptote/runpath.cc')
-rw-r--r-- | Build/source/utils/asymptote/runpath.cc | 213 |
1 files changed, 106 insertions, 107 deletions
diff --git a/Build/source/utils/asymptote/runpath.cc b/Build/source/utils/asymptote/runpath.cc index d6873fffb32..64a0d08b8e3 100644 --- a/Build/source/utils/asymptote/runpath.cc +++ b/Build/source/utils/asymptote/runpath.cc @@ -502,26 +502,35 @@ void gen_runpath33(stack *Stack) } #line 276 "runpath.in" -// pair min(patharray *a); +// Int size(patharray *p); void gen_runpath34(stack *Stack) { - patharray * a=vm::pop<patharray *>(Stack); + patharray * p=vm::pop<patharray *>(Stack); #line 277 "runpath.in" - if (!a) { - error("min called on null path array"); - {Stack->push<pair>(pair(0,0)); return;} - } - if (a->empty()) { - error("min called on empty path array"); - {Stack->push<pair>(pair(0,0)); return;} - } + size_t size=checkArray(p); + Int count=0; + for (size_t i = 0; i < size; i++) + count += read<path *>(p,i)->size(); + {Stack->push<Int>(count); return;} +} - path *g = a->read<path *>(0); +#line 285 "runpath.in" +// pair min(patharray *p); +void gen_runpath35(stack *Stack) +{ + patharray * p=vm::pop<patharray *>(Stack); +#line 286 "runpath.in" + size_t size=checkArray(p); + + if(size == 0) + error(nopoints); + + path *g = p->read<path *>(0); pair z = g->min(); double minx = z.getx(), miny = z.gety(); - for (size_t i = 1; i < a->size(); ++i) { - path *g = a->read<path *>(i); + for (size_t i = 1; i < size; ++i) { + path *g = p->read<path *>(i); pair z = g->min(); double x = z.getx(), y = z.gety(); if (x < minx) @@ -533,27 +542,23 @@ void gen_runpath34(stack *Stack) {Stack->push<pair>(pair(minx, miny)); return;} } -#line 304 "runpath.in" -// pair max(patharray *a); -void gen_runpath35(stack *Stack) +#line 309 "runpath.in" +// pair max(patharray *p); +void gen_runpath36(stack *Stack) { - patharray * a=vm::pop<patharray *>(Stack); -#line 305 "runpath.in" - if (!a) { - error("max called on null path array"); - {Stack->push<pair>(pair(0,0)); return;} - } - if (a->empty()) { - error("max called on empty path array"); - {Stack->push<pair>(pair(0,0)); return;} - } + patharray * p=vm::pop<patharray *>(Stack); +#line 310 "runpath.in" + size_t size=checkArray(p); + + if(size == 0) + error(nopoints); - path *g = a->read<path *>(0); + path *g = p->read<path *>(0); pair z = g->max(); double maxx = z.getx(), maxy = z.gety(); - for (size_t i = 1; i < a->size(); ++i) { - path *g = a->read<path *>(i); + for (size_t i = 1; i < size; ++i) { + path *g = p->read<path *>(i); pair z = g->max(); double x = z.getx(), y = z.gety(); if (x > maxx) @@ -565,28 +570,24 @@ void gen_runpath35(stack *Stack) {Stack->push<pair>(pair(maxx, maxy)); return;} } -#line 332 "runpath.in" -// pair minAfterTransform(transform t, patharray *a); -void gen_runpath36(stack *Stack) +#line 333 "runpath.in" +// pair minAfterTransform(transform t, patharray *p); +void gen_runpath37(stack *Stack) { - patharray * a=vm::pop<patharray *>(Stack); + patharray * p=vm::pop<patharray *>(Stack); transform t=vm::pop<transform>(Stack); -#line 333 "runpath.in" - if (!a) { - error("minAfterTransform called on null path array"); - {Stack->push<pair>(pair(0,0)); return;} - } - if (a->empty()) { - error("minAfterTransform called on empty path array"); - {Stack->push<pair>(pair(0,0)); return;} - } +#line 334 "runpath.in" + size_t size=checkArray(p); + + if(size == 0) + error(nopoints); - path g = a->read<path *>(0)->transformed(t); + path g = p->read<path *>(0)->transformed(t); pair z = g.min(); double minx = z.getx(), miny = z.gety(); - for (size_t i = 1; i < a->size(); ++i) { - path g = a->read<path *>(i)->transformed(t); + for (size_t i = 1; i < size; ++i) { + path g = p->read<path *>(i)->transformed(t); pair z = g.min(); double x = z.getx(), y = z.gety(); if (x < minx) @@ -598,28 +599,24 @@ void gen_runpath36(stack *Stack) {Stack->push<pair>(pair(minx, miny)); return;} } -#line 360 "runpath.in" -// pair maxAfterTransform(transform t, patharray *a); -void gen_runpath37(stack *Stack) +#line 357 "runpath.in" +// pair maxAfterTransform(transform t, patharray *p); +void gen_runpath38(stack *Stack) { - patharray * a=vm::pop<patharray *>(Stack); + patharray * p=vm::pop<patharray *>(Stack); transform t=vm::pop<transform>(Stack); -#line 361 "runpath.in" - if (!a) { - error("maxAfterTransform called on null path array"); - {Stack->push<pair>(pair(0,0)); return;} - } - if (a->empty()) { - error("maxAfterTransform called on empty path array"); - {Stack->push<pair>(pair(0,0)); return;} - } +#line 358 "runpath.in" + size_t size=checkArray(p); + + if(size == 0) + error(nopoints); - path g = a->read<path *>(0)->transformed(t); + path g = p->read<path *>(0)->transformed(t); pair z = g.max(); double maxx = z.getx(), maxy = z.gety(); - for (size_t i = 1; i < a->size(); ++i) { - path g = a->read<path *>(i)->transformed(t); + for (size_t i = 1; i < size; ++i) { + path g = p->read<path *>(i)->transformed(t); pair z = g.max(); double x = z.getx(), y = z.gety(); if (x > maxx) @@ -631,12 +628,12 @@ void gen_runpath37(stack *Stack) {Stack->push<pair>(pair(maxx, maxy)); return;} } -#line 388 "runpath.in" +#line 381 "runpath.in" // realarray* mintimes(path p); -void gen_runpath38(stack *Stack) +void gen_runpath39(stack *Stack) { path p=vm::pop<path>(Stack); -#line 389 "runpath.in" +#line 382 "runpath.in" array *V=new array(2); pair z=p.mintimes(); (*V)[0]=z.getx(); @@ -644,12 +641,12 @@ void gen_runpath38(stack *Stack) {Stack->push<realarray*>(V); return;} } -#line 397 "runpath.in" +#line 390 "runpath.in" // realarray* maxtimes(path p); -void gen_runpath39(stack *Stack) +void gen_runpath40(stack *Stack) { path p=vm::pop<path>(Stack); -#line 398 "runpath.in" +#line 391 "runpath.in" array *V=new array(2); pair z=p.maxtimes(); (*V)[0]=z.getx(); @@ -657,74 +654,74 @@ void gen_runpath39(stack *Stack) {Stack->push<realarray*>(V); return;} } -#line 406 "runpath.in" +#line 399 "runpath.in" // real relativedistance(real theta, real phi, real t, bool atleast); -void gen_runpath40(stack *Stack) +void gen_runpath41(stack *Stack) { bool atleast=vm::pop<bool>(Stack); real t=vm::pop<real>(Stack); real phi=vm::pop<real>(Stack); real theta=vm::pop<real>(Stack); -#line 407 "runpath.in" +#line 400 "runpath.in" {Stack->push<real>(camp::velocity(theta,phi,tension(t,atleast))); return;} } -#line 411 "runpath.in" +#line 404 "runpath.in" // Int windingnumber(patharray *p, pair z); -void gen_runpath41(stack *Stack) +void gen_runpath42(stack *Stack) { pair z=vm::pop<pair>(Stack); patharray * p=vm::pop<patharray *>(Stack); -#line 412 "runpath.in" +#line 405 "runpath.in" {Stack->push<Int>(windingnumber(p,z)); return;} } -#line 416 "runpath.in" +#line 409 "runpath.in" // bool inside(explicit patharray *g, pair z, pen fillrule=CURRENTPEN); -void gen_runpath42(stack *Stack) +void gen_runpath43(stack *Stack) { pen fillrule=vm::pop<pen>(Stack,CURRENTPEN); pair z=vm::pop<pair>(Stack); patharray * g=vm::pop<patharray *>(Stack); -#line 417 "runpath.in" +#line 410 "runpath.in" {Stack->push<bool>(fillrule.inside(windingnumber(g,z))); return;} } -#line 421 "runpath.in" +#line 414 "runpath.in" // bool inside(path g, pair z, pen fillrule=CURRENTPEN); -void gen_runpath43(stack *Stack) +void gen_runpath44(stack *Stack) { pen fillrule=vm::pop<pen>(Stack,CURRENTPEN); pair z=vm::pop<pair>(Stack); path g=vm::pop<path>(Stack); -#line 422 "runpath.in" +#line 415 "runpath.in" {Stack->push<bool>(fillrule.inside(g.windingnumber(z))); return;} } // Determine the side of a--b that c lies on // (negative=left, zero=on line, positive=right). -#line 428 "runpath.in" +#line 421 "runpath.in" // real side(pair a, pair b, pair c); -void gen_runpath44(stack *Stack) +void gen_runpath45(stack *Stack) { pair c=vm::pop<pair>(Stack); pair b=vm::pop<pair>(Stack); pair a=vm::pop<pair>(Stack); -#line 429 "runpath.in" +#line 422 "runpath.in" {Stack->push<real>(orient2d(a,b,c)); return;} } // Determine the side of the counterclockwise circle through a,b,c that d // lies on (negative=inside, 0=on circle, positive=right). -#line 435 "runpath.in" +#line 428 "runpath.in" // real incircle(pair a, pair b, pair c, pair d); -void gen_runpath45(stack *Stack) +void gen_runpath46(stack *Stack) { pair d=vm::pop<pair>(Stack); pair c=vm::pop<pair>(Stack); pair b=vm::pop<pair>(Stack); pair a=vm::pop<pair>(Stack); -#line 436 "runpath.in" +#line 429 "runpath.in" {Stack->push<real>(incircle(a.getx(),a.gety(),b.getx(),b.gety(),c.getx(),c.gety(), d.getx(),d.gety())); return;} } @@ -804,29 +801,31 @@ void gen_runpath_venv(venv &ve) #line 271 "runpath.in" addFunc(ve, run::gen_runpath33, primPair(), SYM(max), formal(primPath(), SYM(p), false, false)); #line 276 "runpath.in" - addFunc(ve, run::gen_runpath34, primPair(), SYM(min), formal(pathArray() , SYM(a), false, false)); -#line 304 "runpath.in" - addFunc(ve, run::gen_runpath35, primPair(), SYM(max), formal(pathArray() , SYM(a), false, false)); -#line 332 "runpath.in" - addFunc(ve, run::gen_runpath36, primPair(), SYM(minAfterTransform), formal(primTransform(), SYM(t), false, false), formal(pathArray() , SYM(a), false, false)); -#line 360 "runpath.in" - addFunc(ve, run::gen_runpath37, primPair(), SYM(maxAfterTransform), formal(primTransform(), SYM(t), false, false), formal(pathArray() , SYM(a), false, false)); -#line 388 "runpath.in" - addFunc(ve, run::gen_runpath38, realArray(), SYM(mintimes), formal(primPath(), SYM(p), false, false)); -#line 397 "runpath.in" - addFunc(ve, run::gen_runpath39, realArray(), SYM(maxtimes), formal(primPath(), SYM(p), false, false)); -#line 406 "runpath.in" - addFunc(ve, run::gen_runpath40, primReal(), SYM(relativedistance), formal(primReal(), SYM(theta), false, false), formal(primReal(), SYM(phi), false, false), formal(primReal(), SYM(t), false, false), formal(primBoolean(), SYM(atleast), false, false)); -#line 411 "runpath.in" - addFunc(ve, run::gen_runpath41, primInt(), SYM(windingnumber), formal(pathArray() , SYM(p), false, false), formal(primPair(), SYM(z), false, false)); -#line 416 "runpath.in" - addFunc(ve, run::gen_runpath42, primBoolean(), SYM(inside), formal(pathArray() , SYM(g), false, true), formal(primPair(), SYM(z), false, false), formal(primPen(), SYM(fillrule), true, false)); -#line 421 "runpath.in" - addFunc(ve, run::gen_runpath43, primBoolean(), SYM(inside), formal(primPath(), SYM(g), false, false), formal(primPair(), SYM(z), false, false), formal(primPen(), SYM(fillrule), true, false)); + addFunc(ve, run::gen_runpath34, primInt(), SYM(size), formal(pathArray() , SYM(p), false, false)); +#line 285 "runpath.in" + addFunc(ve, run::gen_runpath35, primPair(), SYM(min), formal(pathArray() , SYM(p), false, false)); +#line 309 "runpath.in" + addFunc(ve, run::gen_runpath36, primPair(), SYM(max), formal(pathArray() , SYM(p), false, false)); +#line 333 "runpath.in" + addFunc(ve, run::gen_runpath37, primPair(), SYM(minAfterTransform), formal(primTransform(), SYM(t), false, false), formal(pathArray() , SYM(p), false, false)); +#line 357 "runpath.in" + addFunc(ve, run::gen_runpath38, primPair(), SYM(maxAfterTransform), formal(primTransform(), SYM(t), false, false), formal(pathArray() , SYM(p), false, false)); +#line 381 "runpath.in" + addFunc(ve, run::gen_runpath39, realArray(), SYM(mintimes), formal(primPath(), SYM(p), false, false)); +#line 390 "runpath.in" + addFunc(ve, run::gen_runpath40, realArray(), SYM(maxtimes), formal(primPath(), SYM(p), false, false)); +#line 399 "runpath.in" + addFunc(ve, run::gen_runpath41, primReal(), SYM(relativedistance), formal(primReal(), SYM(theta), false, false), formal(primReal(), SYM(phi), false, false), formal(primReal(), SYM(t), false, false), formal(primBoolean(), SYM(atleast), false, false)); +#line 404 "runpath.in" + addFunc(ve, run::gen_runpath42, primInt(), SYM(windingnumber), formal(pathArray() , SYM(p), false, false), formal(primPair(), SYM(z), false, false)); +#line 409 "runpath.in" + addFunc(ve, run::gen_runpath43, primBoolean(), SYM(inside), formal(pathArray() , SYM(g), false, true), formal(primPair(), SYM(z), false, false), formal(primPen(), SYM(fillrule), true, false)); +#line 414 "runpath.in" + addFunc(ve, run::gen_runpath44, primBoolean(), SYM(inside), formal(primPath(), SYM(g), false, false), formal(primPair(), SYM(z), false, false), formal(primPen(), SYM(fillrule), true, false)); +#line 419 "runpath.in" + addFunc(ve, run::gen_runpath45, primReal(), SYM(side), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false)); #line 426 "runpath.in" - addFunc(ve, run::gen_runpath44, primReal(), SYM(side), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false)); -#line 433 "runpath.in" - addFunc(ve, run::gen_runpath45, primReal(), SYM(incircle), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false)); + addFunc(ve, run::gen_runpath46, primReal(), SYM(incircle), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false)); } } // namespace trans |