1
0
mirror of git://projects.qi-hardware.com/cae-tools.git synced 2024-12-23 13:46:47 +02:00
cae-tools/poly2d/test/offset
Werner Almesberger 46c8f8653c poly2d/: automatically switch between clockwise and counter-clockwise polygons
The only functions that care about this at the moment are from CGAL,
and there we can determine from context what to do.
2012-05-07 22:12:21 -03:00

77 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
. ./Common
###############################################################################
tst "outer offset" <<EOF
struct p2d *p = p2d_new();
struct p2d *q;
p2d_append(p, v2d_new(0, 0));
p2d_append(p, v2d_new(2, 0));
p2d_append(p, v2d_new(2, 1));
p2d_append(p, v2d_new(0, 1));
p2d_close(p);
q = p2d_offset(p, 0.5);
p2d_write_gnuplot(stdout, p2d_reverse(q->next));
EOF
expect <<EOF
-0.5 -0.5
2.5 -0.5
2.5 1.5
-0.5 1.5
-0.5 -0.5
EOF
#------------------------------------------------------------------------------
tst "inner offset" <<EOF
struct p2d *p = p2d_new();
struct p2d *q;
p2d_append(p, v2d_new(0, 0));
p2d_append(p, v2d_new(2, 0));
p2d_append(p, v2d_new(2, 1));
p2d_append(p, v2d_new(0, 1));
p2d_close(p);
q = p2d_offset(p, -0.1);
p2d_write_gnuplot(stdout, q);
EOF
expect <<EOF
0.1 0.1
1.9 0.1
1.9 0.9
0.1 0.9
0.1 0.1
EOF
#------------------------------------------------------------------------------
tst "inner offset, polygon cw" <<EOF
struct p2d *p = p2d_new();
struct p2d *q;
p2d_append(p, v2d_new(0, 0));
p2d_append(p, v2d_new(0, 1));
p2d_append(p, v2d_new(2, 1));
p2d_append(p, v2d_new(2, 0));
p2d_close(p);
q = p2d_offset(p, -0.1);
p2d_write_gnuplot(stdout, q);
EOF
expect <<EOF
0.1 0.1
1.9 0.1
1.9 0.9
0.1 0.9
0.1 0.1
EOF
###############################################################################