示例#1
0
int main(void) {
    Router *router = new Router(OrthogonalRouting);
    router->setRoutingPenalty((PenaltyType)0, 50);
    router->setRoutingPenalty((PenaltyType)1, 0);
    router->setRoutingPenalty((PenaltyType)2, 0);
    router->setRoutingPenalty((PenaltyType)3, 4000);
    router->setRoutingPenalty((PenaltyType)4, 105);
    router->setOrthogonalNudgeDistance(25);
    Rectangle rect478845150(Point(50695, 51070), Point(50705, 51080));
    ShapeRef *shapeRef478845150 = new ShapeRef(router, rect478845150, 478845150);
    ShapeConnectionPin *pin = new Avoid::ShapeConnectionPin(shapeRef478845150, 
	    Avoid::CONNECTIONPIN_CENTRE, Avoid::ATTACH_POS_CENTRE, 
	    Avoid::ATTACH_POS_CENTRE);
    pin->setExclusive(false);
    
    router->addShape(shapeRef478845150);
    Rectangle rect92712048(Point(51246, 50475), Point(51304, 50585));
    ShapeRef *shapeRef92712048 = new ShapeRef(router, rect92712048, 92712048);
    router->addShape(shapeRef92712048);
    Rectangle rect23127921(Point(50365, 50766), Point(50485, 50834));
    ShapeRef *shapeRef23127921 = new ShapeRef(router, rect23127921, 23127921);
    router->addShape(shapeRef23127921);
    Rectangle rect159957148(Point(51740, 50891), Point(51860, 50959));
    ShapeRef *shapeRef159957148 = new ShapeRef(router, rect159957148, 159957148);
    router->addShape(shapeRef159957148);
    Rectangle rect1350214(Point(50375, 51015), Point(50625, 51135));
    ShapeRef *shapeRef1350214 = new ShapeRef(router, rect1350214, 1350214);
    router->addShape(shapeRef1350214);
    Rectangle rect247197258(Point(50265, 51046), Point(50375, 51104));
    ShapeRef *shapeRef247197258 = new ShapeRef(router, rect247197258, 247197258);
    router->addShape(shapeRef247197258);
    Rectangle rect281096654(Point(50700, 50390), Point(51000, 50610));
    ShapeRef *shapeRef281096654 = new ShapeRef(router, rect281096654, 281096654);
    router->addShape(shapeRef281096654);
    ConnEnd srcPt342420237(Point(50425, 50800), 15);
    ConnEnd dstPt342420237(Point(50710, 50450), 4);
    new ConnRef(router, srcPt342420237, dstPt342420237, 342420237);
    ConnEnd srcPt352019675(Point(50990, 50500), 8);
    ConnEnd dstPt352019675(shapeRef478845150, Avoid::CONNECTIONPIN_CENTRE);
    //ConnEnd dstPt352019675(Point(50700, 51075), 15);
    new ConnRef(router, srcPt352019675, dstPt352019675, 352019675);
    ConnEnd srcPt42699400(shapeRef478845150, Avoid::CONNECTIONPIN_CENTRE);
    //ConnEnd srcPt42699400(Point(50700, 51075), 15);
    ConnEnd dstPt42699400(Point(50615, 51075), 8);
    new ConnRef(router, srcPt42699400, dstPt42699400, 42699400);
    ConnEnd srcPt94712625(Point(50710, 50550), 4);
    ConnEnd dstPt94712625(shapeRef478845150, Avoid::CONNECTIONPIN_CENTRE);
    //ConnEnd dstPt94712625(Point(50700, 51075), 15);
    new ConnRef(router, srcPt94712625, dstPt94712625, 94712625);
    ConnEnd srcPt92802970(Point(50990, 50450), 8);
    ConnEnd dstPt92802970(Point(51275, 50485), 1);
    new ConnRef(router, srcPt92802970, dstPt92802970, 92802970);
    ConnEnd srcPt716502036(Point(50710, 50500), 4);
    ConnEnd dstPt716502036(Point(51800, 50925), 15);
    new ConnRef(router, srcPt716502036, dstPt716502036, 716502036);
    router->processTransaction();
    router->outputInstanceToSVG("test-junction01");
    delete router;
    return 0;
};
void SPAvoidRef::handleSettingChange(void)
{
    SPDesktop *desktop = inkscape_active_desktop();
    if (desktop == NULL) {
        return;
    }
    if (sp_desktop_document(desktop) != item->document) {
        // We don't want to go any further if the active desktop's document
        // isn't the same as the document that this item is part of.  This
        // case can happen if a new document is loaded from the file chooser
        // or via the recent file menu.  In this case, we can end up here
        // as a rersult of a ensureUpToDate performed on a
        // document not yet attached to the active desktop.
        return;
    }

    if (new_setting == setting) {
        // Don't need to make any changes
        return;
    }
    setting = new_setting;

    Router *router = item->document->router;

    _transformed_connection.disconnect();
    if (new_setting) {
        Avoid::Polygon poly = avoid_item_poly(item);
        if (poly.size() > 0) {
            _transformed_connection = item->connectTransformed(
                    sigc::ptr_fun(&avoid_item_move));

            char const *id = item->getAttribute("id");
            g_assert(id != NULL);

            // Get a unique ID for the item.
            GQuark itemID = g_quark_from_string(id);

            shapeRef = new Avoid::ShapeRef(router, poly, itemID);

            router->addShape(shapeRef);
        }
    }
    else
    {
        g_assert(shapeRef);

        // Deleting the shapeRef will remove it completely from 
        // an existing Router instance.
        delete shapeRef;
        shapeRef = NULL;
    }
}
示例#3
0
int main(void) {
    Router *router = new Router(
            PolyLineRouting | OrthogonalRouting);
    router->setRoutingPenalty((PenaltyType)0, 50);
    router->setRoutingPenalty((PenaltyType)1, 0);
    router->setRoutingPenalty((PenaltyType)2, 200);
    router->setRoutingPenalty((PenaltyType)3, 4000);
    router->setRoutingPenalty((PenaltyType)4, 110);
    router->setRoutingPenalty((PenaltyType)5, 100);
    router->setOrthogonalNudgeDistance(25);

    Polygon poly186982048(4);
    poly186982048.ps[0] = Point(52660, 50490);
    poly186982048.ps[1] = Point(52660, 50960);
    poly186982048.ps[2] = Point(52100, 50960);
    poly186982048.ps[3] = Point(52100, 50490);
    ShapeRef *shapeRef186982048 = new ShapeRef(router, poly186982048, 186982048);
    router->addShape(shapeRef186982048);

    Polygon poly193989760(4);
    poly193989760.ps[0] = Point(51850, 50665);
    poly193989760.ps[1] = Point(51850, 50835);
    poly193989760.ps[2] = Point(51590, 50835);
    poly193989760.ps[3] = Point(51590, 50665);
    ShapeRef *shapeRef193989760 = new ShapeRef(router, poly193989760, 193989760);
    router->addShape(shapeRef193989760);

    Polygon poly276825384(4);
    poly276825384.ps[0] = Point(51825, 51040);
    poly276825384.ps[1] = Point(51825, 51210);
    poly276825384.ps[2] = Point(51565, 51210);
    poly276825384.ps[3] = Point(51565, 51040);
    ShapeRef *shapeRef276825384 = new ShapeRef(router, poly276825384, 276825384);
    router->addShape(shapeRef276825384);

    Polygon poly190150804(4);
    poly190150804.ps[0] = Point(50460, 51340);
    poly190150804.ps[1] = Point(50460, 51510);
    poly190150804.ps[2] = Point(50290, 51510);
    poly190150804.ps[3] = Point(50290, 51340);
    ShapeRef *shapeRef190150804 = new ShapeRef(router, poly190150804, 190150804);
    router->addShape(shapeRef190150804);

    ConnRef *connRef562170592 = new ConnRef(router, 562170592);
    ConnEnd srcPt562170592(Point(52110, 50800), 4);
    connRef562170592->setSourceEndpoint(srcPt562170592);
    ConnEnd dstPt562170592(Point(51815, 51100), 8);
    connRef562170592->setDestEndpoint(dstPt562170592);
    connRef562170592->setRoutingType((ConnType)2);

    ConnRef *connRef171593006 = new ConnRef(router, 171593006);
    ConnEnd srcPt171593006(Point(52110, 50750), 4);
    connRef171593006->setSourceEndpoint(srcPt171593006);
    ConnEnd dstPt171593006(Point(51840, 50725), 8);
    connRef171593006->setDestEndpoint(dstPt171593006);
    connRef171593006->setRoutingType((ConnType)2);

    ConnRef *connRef172593160 = new ConnRef(router, 172593160);
    ConnEnd srcPt172593160(Point(51815, 51150), 8);
    connRef172593160->setSourceEndpoint(srcPt172593160);
    ConnEnd dstPt172593160(Point(52110, 50900), 4);
    connRef172593160->setDestEndpoint(dstPt172593160);
    connRef172593160->setRoutingType((ConnType)2);

    ConnRef *connRef116944564 = new ConnRef(router, 116944564);
    ConnEnd srcPt116944564(Point(51840, 50775), 8);
    connRef116944564->setSourceEndpoint(srcPt116944564);
    ConnEnd dstPt116944564(Point(52110, 50850), 4);
    connRef116944564->setDestEndpoint(dstPt116944564);
    connRef116944564->setRoutingType((ConnType)2);

    router->processTransaction();
    router->outputInstanceToSVG("test-inlineoverlap-07");
    delete router;
    return 0;
};
示例#4
0
int main(void) {
    Router *router = new Router(
            PolyLineRouting | OrthogonalRouting);
    router->setRoutingPenalty((PenaltyType)0, 50);
    router->setRoutingPenalty((PenaltyType)1, 0);
    router->setRoutingPenalty((PenaltyType)2, 0);
    router->setRoutingPenalty((PenaltyType)3, 4000);
    router->setRoutingPenalty((PenaltyType)4, 110);
    router->setOrthogonalNudgeDistance(25);

    Polygon poly231469760(4);
    poly231469760.ps[0] = Point(6385, 9390);
    poly231469760.ps[1] = Point(6385, 9560);
    poly231469760.ps[2] = Point(6200, 9560);
    poly231469760.ps[3] = Point(6200, 9390);
    ShapeRef *shapeRef231469760 = new ShapeRef(router, poly231469760, 231469760);
    router->addShape(shapeRef231469760);

    Polygon poly7136376(4);
    poly7136376.ps[0] = Point(6560, 9290);
    poly7136376.ps[1] = Point(6560, 9460);
    poly7136376.ps[2] = Point(6375, 9460);
    poly7136376.ps[3] = Point(6375, 9290);
    ShapeRef *shapeRef7136376 = new ShapeRef(router, poly7136376, 7136376);
    router->addShape(shapeRef7136376);

    Polygon poly215821749(4);
    poly215821749.ps[0] = Point(6510, 9540);
    poly215821749.ps[1] = Point(6510, 9710);
    poly215821749.ps[2] = Point(6325, 9710);
    poly215821749.ps[3] = Point(6325, 9540);
    ShapeRef *shapeRef215821749 = new ShapeRef(router, poly215821749, 215821749);
    router->addShape(shapeRef215821749);

    Polygon poly83086994(4);
    poly83086994.ps[0] = Point(5925, 9240);
    poly83086994.ps[1] = Point(5925, 10085);
    poly83086994.ps[2] = Point(5575, 10085);
    poly83086994.ps[3] = Point(5575, 9240);
    ShapeRef *shapeRef83086994 = new ShapeRef(router, poly83086994, 83086994);
    router->addShape(shapeRef83086994);

    ConnRef *connRef292408794 = new ConnRef(router, 292408794);
    ConnEnd srcPt292408794(Point(5915, 9625), 8);
    connRef292408794->setSourceEndpoint(srcPt292408794);
    ConnEnd dstPt292408794(Point(6210, 9475), 4);
    connRef292408794->setDestEndpoint(dstPt292408794);
    connRef292408794->setRoutingType((ConnType)2);

    ConnRef *connRef40917776 = new ConnRef(router, 40917776);
    ConnEnd srcPt40917776(Point(5915, 9550), 8);
    connRef40917776->setSourceEndpoint(srcPt40917776);
    ConnEnd dstPt40917776(Point(6385, 9375), 4);
    connRef40917776->setDestEndpoint(dstPt40917776);
    connRef40917776->setRoutingType((ConnType)2);

    ConnRef *connRef629564142 = new ConnRef(router, 629564142);
    ConnEnd srcPt629564142(Point(5915, 9475), 8);
    connRef629564142->setSourceEndpoint(srcPt629564142);
    ConnEnd dstPt629564142(Point(6335, 9625), 4);
    connRef629564142->setDestEndpoint(dstPt629564142);
    connRef629564142->setRoutingType((ConnType)2);

    router->processTransaction();
    router->outputInstanceToSVG("test-inlineoverlap-05");
    bool overlap = router->existsOrthogonalPathOverlap();
    delete router;
    return (overlap) ? 1 : 0;
};
示例#5
0
int main(void) {
    Router *router = new Router(OrthogonalRouting);
    router->setRoutingPenalty((PenaltyType)0, 50);
    router->setRoutingPenalty((PenaltyType)1, 0);
    router->setRoutingPenalty((PenaltyType)2, 0);
    router->setRoutingPenalty((PenaltyType)3, 4000);
    router->setRoutingPenalty((PenaltyType)4, 0);
    router->setOrthogonalNudgeDistance(4);

    Polygon poly1(4);
    poly1.ps[0] = Point(52, 188);
    poly1.ps[1] = Point(52, 292);
    poly1.ps[2] = Point(-52, 292);
    poly1.ps[3] = Point(-52, 188);
    ShapeRef *shapeRef1 = new ShapeRef(router, poly1, 1);
    router->addShape(shapeRef1);
    new ShapeConnectionPin(shapeRef1, 544, 0.5, 0.5, 10, (ConnDirFlags) 0);

    Polygon poly2(4);
    poly2.ps[0] = Point(52, -52);
    poly2.ps[1] = Point(52, 52);
    poly2.ps[2] = Point(-52, 52);
    poly2.ps[3] = Point(-52, -52);
    ShapeRef *shapeRef2 = new ShapeRef(router, poly2, 2);
    router->addShape(shapeRef2);
    new ShapeConnectionPin(shapeRef2, 544, 0.5, 0.5, 10, (ConnDirFlags) 0);

    Polygon poly3(4);
    poly3.ps[0] = Point(52, 428);
    poly3.ps[1] = Point(52, 532);
    poly3.ps[2] = Point(-52, 532);
    poly3.ps[3] = Point(-52, 428);
    ShapeRef *shapeRef3 = new ShapeRef(router, poly3, 3);
    router->addShape(shapeRef3);
    new ShapeConnectionPin(shapeRef3, 544, 0.5, 0.5, 10, (ConnDirFlags) 0);

    Polygon poly4(4);
    poly4.ps[0] = Point(52, 68);
    poly4.ps[1] = Point(52, 172);
    poly4.ps[2] = Point(-52, 172);
    poly4.ps[3] = Point(-52, 68);
    ShapeRef *shapeRef4 = new ShapeRef(router, poly4, 4);
    router->addShape(shapeRef4);
    new ShapeConnectionPin(shapeRef4, 544, 0.5, 0.5, 10, (ConnDirFlags) 0);

    Polygon poly5(4);
    poly5.ps[0] = Point(52, 308);
    poly5.ps[1] = Point(52, 412);
    poly5.ps[2] = Point(-52, 412);
    poly5.ps[3] = Point(-52, 308);
    ShapeRef *shapeRef5 = new ShapeRef(router, poly5, 5);
    router->addShape(shapeRef5);
    new ShapeConnectionPin(shapeRef5, 544, 0.5, 0.5, 10, (ConnDirFlags) 0);

    ConnRef *connRef6 = new ConnRef(router, 6);
    ConnEnd srcPt6(shapeRef2, 544);
    connRef6->setSourceEndpoint(srcPt6);
    ConnEnd dstPt6(shapeRef5, 544);
    connRef6->setDestEndpoint(dstPt6);
    connRef6->setRoutingType((ConnType)2);

    ConnRef *connRef7 = new ConnRef(router, 7);
    ConnEnd srcPt7(shapeRef5, 544);
    connRef7->setSourceEndpoint(srcPt7);
    ConnEnd dstPt7(shapeRef4, 544);
    connRef7->setDestEndpoint(dstPt7);
    connRef7->setRoutingType((ConnType)2);

    ConnRef *connRef8 = new ConnRef(router, 8);
    ConnEnd srcPt8(shapeRef1, 544);
    connRef8->setSourceEndpoint(srcPt8);
    ConnEnd dstPt8(shapeRef5, 544);
    connRef8->setDestEndpoint(dstPt8);
    connRef8->setRoutingType((ConnType)2);

    ConnRef *connRef9 = new ConnRef(router, 9);
    ConnEnd srcPt9(shapeRef2, 544);
    connRef9->setSourceEndpoint(srcPt9);
    ConnEnd dstPt9(shapeRef3, 544);
    connRef9->setDestEndpoint(dstPt9);
    connRef9->setRoutingType((ConnType)2);

    ConnRef *connRef10 = new ConnRef(router, 10);
    ConnEnd srcPt10(shapeRef3, 544);
    connRef10->setSourceEndpoint(srcPt10);
    ConnEnd dstPt10(shapeRef4, 544);
    connRef10->setDestEndpoint(dstPt10);
    connRef10->setRoutingType((ConnType)2);

    ConnRef *connRef11 = new ConnRef(router, 11);
    ConnEnd srcPt11(shapeRef1, 544);
    connRef11->setSourceEndpoint(srcPt11);
    ConnEnd dstPt11(shapeRef3, 544);
    connRef11->setDestEndpoint(dstPt11);
    connRef11->setRoutingType((ConnType)2);
    
    router->processTransaction();
    router->outputInstanceToSVG("test-inlineShapes");
    delete router;
    return 0;
};
示例#6
0
int main(void) {
    Router *router = new Router(
            PolyLineRouting | OrthogonalRouting);
    router->setRoutingPenalty((PenaltyType)0, 50);
    router->setRoutingPenalty((PenaltyType)1, 0);
    router->setRoutingPenalty((PenaltyType)2, 200);
    router->setRoutingPenalty((PenaltyType)3, 4000);
    router->setRoutingPenalty((PenaltyType)4, 110);
    router->setOrthogonalNudgeDistance(25);

    Polygon poly219926511(4);
    poly219926511.ps[0] = Point(50760, 51240);
    poly219926511.ps[1] = Point(50760, 51260);
    poly219926511.ps[2] = Point(50740, 51260);
    poly219926511.ps[3] = Point(50740, 51240);
    ShapeRef *shapeRef219926511 = new ShapeRef(router, poly219926511, 219926511);
    router->addShape(shapeRef219926511);
    new ShapeConnectionPin(shapeRef219926511, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 4);
    new ShapeConnectionPin(shapeRef219926511, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 1);
    new ShapeConnectionPin(shapeRef219926511, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 8);
    new ShapeConnectionPin(shapeRef219926511, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 2);

    Polygon poly171026375(4);
    poly171026375.ps[0] = Point(51085, 51215);
    poly171026375.ps[1] = Point(51085, 51235);
    poly171026375.ps[2] = Point(51065, 51235);
    poly171026375.ps[3] = Point(51065, 51215);
    ShapeRef *shapeRef171026375 = new ShapeRef(router, poly171026375, 171026375);
    router->addShape(shapeRef171026375);
    new ShapeConnectionPin(shapeRef171026375, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 4);
    new ShapeConnectionPin(shapeRef171026375, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 1);
    new ShapeConnectionPin(shapeRef171026375, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 8);
    new ShapeConnectionPin(shapeRef171026375, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 2);

    Polygon poly878674(4);
    poly878674.ps[0] = Point(51454, 51200);
    poly878674.ps[1] = Point(51454, 51285);
    poly878674.ps[2] = Point(51396, 51285);
    poly878674.ps[3] = Point(51396, 51200);
    ShapeRef *shapeRef878674 = new ShapeRef(router, poly878674, 878674);
    router->addShape(shapeRef878674);

    Polygon poly286906544(4);
    poly286906544.ps[0] = Point(50704, 51250);
    poly286906544.ps[1] = Point(50704, 51335);
    poly286906544.ps[2] = Point(50646, 51335);
    poly286906544.ps[3] = Point(50646, 51250);
    ShapeRef *shapeRef286906544 = new ShapeRef(router, poly286906544, 286906544);
    router->addShape(shapeRef286906544);

    Polygon poly170813081(4);
    poly170813081.ps[0] = Point(51104, 51090);
    poly170813081.ps[1] = Point(51104, 51175);
    poly170813081.ps[2] = Point(51046, 51175);
    poly170813081.ps[3] = Point(51046, 51090);
    ShapeRef *shapeRef170813081 = new ShapeRef(router, poly170813081, 170813081);
    router->addShape(shapeRef170813081);

    Polygon poly342721632(4);
    poly342721632.ps[0] = Point(51910, 50946);
    poly342721632.ps[1] = Point(51910, 51004);
    poly342721632.ps[2] = Point(51825, 51004);
    poly342721632.ps[3] = Point(51825, 50946);
    ShapeRef *shapeRef342721632 = new ShapeRef(router, poly342721632, 342721632);
    router->addShape(shapeRef342721632);

    Polygon poly223927132(4);
    poly223927132.ps[0] = Point(51510, 51190);
    poly223927132.ps[1] = Point(51510, 51210);
    poly223927132.ps[2] = Point(51490, 51210);
    poly223927132.ps[3] = Point(51490, 51190);
    ShapeRef *shapeRef223927132 = new ShapeRef(router, poly223927132, 223927132);
    router->addShape(shapeRef223927132);
    new ShapeConnectionPin(shapeRef223927132, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 4);
    new ShapeConnectionPin(shapeRef223927132, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 1);
    new ShapeConnectionPin(shapeRef223927132, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 8);
    new ShapeConnectionPin(shapeRef223927132, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 2);

    Polygon poly102578723(4);
    poly102578723.ps[0] = Point(51285, 50715);
    poly102578723.ps[1] = Point(51285, 50735);
    poly102578723.ps[2] = Point(51265, 50735);
    poly102578723.ps[3] = Point(51265, 50715);
    ShapeRef *shapeRef102578723 = new ShapeRef(router, poly102578723, 102578723);
    router->addShape(shapeRef102578723);
    new ShapeConnectionPin(shapeRef102578723, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 4);
    new ShapeConnectionPin(shapeRef102578723, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 1);
    new ShapeConnectionPin(shapeRef102578723, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 8);
    new ShapeConnectionPin(shapeRef102578723, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 2);

    Polygon poly17922268(4);
    poly17922268.ps[0] = Point(50860, 50965);
    poly17922268.ps[1] = Point(50860, 50985);
    poly17922268.ps[2] = Point(50840, 50985);
    poly17922268.ps[3] = Point(50840, 50965);
    ShapeRef *shapeRef17922268 = new ShapeRef(router, poly17922268, 17922268);
    router->addShape(shapeRef17922268);
    new ShapeConnectionPin(shapeRef17922268, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 4);
    new ShapeConnectionPin(shapeRef17922268, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 1);
    new ShapeConnectionPin(shapeRef17922268, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 8);
    new ShapeConnectionPin(shapeRef17922268, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 2);

    Polygon poly11057158(4);
    poly11057158.ps[0] = Point(51679, 51200);
    poly11057158.ps[1] = Point(51679, 51285);
    poly11057158.ps[2] = Point(51621, 51285);
    poly11057158.ps[3] = Point(51621, 51200);
    ShapeRef *shapeRef11057158 = new ShapeRef(router, poly11057158, 11057158);
    router->addShape(shapeRef11057158);

    Polygon poly322446045(4);
    poly322446045.ps[0] = Point(50779, 51240);
    poly322446045.ps[1] = Point(50779, 51335);
    poly322446045.ps[2] = Point(50721, 51335);
    poly322446045.ps[3] = Point(50721, 51240);
    ShapeRef *shapeRef322446045 = new ShapeRef(router, poly322446045, 322446045);
    router->addShape(shapeRef322446045);

    Polygon poly767565928(4);
    poly767565928.ps[0] = Point(51004, 50741);
    poly767565928.ps[1] = Point(51004, 50826);
    poly767565928.ps[2] = Point(50946, 50826);
    poly767565928.ps[3] = Point(50946, 50741);
    ShapeRef *shapeRef767565928 = new ShapeRef(router, poly767565928, 767565928);
    router->addShape(shapeRef767565928);

    Polygon poly280939374(4);
    poly280939374.ps[0] = Point(51085, 50971);
    poly280939374.ps[1] = Point(51085, 51029);
    poly280939374.ps[2] = Point(51000, 51029);
    poly280939374.ps[3] = Point(51000, 50971);
    ShapeRef *shapeRef280939374 = new ShapeRef(router, poly280939374, 280939374);
    router->addShape(shapeRef280939374);

    Polygon poly630623707(4);
    poly630623707.ps[0] = Point(51279, 50925);
    poly630623707.ps[1] = Point(51279, 51010);
    poly630623707.ps[2] = Point(51221, 51010);
    poly630623707.ps[3] = Point(51221, 50925);
    ShapeRef *shapeRef630623707 = new ShapeRef(router, poly630623707, 630623707);
    router->addShape(shapeRef630623707);

    Polygon poly28160455(4);
    poly28160455.ps[0] = Point(50879, 51250);
    poly28160455.ps[1] = Point(50879, 51335);
    poly28160455.ps[2] = Point(50821, 51335);
    poly28160455.ps[3] = Point(50821, 51250);
    ShapeRef *shapeRef28160455 = new ShapeRef(router, poly28160455, 28160455);
    router->addShape(shapeRef28160455);

    Polygon poly525890448(4);
    poly525890448.ps[0] = Point(51174, 50721);
    poly525890448.ps[1] = Point(51174, 50779);
    poly525890448.ps[2] = Point(51089, 50779);
    poly525890448.ps[3] = Point(51089, 50721);
    ShapeRef *shapeRef525890448 = new ShapeRef(router, poly525890448, 525890448);
    router->addShape(shapeRef525890448);

    Polygon poly157182552(4);
    poly157182552.ps[0] = Point(51529, 51190);
    poly157182552.ps[1] = Point(51529, 51285);
    poly157182552.ps[2] = Point(51471, 51285);
    poly157182552.ps[3] = Point(51471, 51190);
    ShapeRef *shapeRef157182552 = new ShapeRef(router, poly157182552, 157182552);
    router->addShape(shapeRef157182552);

    Polygon poly799637520(4);
    poly799637520.ps[0] = Point(50625, 50896);
    poly799637520.ps[1] = Point(50625, 50954);
    poly799637520.ps[2] = Point(50540, 50954);
    poly799637520.ps[3] = Point(50540, 50896);
    ShapeRef *shapeRef799637520 = new ShapeRef(router, poly799637520, 799637520);
    router->addShape(shapeRef799637520);

    Polygon poly60349320(4);
    poly60349320.ps[0] = Point(50904, 51025);
    poly60349320.ps[1] = Point(50904, 51110);
    poly60349320.ps[2] = Point(50846, 51110);
    poly60349320.ps[3] = Point(50846, 51025);
    ShapeRef *shapeRef60349320 = new ShapeRef(router, poly60349320, 60349320);
    router->addShape(shapeRef60349320);

    Polygon poly119851894(4);
    poly119851894.ps[0] = Point(51179, 51225);
    poly119851894.ps[1] = Point(51179, 51310);
    poly119851894.ps[2] = Point(51121, 51310);
    poly119851894.ps[3] = Point(51121, 51225);
    ShapeRef *shapeRef119851894 = new ShapeRef(router, poly119851894, 119851894);
    router->addShape(shapeRef119851894);

    Polygon poly233164275(4);
    poly233164275.ps[0] = Point(51604, 51200);
    poly233164275.ps[1] = Point(51604, 51285);
    poly233164275.ps[2] = Point(51546, 51285);
    poly233164275.ps[3] = Point(51546, 51200);
    ShapeRef *shapeRef233164275 = new ShapeRef(router, poly233164275, 233164275);
    router->addShape(shapeRef233164275);

    Polygon poly807558175(4);
    poly807558175.ps[0] = Point(51604, 51000);
    poly807558175.ps[1] = Point(51604, 51085);
    poly807558175.ps[2] = Point(51546, 51085);
    poly807558175.ps[3] = Point(51546, 51000);
    ShapeRef *shapeRef807558175 = new ShapeRef(router, poly807558175, 807558175);
    router->addShape(shapeRef807558175);

    Polygon poly265539540(4);
    poly265539540.ps[0] = Point(51635, 50940);
    poly265539540.ps[1] = Point(51635, 50960);
    poly265539540.ps[2] = Point(51615, 50960);
    poly265539540.ps[3] = Point(51615, 50940);
    ShapeRef *shapeRef265539540 = new ShapeRef(router, poly265539540, 265539540);
    router->addShape(shapeRef265539540);
    new ShapeConnectionPin(shapeRef265539540, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 1);
    new ShapeConnectionPin(shapeRef265539540, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 8);
    new ShapeConnectionPin(shapeRef265539540, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 2);
    new ShapeConnectionPin(shapeRef265539540, 2147483646, 0.5, 0.5, 0, (ConnDirFlags) 4);

    Polygon poly108859552(4);
    poly108859552.ps[0] = Point(51560, 50721);
    poly108859552.ps[1] = Point(51560, 50779);
    poly108859552.ps[2] = Point(51475, 50779);
    poly108859552.ps[3] = Point(51475, 50721);
    ShapeRef *shapeRef108859552 = new ShapeRef(router, poly108859552, 108859552);
    router->addShape(shapeRef108859552);

    Polygon poly404900496(4);
    poly404900496.ps[0] = Point(51525, 50946);
    poly404900496.ps[1] = Point(51525, 51004);
    poly404900496.ps[2] = Point(51440, 51004);
    poly404900496.ps[3] = Point(51440, 50946);
    ShapeRef *shapeRef404900496 = new ShapeRef(router, poly404900496, 404900496);
    router->addShape(shapeRef404900496);

    Polygon poly620445000(4);
    poly620445000.ps[0] = Point(51029, 51225);
    poly620445000.ps[1] = Point(51029, 51310);
    poly620445000.ps[2] = Point(50971, 51310);
    poly620445000.ps[3] = Point(50971, 51225);
    ShapeRef *shapeRef620445000 = new ShapeRef(router, poly620445000, 620445000);
    router->addShape(shapeRef620445000);

    ConnRef *connRef450684531 = new ConnRef(router, 450684531);
    ConnEnd srcPt450684531(Point(51165, 50750), 8);
    connRef450684531->setSourceEndpoint(srcPt450684531);
    ConnEnd dstPt450684531(shapeRef102578723, 2147483646);
    connRef450684531->setDestEndpoint(dstPt450684531);
    connRef450684531->setRoutingType((ConnType)2);

    ConnRef *connRef135371350 = new ConnRef(router, 135371350);
    ConnEnd srcPt135371350(shapeRef102578723, 2147483646);
    connRef135371350->setSourceEndpoint(srcPt135371350);
    ConnEnd dstPt135371350(Point(51250, 50935), 1);
    connRef135371350->setDestEndpoint(dstPt135371350);
    connRef135371350->setRoutingType((ConnType)2);

    ConnRef *connRef143333770 = new ConnRef(router, 143333770);
    ConnEnd srcPt143333770(Point(51485, 50750), 4);
    connRef143333770->setSourceEndpoint(srcPt143333770);
    ConnEnd dstPt143333770(shapeRef102578723, 2147483646);
    connRef143333770->setDestEndpoint(dstPt143333770);
    connRef143333770->setRoutingType((ConnType)2);

    ConnRef *connRef102966575 = new ConnRef(router, 102966575);
    ConnEnd srcPt102966575(Point(50615, 50925), 8);
    connRef102966575->setSourceEndpoint(srcPt102966575);
    ConnEnd dstPt102966575(shapeRef17922268, 2147483646);
    connRef102966575->setDestEndpoint(dstPt102966575);
    connRef102966575->setRoutingType((ConnType)2);

    ConnRef *connRef68998920 = new ConnRef(router, 68998920);
    ConnEnd srcPt68998920(shapeRef17922268, 2147483646);
    connRef68998920->setSourceEndpoint(srcPt68998920);
    ConnEnd dstPt68998920(Point(50975, 50815), 2);
    connRef68998920->setDestEndpoint(dstPt68998920);
    connRef68998920->setRoutingType((ConnType)2);

    ConnRef *connRef1625709 = new ConnRef(router, 1625709);
    ConnEnd srcPt1625709(shapeRef17922268, 2147483646);
    connRef1625709->setSourceEndpoint(srcPt1625709);
    ConnEnd dstPt1625709(Point(50875, 51035), 1);
    connRef1625709->setDestEndpoint(dstPt1625709);
    connRef1625709->setRoutingType((ConnType)2);

    ConnRef *connRef34178450 = new ConnRef(router, 34178450);
    ConnEnd srcPt34178450(shapeRef17922268, 2147483646);
    connRef34178450->setSourceEndpoint(srcPt34178450);
    ConnEnd dstPt34178450(Point(51010, 51000), 4);
    connRef34178450->setDestEndpoint(dstPt34178450);
    connRef34178450->setRoutingType((ConnType)2);

    ConnRef *connRef7982176 = new ConnRef(router, 7982176);
    ConnEnd srcPt7982176(Point(50675, 51260), 1);
    connRef7982176->setSourceEndpoint(srcPt7982176);
    ConnEnd dstPt7982176(shapeRef219926511, 2147483646);
    connRef7982176->setDestEndpoint(dstPt7982176);
    connRef7982176->setRoutingType((ConnType)2);

    ConnRef *connRef197177982 = new ConnRef(router, 197177982);
    ConnEnd srcPt197177982(Point(50750, 51250), 15);
    connRef197177982->setSourceEndpoint(srcPt197177982);
    ConnEnd dstPt197177982(Point(50750, 51260), 1);
    connRef197177982->setDestEndpoint(dstPt197177982);
    connRef197177982->setRoutingType((ConnType)2);

    ConnRef *connRef398066432 = new ConnRef(router, 398066432);
    ConnEnd srcPt398066432(shapeRef219926511, 2147483646);
    connRef398066432->setSourceEndpoint(srcPt398066432);
    ConnEnd dstPt398066432(Point(50850, 51260), 1);
    connRef398066432->setDestEndpoint(dstPt398066432);
    connRef398066432->setRoutingType((ConnType)2);

    ConnRef *connRef314512308 = new ConnRef(router, 314512308);
    ConnEnd srcPt314512308(Point(51000, 51235), 1);
    connRef314512308->setSourceEndpoint(srcPt314512308);
    ConnEnd dstPt314512308(shapeRef171026375, 2147483646);
    connRef314512308->setDestEndpoint(dstPt314512308);
    connRef314512308->setRoutingType((ConnType)2);

    ConnRef *connRef182776308 = new ConnRef(router, 182776308);
    ConnEnd srcPt182776308(Point(51075, 51225), 15);
    connRef182776308->setSourceEndpoint(srcPt182776308);
    ConnEnd dstPt182776308(Point(51075, 51165), 2);
    connRef182776308->setDestEndpoint(dstPt182776308);
    connRef182776308->setRoutingType((ConnType)2);

    ConnRef *connRef96504835 = new ConnRef(router, 96504835);
    ConnEnd srcPt96504835(Point(51150, 51235), 1);
    connRef96504835->setSourceEndpoint(srcPt96504835);
    ConnEnd dstPt96504835(shapeRef171026375, 2147483646);
    connRef96504835->setDestEndpoint(dstPt96504835);
    connRef96504835->setRoutingType((ConnType)2);

    ConnRef *connRef118099300 = new ConnRef(router, 118099300);
    ConnEnd srcPt118099300(Point(51425, 51210), 1);
    connRef118099300->setSourceEndpoint(srcPt118099300);
    ConnEnd dstPt118099300(shapeRef223927132, 2147483646);
    connRef118099300->setDestEndpoint(dstPt118099300);
    connRef118099300->setRoutingType((ConnType)2);

    ConnRef *connRef176080410 = new ConnRef(router, 176080410);
    ConnEnd srcPt176080410(shapeRef223927132, 2147483646);
    connRef176080410->setSourceEndpoint(srcPt176080410);
    ConnEnd dstPt176080410(Point(51575, 51210), 1);
    connRef176080410->setDestEndpoint(dstPt176080410);
    connRef176080410->setRoutingType((ConnType)2);

    ConnRef *connRef426666001 = new ConnRef(router, 426666001);
    ConnEnd srcPt426666001(Point(51500, 51210), 1);
    connRef426666001->setSourceEndpoint(srcPt426666001);
    ConnEnd dstPt426666001(Point(51500, 51200), 15);
    connRef426666001->setDestEndpoint(dstPt426666001);
    connRef426666001->setRoutingType((ConnType)2);

    ConnRef *connRef795762792 = new ConnRef(router, 795762792);
    ConnEnd srcPt795762792(Point(51650, 51210), 1);
    connRef795762792->setSourceEndpoint(srcPt795762792);
    ConnEnd dstPt795762792(shapeRef223927132, 2147483646);
    connRef795762792->setDestEndpoint(dstPt795762792);
    connRef795762792->setRoutingType((ConnType)2);

    ConnRef *connRef467016913 = new ConnRef(router, 467016913);
    ConnEnd srcPt467016913(shapeRef265539540, 2147483646);
    connRef467016913->setSourceEndpoint(srcPt467016913);
    ConnEnd dstPt467016913(Point(51575, 51010), 1);
    connRef467016913->setDestEndpoint(dstPt467016913);
    connRef467016913->setRoutingType((ConnType)2);

    ConnRef *connRef45740440 = new ConnRef(router, 45740440);
    ConnEnd srcPt45740440(Point(51835, 50975), 4);
    connRef45740440->setSourceEndpoint(srcPt45740440);
    ConnEnd dstPt45740440(shapeRef265539540, 2147483646);
    connRef45740440->setDestEndpoint(dstPt45740440);
    connRef45740440->setRoutingType((ConnType)2);

    ConnRef *connRef985644192 = new ConnRef(router, 985644192);
    ConnEnd srcPt985644192(Point(51515, 50975), 8);
    connRef985644192->setSourceEndpoint(srcPt985644192);
    ConnEnd dstPt985644192(shapeRef265539540, 2147483646);
    connRef985644192->setDestEndpoint(dstPt985644192);
    connRef985644192->setRoutingType((ConnType)2);

    router->processTransaction();
    router->outputInstanceToSVG("test-connectionpin03");
    delete router;
    return 0;
}
示例#7
0
int main(void) {
    Router *router = new Router(
            PolyLineRouting | OrthogonalRouting);
    router->setRoutingPenalty((PenaltyType)0, 50);
    router->setRoutingPenalty((PenaltyType)1, 0);
    router->setRoutingPenalty((PenaltyType)2, 0);
    router->setRoutingPenalty((PenaltyType)3, 4000);
    router->setRoutingPenalty((PenaltyType)4, 110);
    router->setOrthogonalNudgeDistance(25);

    Polygon poly426345871(4);
    poly426345871.ps[0] = Point(7200, 5240);
    poly426345871.ps[1] = Point(7200, 5660);
    poly426345871.ps[2] = Point(6690, 5660);
    poly426345871.ps[3] = Point(6690, 5240);
    ShapeRef *shapeRef426345871 = new ShapeRef(router, poly426345871, 426345871);
    router->addShape(shapeRef426345871);

    Polygon poly596896212(4);
    poly596896212.ps[0] = Point(7200, 5740);
    poly596896212.ps[1] = Point(7200, 6160);
    poly596896212.ps[2] = Point(6690, 6160);
    poly596896212.ps[3] = Point(6690, 5740);
    ShapeRef *shapeRef596896212 = new ShapeRef(router, poly596896212, 596896212);
    router->addShape(shapeRef596896212);

    ConnRef *connRef20026701 = new ConnRef(router, 20026701);
    ConnEnd srcPt20026701(Point(7190, 5600), 8);
    connRef20026701->setSourceEndpoint(srcPt20026701);
    ConnEnd dstPt20026701(Point(7190, 5800), 8);
    connRef20026701->setDestEndpoint(dstPt20026701);
    connRef20026701->setRoutingType((ConnType)2);

    ConnRef *connRef124776000 = new ConnRef(router, 124776000);
    ConnEnd srcPt124776000(Point(7190, 5550), 8);
    connRef124776000->setSourceEndpoint(srcPt124776000);
    ConnEnd dstPt124776000(Point(7190, 5850), 8);
    connRef124776000->setDestEndpoint(dstPt124776000);
    connRef124776000->setRoutingType((ConnType)2);

    ConnRef *connRef162425002 = new ConnRef(router, 162425002);
    ConnEnd srcPt162425002(Point(7190, 5500), 8);
    connRef162425002->setSourceEndpoint(srcPt162425002);
    ConnEnd dstPt162425002(Point(7190, 5900), 8);
    connRef162425002->setDestEndpoint(dstPt162425002);
    connRef162425002->setRoutingType((ConnType)2);

    ConnRef *connRef445102866 = new ConnRef(router, 445102866);
    ConnEnd srcPt445102866(Point(7190, 5450), 8);
    connRef445102866->setSourceEndpoint(srcPt445102866);
    ConnEnd dstPt445102866(Point(7190, 5950), 8);
    connRef445102866->setDestEndpoint(dstPt445102866);
    connRef445102866->setRoutingType((ConnType)2);

    ConnRef *connRef472520508 = new ConnRef(router, 472520508);
    ConnEnd srcPt472520508(Point(7190, 5400), 8);
    connRef472520508->setSourceEndpoint(srcPt472520508);
    ConnEnd dstPt472520508(Point(7190, 6000), 8);
    connRef472520508->setDestEndpoint(dstPt472520508);
    connRef472520508->setRoutingType((ConnType)2);

    ConnRef *connRef406587600 = new ConnRef(router, 406587600);
    ConnEnd srcPt406587600(Point(7190, 5350), 8);
    connRef406587600->setSourceEndpoint(srcPt406587600);
    ConnEnd dstPt406587600(Point(7190, 6050), 8);
    connRef406587600->setDestEndpoint(dstPt406587600);
    connRef406587600->setRoutingType((ConnType)2);

    ConnRef *connRef41657796 = new ConnRef(router, 41657796);
    ConnEnd srcPt41657796(Point(7190, 5300), 8);
    connRef41657796->setSourceEndpoint(srcPt41657796);
    ConnEnd dstPt41657796(Point(7190, 6100), 8);
    connRef41657796->setDestEndpoint(dstPt41657796);
    connRef41657796->setRoutingType((ConnType)2);

    router->processTransaction();
    router->outputInstanceToSVG("test-nudgeold");
    delete router;
    return 0;
};
示例#8
0
int main(void) {
    Router *router = new Router(
            PolyLineRouting | OrthogonalRouting);
    router->setRoutingPenalty((PenaltyType)0, 50);
    router->setRoutingPenalty((PenaltyType)1, 0);
    router->setRoutingPenalty((PenaltyType)2, 400);
    router->setRoutingPenalty((PenaltyType)3, 4000);
    router->setRoutingPenalty((PenaltyType)4, 110);
    router->setOrthogonalNudgeDistance(25);

    Polygon poly143407352(4);
    poly143407352.ps[0] = Point(5810, 4340);
    poly143407352.ps[1] = Point(5810, 5035);
    poly143407352.ps[2] = Point(5450, 5035);
    poly143407352.ps[3] = Point(5450, 4340);
    ShapeRef *shapeRef143407352 = new ShapeRef(router, poly143407352, 143407352);
    router->addShape(shapeRef143407352);

    Polygon poly124950386(4);
    poly124950386.ps[0] = Point(4900, 4090);
    poly124950386.ps[1] = Point(4900, 4785);
    poly124950386.ps[2] = Point(4540, 4785);
    poly124950386.ps[3] = Point(4540, 4090);
    ShapeRef *shapeRef124950386 = new ShapeRef(router, poly124950386, 124950386);
    router->addShape(shapeRef124950386);

    ConnRef *connRef373967044 = new ConnRef(router, 373967044);
    ConnEnd srcPt373967044(Point(4890, 4250), 8);
    connRef373967044->setSourceEndpoint(srcPt373967044);
    ConnEnd dstPt373967044(Point(5460, 4500), 4);
    connRef373967044->setDestEndpoint(dstPt373967044);
    connRef373967044->setRoutingType((ConnType)2);

    ConnRef *connRef681881486 = new ConnRef(router, 681881486);
    ConnEnd srcPt681881486(Point(4890, 4325), 8);
    connRef681881486->setSourceEndpoint(srcPt681881486);
    ConnEnd dstPt681881486(Point(5460, 4575), 4);
    connRef681881486->setDestEndpoint(dstPt681881486);
    connRef681881486->setRoutingType((ConnType)2);

    ConnRef *connRef829752 = new ConnRef(router, 829752);
    ConnEnd srcPt829752(Point(4890, 4400), 8);
    connRef829752->setSourceEndpoint(srcPt829752);
    ConnEnd dstPt829752(Point(5460, 4650), 4);
    connRef829752->setDestEndpoint(dstPt829752);
    connRef829752->setRoutingType((ConnType)2);

    ConnRef *connRef17625739 = new ConnRef(router, 17625739);
    ConnEnd srcPt17625739(Point(4890, 4475), 8);
    connRef17625739->setSourceEndpoint(srcPt17625739);
    ConnEnd dstPt17625739(Point(5460, 4725), 4);
    connRef17625739->setDestEndpoint(dstPt17625739);
    connRef17625739->setRoutingType((ConnType)2);

    ConnRef *connRef223864175 = new ConnRef(router, 223864175);
    ConnEnd srcPt223864175(Point(4890, 4550), 8);
    connRef223864175->setSourceEndpoint(srcPt223864175);
    ConnEnd dstPt223864175(Point(5460, 4800), 4);
    connRef223864175->setDestEndpoint(dstPt223864175);
    connRef223864175->setRoutingType((ConnType)2);

    ConnRef *connRef98144280 = new ConnRef(router, 98144280);
    ConnEnd srcPt98144280(Point(4890, 4625), 8);
    connRef98144280->setSourceEndpoint(srcPt98144280);
    ConnEnd dstPt98144280(Point(5460, 4875), 4);
    connRef98144280->setDestEndpoint(dstPt98144280);
    connRef98144280->setRoutingType((ConnType)2);

    ConnRef *connRef283100856 = new ConnRef(router, 283100856);
    ConnEnd srcPt283100856(Point(4890, 4700), 8);
    connRef283100856->setSourceEndpoint(srcPt283100856);
    ConnEnd dstPt283100856(Point(5460, 4950), 4);
    connRef283100856->setDestEndpoint(dstPt283100856);
    connRef283100856->setRoutingType((ConnType)2);

    ConnRef *connRef387080925 = new ConnRef(router, 387080925);
    ConnEnd srcPt387080925(Point(5460, 4425), 4);
    connRef387080925->setSourceEndpoint(srcPt387080925);
    ConnEnd dstPt387080925(Point(4890, 4175), 8);
    connRef387080925->setDestEndpoint(dstPt387080925);
    connRef387080925->setRoutingType((ConnType)2);

    router->processTransaction();
    router->outputInstanceToSVG("test-orthordering-01");
    int crossings = router->existsOrthogonalCrossings();
    delete router;
    return (crossings > 0) ? 1 : 0;
};