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
|
#include "libavoid/libavoid.h"
#include <sstream>
using namespace Avoid;
void test()
{
Avoid::ConnEnd end1;
Avoid::ConnEnd end2;
Avoid::Polygon poly;
Avoid::Router * router1 = new Avoid::Router(Avoid::OrthogonalRouting);
router1->setTransactionUse(true);
router1->setRoutingPenalty(Avoid::segmentPenalty);
router1->setRoutingPenalty(Avoid::crossingPenalty);
router1->setRoutingPenalty(Avoid::fixedSharedPathPenalty, 9000);
router1->setRoutingOption(Avoid::penaliseOrthogonalSharedPathsAtConnEnds, true);
router1->setRoutingParameter(idealNudgingDistance, 25);
poly = Avoid::Polygon(4);
poly.setPoint(0, Avoid::Point(50760, 50691));
poly.setPoint(1, Avoid::Point(50760, 50775));
poly.setPoint(2, Avoid::Point(50640, 50775));
poly.setPoint(3, Avoid::Point(50640, 50691));
Avoid::ShapeRef * shape386142480 = new Avoid::ShapeRef(router1, poly, 386142480);
Avoid::ShapeConnectionPin * pin386142480_0 = new Avoid::ShapeConnectionPin(shape386142480, 1, 0.5, 0.40476190476190477, true, 0, 13);
pin386142480_0->setExclusive(true);
Avoid::ShapeConnectionPin * pin386142480_1 = new Avoid::ShapeConnectionPin(shape386142480, 2, 0.5, 1, true, 10, 2);
pin386142480_1->setExclusive(true);
poly = Avoid::Polygon(4);
poly.setPoint(0, Avoid::Point(51185, 50765));
poly.setPoint(1, Avoid::Point(51185, 50935));
poly.setPoint(2, Avoid::Point(50975, 50935));
poly.setPoint(3, Avoid::Point(50975, 50765));
Avoid::ShapeRef * shape300136482 = new Avoid::ShapeRef(router1, poly, 300136482);
Avoid::ShapeConnectionPin * pin300136482_0 = new Avoid::ShapeConnectionPin(shape300136482, 1, 0, 0.5, true, 10, 4);
pin300136482_0->setExclusive(true);
Avoid::ShapeConnectionPin * pin300136482_1 = new Avoid::ShapeConnectionPin(shape300136482, 2, 0.95238095238095233, 0.5, true, 10, 8);
pin300136482_1->setExclusive(true);
poly = Avoid::Polygon(4);
poly.setPoint(0, Avoid::Point(50854, 50840));
poly.setPoint(1, Avoid::Point(50854, 50935));
poly.setPoint(2, Avoid::Point(50796, 50935));
poly.setPoint(3, Avoid::Point(50796, 50840));
Avoid::ShapeRef * shape51003942 = new Avoid::ShapeRef(router1, poly, 51003942);
Avoid::ShapeConnectionPin * pin51003942_0 = new Avoid::ShapeConnectionPin(shape51003942, 1, 0.5, 0.10526315789473684, true, 10, 1);
pin51003942_0->setExclusive(true);
Avoid::JunctionRef * junction502411221 = new Avoid::JunctionRef(router1, Avoid::Point(50825, 50850), 502411221);
end1 = Avoid::ConnEnd(shape386142480, 2);
end2 = Avoid::ConnEnd(junction502411221);
new Avoid::ConnRef(router1, end1, end2);
end1 = Avoid::ConnEnd(junction502411221);
end2 = Avoid::ConnEnd(shape300136482, 1);
new Avoid::ConnRef(router1, end1, end2);
end1 = Avoid::ConnEnd(shape51003942, 1);
end2 = Avoid::ConnEnd(junction502411221);
new Avoid::ConnRef(router1, end1, end2);
router1->processTransaction();
router1->outputDiagram("output/buildOrthogonalChannelInfo1");
delete router1;
}
extern "C" int main(void)
{
test();
return 0;
}
|