1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
#include "libavoid/libavoid.h"
using namespace Avoid;
int main(void) {
Router *router = new Router(
PolyLineRouting | OrthogonalRouting);
router->setRoutingParameter((RoutingParameter)0, 10);
router->setRoutingParameter((RoutingParameter)1, 0);
router->setRoutingParameter((RoutingParameter)2, 0);
router->setRoutingParameter((RoutingParameter)3, 4000);
router->setRoutingParameter((RoutingParameter)4, 400);
router->setRoutingParameter((RoutingParameter)5, 100);
router->setRoutingOption((RoutingOption)0, false);
router->setRoutingOption((RoutingOption)1, true);
router->setRoutingOption((RoutingOption)2, false);
router->setRoutingOption((RoutingOption)3, false);
Polygon poly1(4);
poly1.ps[0] = Point(99, -20);
poly1.ps[1] = Point(99, 0);
poly1.ps[2] = Point(55, 0);
poly1.ps[3] = Point(55, -20);
new ShapeRef(router, poly1, 1);
Polygon poly2(4);
poly2.ps[0] = Point(20, -65);
poly2.ps[1] = Point(20, -45);
poly2.ps[2] = Point(0, -45);
poly2.ps[3] = Point(0, -65);
new ShapeRef(router, poly2, 2);
Polygon poly3(4);
poly3.ps[0] = Point(20, -90);
poly3.ps[1] = Point(20, -70);
poly3.ps[2] = Point(0, -70);
poly3.ps[3] = Point(0, -90);
new ShapeRef(router, poly3, 3);
Polygon poly4(4);
poly4.ps[0] = Point(20, -115);
poly4.ps[1] = Point(20, -95);
poly4.ps[2] = Point(0, -95);
poly4.ps[3] = Point(0, -115);
new ShapeRef(router, poly4, 4);
Polygon poly5(4);
poly5.ps[0] = Point(20, -140);
poly5.ps[1] = Point(20, -120);
poly5.ps[2] = Point(0, -120);
poly5.ps[3] = Point(0, -140);
new ShapeRef(router, poly5, 5);
Polygon poly6(4);
poly6.ps[0] = Point(75, -185);
poly6.ps[1] = Point(75, -165);
poly6.ps[2] = Point(55, -165);
poly6.ps[3] = Point(55, -185);
new ShapeRef(router, poly6, 6);
Polygon poly7(4);
poly7.ps[0] = Point(100, -185);
poly7.ps[1] = Point(100, -165);
poly7.ps[2] = Point(80, -165);
poly7.ps[3] = Point(80, -185);
new ShapeRef(router, poly7, 7);
Polygon poly8(4);
poly8.ps[0] = Point(125, -185);
poly8.ps[1] = Point(125, -165);
poly8.ps[2] = Point(105, -165);
poly8.ps[3] = Point(105, -185);
new ShapeRef(router, poly8, 8);
Polygon poly9(4);
poly9.ps[0] = Point(150, -185);
poly9.ps[1] = Point(150, -165);
poly9.ps[2] = Point(130, -165);
poly9.ps[3] = Point(130, -185);
new ShapeRef(router, poly9, 9);
Polygon poly10(4);
poly10.ps[0] = Point(175, -185);
poly10.ps[1] = Point(175, -165);
poly10.ps[2] = Point(155, -165);
poly10.ps[3] = Point(155, -185);
new ShapeRef(router, poly10, 10);
ConnRef *connRef11 = new ConnRef(router, 11);
ConnEnd srcPt11(Point(20, -47), 15);
connRef11->setSourceEndpoint(srcPt11);
ConnEnd dstPt11(Point(57, -165), 15);
connRef11->setDestEndpoint(dstPt11);
connRef11->setRoutingType((ConnType)2);
ConnRef *connRef12 = new ConnRef(router, 12);
ConnEnd srcPt12(Point(61, -165), 15);
connRef12->setSourceEndpoint(srcPt12);
ConnEnd dstPt12(Point(57, -20), 15);
connRef12->setDestEndpoint(dstPt12);
connRef12->setRoutingType((ConnType)2);
ConnRef *connRef13 = new ConnRef(router, 13);
ConnEnd srcPt13(Point(15, -74), 15);
connRef13->setSourceEndpoint(srcPt13);
ConnEnd dstPt13(Point(65, -20), 15);
connRef13->setDestEndpoint(dstPt13);
connRef13->setRoutingType((ConnType)2);
ConnRef *connRef14 = new ConnRef(router, 14);
ConnEnd srcPt14(Point(61, -20), 15);
connRef14->setSourceEndpoint(srcPt14);
ConnEnd dstPt14(Point(61, -24), 15);
connRef14->setDestEndpoint(dstPt14);
connRef14->setRoutingType((ConnType)2);
router->processTransaction();
router->outputDiagram("output/inlineoverlap08");
bool overlap = router->existsOrthogonalFixedSegmentOverlap();
delete router;
return (overlap) ? 1 : 0;
};
|