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
|
#include "libavoid/libavoid.h"
using namespace Avoid;
int main(void) {
Router *router = new Router(OrthogonalRouting);
router->setRoutingParameter((RoutingParameter)0, 50);
router->setRoutingParameter((RoutingParameter)1, 0);
router->setRoutingParameter((RoutingParameter)2, 200);
router->setRoutingParameter((RoutingParameter)3, 4000);
router->setRoutingParameter((RoutingParameter)4, 20000);
router->setRoutingParameter((RoutingParameter)5, 100);
router->setRoutingParameter((RoutingParameter)6, 0);
router->setRoutingParameter((RoutingParameter)7, 25);
router->setRoutingOption((RoutingOption)0, false);
router->setRoutingOption((RoutingOption)1, true);
router->setRoutingOption((RoutingOption)2, true);
router->setRoutingOption((RoutingOption)3, false);
router->setRoutingOption((RoutingOption)4, true);
router->setRoutingOption((RoutingOption)5, true);
Polygon polygon;
ConnRef *connRef = nullptr;
ConnEnd srcPt;
ConnEnd dstPt;
PolyLine newRoute;
// shapeRef320077872
polygon = Polygon(4);
polygon.ps[0] = Point(51000, 50740);
polygon.ps[1] = Point(51000, 51135);
polygon.ps[2] = Point(50650, 51135);
polygon.ps[3] = Point(50650, 50740);
ShapeRef *shapeRef320077872 = new ShapeRef(router, polygon, 320077872);
new ShapeConnectionPin(shapeRef320077872, 1, 0, 0.21519, true, 10, (ConnDirFlags) 4);
new ShapeConnectionPin(shapeRef320077872, 2, 1, 0.21519, true, 10, (ConnDirFlags) 8);
new ShapeConnectionPin(shapeRef320077872, 3, 0.0714286, 0.405063, true, 10, (ConnDirFlags) 4);
new ShapeConnectionPin(shapeRef320077872, 4, 1, 0.405063, true, 10, (ConnDirFlags) 8);
new ShapeConnectionPin(shapeRef320077872, 5, 0.0714286, 0.594937, true, 10, (ConnDirFlags) 4);
new ShapeConnectionPin(shapeRef320077872, 6, 1, 0.594937, true, 10, (ConnDirFlags) 8);
new ShapeConnectionPin(shapeRef320077872, 7, 0, 0.78481, true, 10, (ConnDirFlags) 4);
new ShapeConnectionPin(shapeRef320077872, 8, 1, 0.78481, true, 10, (ConnDirFlags) 8);
// shapeRef346216920
polygon = Polygon(4);
polygon.ps[0] = Point(51650, 50740);
polygon.ps[1] = Point(51650, 51135);
polygon.ps[2] = Point(51300, 51135);
polygon.ps[3] = Point(51300, 50740);
ShapeRef *shapeRef346216920 = new ShapeRef(router, polygon, 346216920);
new ShapeConnectionPin(shapeRef346216920, 1, 0, 0.21519, true, 10, (ConnDirFlags) 4);
new ShapeConnectionPin(shapeRef346216920, 2, 1, 0.21519, true, 10, (ConnDirFlags) 8);
new ShapeConnectionPin(shapeRef346216920, 3, 0, 0.405063, true, 10, (ConnDirFlags) 4);
new ShapeConnectionPin(shapeRef346216920, 4, 0.928571, 0.405063, true, 10, (ConnDirFlags) 8);
new ShapeConnectionPin(shapeRef346216920, 5, 0, 0.594937, true, 10, (ConnDirFlags) 4);
new ShapeConnectionPin(shapeRef346216920, 6, 0.928571, 0.594937, true, 10, (ConnDirFlags) 8);
new ShapeConnectionPin(shapeRef346216920, 7, 0, 0.78481, true, 10, (ConnDirFlags) 4);
new ShapeConnectionPin(shapeRef346216920, 8, 1, 0.78481, true, 10, (ConnDirFlags) 8);
// connRef13958908
connRef = new ConnRef(router, 13958908);
srcPt = ConnEnd(shapeRef346216920, 3);
connRef->setSourceEndpoint(srcPt);
dstPt = ConnEnd(shapeRef320077872, 6);
connRef->setDestEndpoint(dstPt);
connRef->setRoutingType((ConnType)2);
// connRef81482716
connRef = new ConnRef(router, 81482716);
srcPt = ConnEnd(shapeRef320077872, 8);
connRef->setSourceEndpoint(srcPt);
dstPt = ConnEnd(shapeRef346216920, 7);
connRef->setDestEndpoint(dstPt);
connRef->setRoutingType((ConnType)2);
// connRef180721992
connRef = new ConnRef(router, 180721992);
srcPt = ConnEnd(shapeRef320077872, 4);
connRef->setSourceEndpoint(srcPt);
dstPt = ConnEnd(shapeRef346216920, 5);
connRef->setDestEndpoint(dstPt);
connRef->setRoutingType((ConnType)2);
// connRef273666240
connRef = new ConnRef(router, 273666240);
srcPt = ConnEnd(shapeRef320077872, 2);
connRef->setSourceEndpoint(srcPt);
dstPt = ConnEnd(shapeRef346216920, 1);
connRef->setDestEndpoint(dstPt);
connRef->setRoutingType((ConnType)2);
router->processTransaction();
router->outputDiagram("output/inlineoverlap10");
bool overlap = router->existsOrthogonalFixedSegmentOverlap();
delete router;
return (overlap) ? 1 : 0;
};
|