|
|
|
@ -551,8 +551,13 @@ struct path_procs_t |
|
|
|
|
|
|
|
|
|
static void rcurveline (ENV &env, PARAM& param) |
|
|
|
|
{ |
|
|
|
|
unsigned int arg_count = env.argStack.get_count (); |
|
|
|
|
if (unlikely (arg_count < 8)) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
unsigned int i = 0; |
|
|
|
|
for (; i + 6 <= env.argStack.get_count (); i += 6) |
|
|
|
|
unsigned int curve_limit = arg_count - 2; |
|
|
|
|
for (; i + 6 <= curve_limit; i += 6) |
|
|
|
|
{ |
|
|
|
|
point_t pt1 = env.get_pt (); |
|
|
|
|
pt1.move (env.eval_arg (i), env.eval_arg (i+1)); |
|
|
|
@ -562,34 +567,34 @@ struct path_procs_t |
|
|
|
|
pt3.move (env.eval_arg (i+4), env.eval_arg (i+5)); |
|
|
|
|
PATH::curve (env, param, pt1, pt2, pt3); |
|
|
|
|
} |
|
|
|
|
for (; i + 2 <= env.argStack.get_count (); i += 2) |
|
|
|
|
{ |
|
|
|
|
point_t pt1 = env.get_pt (); |
|
|
|
|
pt1.move (env.eval_arg (i), env.eval_arg (i+1)); |
|
|
|
|
PATH::line (env, param, pt1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
point_t pt1 = env.get_pt (); |
|
|
|
|
pt1.move (env.eval_arg (i), env.eval_arg (i+1)); |
|
|
|
|
PATH::line (env, param, pt1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void rlinecurve (ENV &env, PARAM& param) |
|
|
|
|
{ |
|
|
|
|
unsigned int arg_count = env.argStack.get_count (); |
|
|
|
|
if (unlikely (arg_count < 8)) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
unsigned int i = 0; |
|
|
|
|
unsigned int line_limit = (env.argStack.get_count () - 6); |
|
|
|
|
unsigned int line_limit = arg_count - 6; |
|
|
|
|
for (; i + 2 <= line_limit; i += 2) |
|
|
|
|
{ |
|
|
|
|
point_t pt1 = env.get_pt (); |
|
|
|
|
pt1.move (env.eval_arg (i), env.eval_arg (i+1)); |
|
|
|
|
PATH::line (env, param, pt1); |
|
|
|
|
} |
|
|
|
|
for (; i + 6 <= env.argStack.get_count (); i += 6) |
|
|
|
|
{ |
|
|
|
|
point_t pt1 = env.get_pt (); |
|
|
|
|
pt1.move (env.eval_arg (i), env.eval_arg (i+1)); |
|
|
|
|
point_t pt2 = pt1; |
|
|
|
|
pt2.move (env.eval_arg (i+2), env.eval_arg (i+3)); |
|
|
|
|
point_t pt3 = pt2; |
|
|
|
|
pt3.move (env.eval_arg (i+4), env.eval_arg (i+5)); |
|
|
|
|
PATH::curve (env, param, pt1, pt2, pt3); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
point_t pt1 = env.get_pt (); |
|
|
|
|
pt1.move (env.eval_arg (i), env.eval_arg (i+1)); |
|
|
|
|
point_t pt2 = pt1; |
|
|
|
|
pt2.move (env.eval_arg (i+2), env.eval_arg (i+3)); |
|
|
|
|
point_t pt3 = pt2; |
|
|
|
|
pt3.move (env.eval_arg (i+4), env.eval_arg (i+5)); |
|
|
|
|
PATH::curve (env, param, pt1, pt2, pt3); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void vvcurveto (ENV &env, PARAM& param) |
|
|
|
|