From fd733201b82f39655488a286c89142f321ef9dc9 Mon Sep 17 00:00:00 2001 From: Sylvain Chiron Date: Sat, 1 Jul 2017 13:36:41 +0200 Subject: Updated libs from the Adaptagrams project: libavoid, libcola and libvspc; changed the code to match the new API Signed-off-by: Sylvain Chiron --- src/libavoid/tests/2junctions.cpp | 108 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 src/libavoid/tests/2junctions.cpp (limited to 'src/libavoid/tests/2junctions.cpp') diff --git a/src/libavoid/tests/2junctions.cpp b/src/libavoid/tests/2junctions.cpp new file mode 100644 index 000000000..0165d3514 --- /dev/null +++ b/src/libavoid/tests/2junctions.cpp @@ -0,0 +1,108 @@ +#include "libavoid/libavoid.h" +#include +using namespace Avoid; + +int 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); + router1->setRoutingOption(Avoid::penaliseOrthogonalSharedPathsAtConnEnds, true); + router1->setRoutingParameter(idealNudgingDistance, 25); + poly = Avoid::Polygon(4); + poly.setPoint(0, Avoid::Point(51410, 50640)); + poly.setPoint(1, Avoid::Point(51410, 50960)); + poly.setPoint(2, Avoid::Point(51050, 50960)); + poly.setPoint(3, Avoid::Point(51050, 50640)); + Avoid::ShapeRef * shape365249936 = new Avoid::ShapeRef(router1, poly, 365249936); + Avoid::ShapeConnectionPin * pin365249936_2 = new Avoid::ShapeConnectionPin(shape365249936, 3, 0, 0.5, true, 10, 4); + pin365249936_2->setExclusive(true); + Avoid::ShapeConnectionPin * pin365249936_4 = new Avoid::ShapeConnectionPin(shape365249936, 5, 0, 0.734375, true, 10, 4); + pin365249936_4->setExclusive(true); + 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_1 = new Avoid::ShapeConnectionPin(shape386142480, 2, 0.5, 1, true, 10, 2); + pin386142480_1->setExclusive(true); + Avoid::JunctionRef * junction328922310 = new Avoid::JunctionRef(router1, Avoid::Point(50700, 50800), 328922310); + junction328922310->setPositionFixed(true); + end1 = Avoid::ConnEnd(shape365249936, 3); + end2 = Avoid::ConnEnd(junction328922310); + /*Avoid::ConnRef * conn152169328 = */ new Avoid::ConnRef(router1, end1, end2); + end1 = Avoid::ConnEnd(junction328922310); + end2 = Avoid::ConnEnd(shape386142480, 2); + /*Avoid::ConnRef * conn684888074 = */ new Avoid::ConnRef(router1, end1, end2); + end1 = Avoid::ConnEnd(shape365249936, 5); + end2 = Avoid::ConnEnd(junction328922310); + Avoid::ConnRef * conn18168360 = new Avoid::ConnRef(router1, end1, end2); + router1->processTransaction(); + + router1->outputDiagram("output/2junctions-1"); + poly = Avoid::Polygon(4); + poly.setPoint(0, Avoid::Point(50879, 50885)); + poly.setPoint(1, Avoid::Point(50879, 50960)); + poly.setPoint(2, Avoid::Point(50821, 50960)); + poly.setPoint(3, Avoid::Point(50821, 50885)); + Avoid::ShapeRef * shape150429385 = new Avoid::ShapeRef(router1, poly, 150429385); + Avoid::ShapeConnectionPin * pin150429385_0 = new Avoid::ShapeConnectionPin(shape150429385, 1, 0.5, 0, true, 10, 1); + pin150429385_0->setExclusive(true); + Avoid::JunctionRef * junction550292508 = new Avoid::JunctionRef(router1, Avoid::Point(50850, 50875), 550292508); + router1->deleteConnector(conn18168360); + conn18168360 = NULL; + end1 = Avoid::ConnEnd(shape365249936, 5); + end2 = Avoid::ConnEnd(junction550292508); + Avoid::ConnRef * conn795337150 = new Avoid::ConnRef(router1, end1, end2); + conn795337150->makePathInvalid(); + end1 = Avoid::ConnEnd(junction550292508); + end2 = Avoid::ConnEnd(junction328922310); + Avoid::ConnRef * conn151961380 = new Avoid::ConnRef(router1, end1, end2); + conn151961380->makePathInvalid(); + end1 = Avoid::ConnEnd(shape150429385, 1); + end2 = Avoid::ConnEnd(junction550292508); + Avoid::ConnRef * conn149180423 = new Avoid::ConnRef(router1, end1, end2); + conn149180423->makePathInvalid(); + router1->processTransaction(); + + router1->outputDiagram("output/2junctions-2"); + /* + junction550292508->setPositionFixed(true); + router1->deleteShape(shape365249936); + shape365249936 = NULL; + router1->deleteShape(shape386142480); + shape386142480 = NULL; + router1->deleteJunction(junction328922310); + junction328922310 = NULL; + router1->deleteConnector(conn152169328); + conn152169328 = NULL; + router1->deleteConnector(conn684888074); + conn684888074 = NULL; + router1->deleteShape(shape150429385); + shape150429385 = NULL; + router1->deleteJunction(junction550292508); + junction550292508 = NULL; + router1->deleteConnector(conn795337150); + conn795337150 = NULL; + router1->deleteConnector(conn151961380); + conn151961380 = NULL; + router1->deleteConnector(conn149180423); + conn149180423 = NULL; + router1->processTransaction(); +*/ + bool atEnds = true; + bool overlap = router1->existsOrthogonalFixedSegmentOverlap(atEnds); + delete router1; + return (overlap) ? 1 : 0; +} + +extern "C" int main(void) +{ + return test(); +} -- cgit v1.2.3