diff options
author | Karl Berry <karl@freefriends.org> | 2015-05-11 22:12:25 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-05-11 22:12:25 +0000 |
commit | 0417a4fa56359c545358f5fb8c9b3f88a1845db2 (patch) | |
tree | ed331ec191a82fe896f05005dee844269e406281 /Build/source/utils/asymptote/runpair.cc | |
parent | e7256bd4adc1d8df03ed8434e3f9cc15817b6f22 (diff) |
asy 2.33 sources
git-svn-id: svn://tug.org/texlive/trunk@37343 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/asymptote/runpair.cc')
-rw-r--r-- | Build/source/utils/asymptote/runpair.cc | 57 |
1 files changed, 35 insertions, 22 deletions
diff --git a/Build/source/utils/asymptote/runpair.cc b/Build/source/utils/asymptote/runpair.cc index 4e68bf1a1a5..80936e7bd0d 100644 --- a/Build/source/utils/asymptote/runpair.cc +++ b/Build/source/utils/asymptote/runpair.cc @@ -234,7 +234,7 @@ void gen_runpair13(stack *Stack) { real deg=vm::pop<real>(Stack); #line 122 "runpair.in" - int n=deg/90.0; + int n=(int) (deg/90.0); if(deg == n*90.0) { int m=n % 4; if(m < 0) m += 4; @@ -251,7 +251,7 @@ void gen_runpair14(stack *Stack) { real deg=vm::pop<real>(Stack); #line 135 "runpair.in" - int n=deg/90.0; + int n=(int) (deg/90.0); if(deg == n*90.0) { int m=n % 4; if(m < 0) m += 4; @@ -268,7 +268,7 @@ void gen_runpair15(stack *Stack) { real deg=vm::pop<real>(Stack); #line 148 "runpair.in" - int n=deg/90.0; + int n=(int) (deg/90.0); if(deg == n*90.0) { int m=n % 4; if(m < 0) m += 4; @@ -418,56 +418,67 @@ void gen_runpair30(stack *Stack) {Stack->push<real>(dot(z,w)); return;} } -#line 237 "runpair.in" -// pair bezier(pair a, pair b, pair c, pair d, real t); +// Return the 2D scalar cross product z.x*w.y-z.y*w.x. +#line 238 "runpair.in" +// real cross(explicit pair z, explicit pair w); void gen_runpair31(stack *Stack) { + pair w=vm::pop<pair>(Stack); + pair z=vm::pop<pair>(Stack); +#line 239 "runpair.in" + {Stack->push<real>(cross(z,w)); return;} +} + +#line 243 "runpair.in" +// pair bezier(pair a, pair b, pair c, pair d, real t); +void gen_runpair32(stack *Stack) +{ real t=vm::pop<real>(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 238 "runpair.in" +#line 244 "runpair.in" real onemt=1-t; real onemt2=onemt*onemt; {Stack->push<pair>(onemt2*onemt*a+t*(3.0*(onemt2*b+t*onemt*c)+t*t*d)); return;} } -#line 244 "runpair.in" +#line 250 "runpair.in" // pair bezierP(pair a, pair b, pair c, pair d, real t); -void gen_runpair32(stack *Stack) +void gen_runpair33(stack *Stack) { real t=vm::pop<real>(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 245 "runpair.in" +#line 251 "runpair.in" {Stack->push<pair>(3.0*(t*t*(d-a+3.0*(b-c))+t*(2.0*(a+c)-4.0*b)+b-a)); return;} } -#line 249 "runpair.in" +#line 255 "runpair.in" // pair bezierPP(pair a, pair b, pair c, pair d, real t); -void gen_runpair33(stack *Stack) +void gen_runpair34(stack *Stack) { real t=vm::pop<real>(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 250 "runpair.in" +#line 256 "runpair.in" {Stack->push<pair>(6.0*(t*(d-a+3.0*(b-c))+a+c-2.0*b)); return;} } -#line 254 "runpair.in" +#line 260 "runpair.in" // pair bezierPPP(pair a, pair b, pair c, pair d); -void gen_runpair34(stack *Stack) +void gen_runpair35(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 255 "runpair.in" +#line 261 "runpair.in" {Stack->push<pair>(6.0*(d-a+3.0*(b-c))); return;} } @@ -540,13 +551,15 @@ void gen_runpair_venv(venv &ve) #line 231 "runpair.in" addFunc(ve, run::gen_runpair30, primReal(), SYM(dot), formal(primPair(), SYM(z), false, true), formal(primPair(), SYM(w), false, true)); #line 237 "runpair.in" - addFunc(ve, run::gen_runpair31, primPair(), SYM(bezier), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); -#line 244 "runpair.in" - addFunc(ve, run::gen_runpair32, primPair(), SYM(bezierP), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); -#line 249 "runpair.in" - addFunc(ve, run::gen_runpair33, primPair(), SYM(bezierPP), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); -#line 254 "runpair.in" - addFunc(ve, run::gen_runpair34, primPair(), SYM(bezierPPP), 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_runpair31, primReal(), SYM(cross), formal(primPair(), SYM(z), false, true), formal(primPair(), SYM(w), false, true)); +#line 243 "runpair.in" + addFunc(ve, run::gen_runpair32, primPair(), SYM(bezier), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); +#line 250 "runpair.in" + addFunc(ve, run::gen_runpair33, primPair(), SYM(bezierP), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); +#line 255 "runpair.in" + addFunc(ve, run::gen_runpair34, primPair(), SYM(bezierPP), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); +#line 260 "runpair.in" + addFunc(ve, run::gen_runpair35, primPair(), SYM(bezierPPP), 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 |