Index: trunk/src_3rd/libcdtr/cdt_test.c =================================================================== --- trunk/src_3rd/libcdtr/cdt_test.c (revision 33799) +++ trunk/src_3rd/libcdtr/cdt_test.c (revision 33800) @@ -117,6 +117,18 @@ P[id] = NULL; } +static double coord_scale = 1; + +static void cmd_scale(char *args) +{ + double tmp; + if (sscanf(args, "%lf", &tmp) != 1) { + fprintf(stderr, "syntax error: scale requires a numeric argument\n"); + return; + } + coord_scale = tmp; +} + static void cmd_ins_point(char *args, int raw) { point_t *p; @@ -139,6 +151,9 @@ return; } + x *= coord_scale; + y *= coord_scale; + if (raw) { point_t *p = *vtpoint_alloc_append(&cdt.points, 1); p->pos.x = x; @@ -366,6 +381,7 @@ else if (strcmp(cmd, "auto") == 0) autotest(); else if (strcmp(cmd, "echo") == 0) printf("%s", args); /* newline is in args already */ else if (strcmp(cmd, "include") == 0) cmd_include(args); + else if (strcmp(cmd, "scale") == 0) cmd_scale(args); else if (strcmp(cmd, "init") == 0) cmd_init(args); else if (strcmp(cmd, "raw_init") == 0) cmd_raw_init(args); else if (strcmp(cmd, "free") == 0) cmd_free(args);