Inkscape
Vector Graphics Editor
|
The Router class represents a libavoid router instance. More...
#include <router.h>
Public Member Functions | |
Router (const unsigned int flags) | |
Constructor for router instance. | |
virtual | ~Router () |
Destructor for router instance. | |
void | setTransactionUse (const bool transactions) |
Allows setting of the behaviour of the router in regard to transactions. | |
bool | transactionUse (void) const |
Reports whether the router groups actions into transactions. | |
bool | processTransaction (void) |
Finishes the current transaction and processes all the queued object changes efficiently. | |
void | deleteShape (ShapeRef *shape) |
Delete a shape from the router scene. | |
void | moveShape (ShapeRef *shape, const Polygon &newPoly, const bool first_move=false) |
Move or resize an existing shape within the router scene. | |
void | moveShape (ShapeRef *shape, const double xDiff, const double yDiff) |
Move an existing shape within the router scene by a relative distance. | |
void | deleteJunction (JunctionRef *junction) |
Remove a junction from the router scene. | |
void | deleteConnector (ConnRef *connector) |
Remove a connector from the router scene. | |
void | moveJunction (JunctionRef *junction, const Point &newPosition) |
Move an existing junction within the router scene. | |
void | moveJunction (JunctionRef *junction, const double xDiff, const double yDiff) |
Move an existing junction within the router scene by a relative distance. | |
void | setRoutingParameter (const RoutingParameter parameter, const double value=chooseSensibleParamValue) |
Sets values for routing parameters, including routing penalties. | |
double | routingParameter (const RoutingParameter parameter) const |
Returns the current value for a particular routing parameter of a given type. | |
void | setRoutingOption (const RoutingOption option, const bool value) |
Turn specific routing options on or off. | |
bool | routingOption (const RoutingOption option) const |
Returns the current state for a specific routing option. | |
void | setRoutingPenalty (const RoutingParameter penType, const double penVal=chooseSensibleParamValue) |
Sets or removes penalty values that are applied during connector routing. | |
HyperedgeRerouter * | hyperedgeRerouter (void) |
Returns a pointer to the hyperedge rerouter for the router. | |
void | outputInstanceToSVG (std::string filename=std::string()) |
Generates an SVG file containing debug output and code that can be used to regenerate the instance. | |
virtual unsigned int | newObjectId (void) const |
Returns the object ID used for automatically generated objects, such as during hyperedge routing. | |
bool | objectIdIsUnused (const unsigned int id) const |
Returns whether or not the given ID is already used. | |
virtual bool | shouldContinueTransactionWithProgress (unsigned int elapsedTime, unsigned int phaseNumber, unsigned int totalPhases, double proportion) |
A method called at regular intervals during transaction processing to report progress and ask if the Router should continue the transaction. | |
HyperedgeNewAndDeletedObjectLists | newAndDeletedObjectListsFromHyperedgeImprovement (void) const |
Returns a HyperedgeNewAndDeletedObjectLists detailing the lists of junctions and connectors created and deleted during hyperedge improvement. | |
void | setDebugHandler (DebugHandler *handler) |
DebugHandler * | debugHandler (void) const |
void | processActions (void) |
void | deleteCluster (ClusterRef *cluster) |
void | attachedShapes (IntList &shapes, const unsigned int shapeId, const unsigned int type) |
void | attachedConns (IntList &conns, const unsigned int shapeId, const unsigned int type) |
void | markPolylineConnectorsNeedingReroutingForDeletedObstacle (Obstacle *obstacle) |
void | generateContains (VertInf *pt) |
void | printInfo (void) |
void | regenerateStaticBuiltGraph (void) |
void | destroyOrthogonalVisGraph (void) |
void | setStaticGraphInvalidated (const bool invalidated) |
ConnType | validConnType (const ConnType select=ConnType_None) const |
bool | isInCrossingPenaltyReroutingStage (void) const |
void | markAllObstaclesAsMoved (void) |
ShapeRef * | shapeContainingPoint (const Point &point) |
void | performContinuationCheck (unsigned int phaseNumber, size_t stepNumber, size_t totalSteps) |
void | registerSettingsChange (void) |
void | setTopologyAddon (TopologyAddonInterface *topologyAddon) |
Set an addon for doing orthogonal topology improvement. | |
void | improveOrthogonalTopology (void) |
bool | existsOrthogonalSegmentOverlap (const bool atEnds=false) |
bool | existsOrthogonalFixedSegmentOverlap (const bool atEnds=false) |
bool | existsOrthogonalTouchingPaths (void) |
int | existsCrossings (const bool optimisedForConnectorType=false) |
bool | existsInvalidOrthogonalPaths (void) |
void | outputDiagramSVG (std::string instanceName=std::string(), LineReps *lineReps=nullptr) |
void | outputDiagramText (std::string instanceName=std::string()) |
void | outputDiagram (std::string instanceName=std::string()) |
Public Attributes | |
ObstacleList | m_obstacles |
ConnRefList | connRefs |
ClusterRefList | clusterRefs |
EdgeList | visGraph |
EdgeList | invisGraph |
EdgeList | visOrthogGraph |
ContainsMap | contains |
VertInfList | vertices |
ContainsMap | enclosingClusters |
bool | PartialTime |
bool | SimpleRouting |
bool | ClusteredRouting |
bool | IgnoreRegions |
bool | UseLeesAlgorithm |
bool | InvisibilityGrph |
bool | SelectiveReroute |
bool | PartialFeedback |
bool | RubberBandRouting |
Timer | timers |
int | st_checked_edges |
Private Member Functions | |
unsigned int | assignId (const unsigned int suggestedId) |
void | addShape (ShapeRef *shape) |
void | addJunction (JunctionRef *junction) |
void | addCluster (ClusterRef *cluster) |
void | modifyConnector (ConnRef *conn) |
void | modifyConnector (ConnRef *conn, unsigned int type, const ConnEnd &connEnd, bool connPinUpdate=false) |
void | modifyConnectionPin (ShapeConnectionPin *pin) |
void | removeObjectFromQueuedActions (const void *object) |
void | newBlockingShape (const Polygon &poly, int pid) |
void | checkAllBlockedEdges (int pid) |
void | checkAllMissingEdges (void) |
void | adjustContainsWithAdd (const Polygon &poly, const int p_shape) |
void | adjustContainsWithDel (const int p_shape) |
void | adjustClustersWithAdd (const PolygonInterface &poly, const int p_cluster) |
void | adjustClustersWithDel (const int p_cluster) |
void | rerouteAndCallbackConnectors (void) |
void | improveCrossings (void) |
Friends | |
class | ShapeRef |
class | ConnRef |
class | JunctionRef |
class | Obstacle |
class | ClusterRef |
class | ShapeConnectionPin |
class | MinimumTerminalSpanningTree |
class | ConnEnd |
struct | HyperedgeTreeNode |
class | HyperedgeRerouter |
class | HyperedgeImprover |
The Router class represents a libavoid router instance.
Usually you would keep a separate Router instance for each diagram or layout you have open in your application.
Avoid::Router::Router | ( | const unsigned int | flags | ) |
Constructor for router instance.
[in] | flags | One or more Avoid::RouterFlag options to control the behaviour of the router. |
Definition at line 46 of file router.cpp.
References Avoid::clusterCrossingPenalty, Avoid::idealNudgingDistance, Avoid::improveHyperedgeRoutesMovingAddingAndDeletingJunctions, Avoid::improveHyperedgeRoutesMovingJunctions, Avoid::lastRoutingParameterMarker, m_allows_orthogonal_routing, m_allows_polyline_routing, m_hyperedge_improver, m_hyperedge_rerouter, m_routing_options, m_routing_parameters, Avoid::nudgeOrthogonalSegmentsConnectedToShapes, Avoid::nudgeOrthogonalTouchingColinearSegments, Avoid::nudgeSharedPathsWithCommonEndPoint, Avoid::OrthogonalRouting, Avoid::penaliseOrthogonalSharedPathsAtConnEnds, Avoid::performUnifyingNudgingPreprocessingStep, Avoid::PolyLineRouting, Avoid::segmentPenalty, Avoid::HyperedgeRerouter::setRouter(), and Avoid::HyperedgeImprover::setRouter().
|
virtual |
Destructor for router instance.
Definition at line 107 of file router.cpp.
References connRefs, Avoid::db_printf(), destroyOrthogonalVisGraph(), Avoid::Obstacle::id(), Avoid::Obstacle::isActive(), m_currently_calling_destructors, m_obstacles, m_topology_addon, Avoid::Obstacle::makeInactive(), Avoid::Obstacle::removeFromGraph(), Avoid::EdgeList::size(), and visGraph.
|
private |
Definition at line 780 of file router.cpp.
References adjustClustersWithAdd(), Avoid::ClusterRef::id(), Avoid::ClusterRef::makeActive(), and Avoid::ClusterRef::polygon().
Referenced by Avoid::ClusterRef::ClusterRef().
|
private |
Definition at line 659 of file router.cpp.
References actionList, Avoid::JunctionAdd, Avoid::JunctionMove, Avoid::JunctionRemove, m_consolidate_actions, and processTransaction().
Referenced by Avoid::JunctionRef::JunctionRef(), and Avoid::ConnRef::splitAtSegment().
|
private |
Definition at line 255 of file router.cpp.
References actionList, m_consolidate_actions, processTransaction(), Avoid::ShapeAdd, Avoid::ShapeMove, and Avoid::ShapeRemove.
Referenced by main(), makeFeasible(), and Avoid::ShapeRef::ShapeRef().
|
private |
Definition at line 1704 of file router.cpp.
References Avoid::VertInfList::connsBegin(), enclosingClusters, Avoid::inPolyGen(), Avoid::VertInf::lstNext, Avoid::VertInfList::shapesBegin(), and vertices.
Referenced by addCluster().
|
private |
Definition at line 1718 of file router.cpp.
References enclosingClusters.
Referenced by deleteCluster().
|
private |
Definition at line 1728 of file router.cpp.
References Avoid::VertInfList::connsBegin(), contains, Avoid::inPoly(), Avoid::VertInf::lstNext, Avoid::VertInfList::shapesBegin(), and vertices.
Referenced by processActions().
|
private |
|
private |
Definition at line 807 of file router.cpp.
References m_largest_assigned_id, newObjectId(), and objectIdIsUnused().
Referenced by Avoid::ClusterRef::ClusterRef(), Avoid::ConnRef::ConnRef(), Avoid::ConnRef::ConnRef(), and Avoid::Obstacle::Obstacle().
void Avoid::Router::attachedConns | ( | IntList & | conns, |
const unsigned int | shapeId, | ||
const unsigned int | type | ||
) |
Definition at line 867 of file router.cpp.
References connRefs, Avoid::runningFrom, and Avoid::runningTo.
Referenced by SPAvoidRef::getAttachedConnectors().
void Avoid::Router::attachedShapes | ( | IntList & | shapes, |
const unsigned int | shapeId, | ||
const unsigned int | type | ||
) |
Definition at line 891 of file router.cpp.
References connRefs, Avoid::runningFrom, and Avoid::runningTo.
Referenced by SPAvoidRef::getAttachedShapes().
|
private |
Definition at line 1615 of file router.cpp.
References Avoid::EdgeInf::alertConns(), Avoid::EdgeList::begin(), Avoid::EdgeInf::blocker(), Avoid::EdgeInf::checkVis(), Avoid::EdgeList::end(), invisGraph, InvisibilityGrph, and Avoid::EdgeInf::lstNext.
Referenced by processActions().
|
private |
Definition at line 1637 of file router.cpp.
References Avoid::EdgeInf::checkEdgeVisibility(), Avoid::VertInfList::connsBegin(), Avoid::VertInfList::end(), Avoid::EdgeInf::existingEdge(), InvisibilityGrph, Avoid::VertID::isConnectionPin(), Avoid::VertID::isConnPt(), Avoid::VertInf::lstNext, Avoid::VertID::objID, and vertices.
Referenced by processActions().
DebugHandler * Avoid::Router::debugHandler | ( | void | ) | const |
Definition at line 153 of file router.cpp.
References m_debug_handler.
Referenced by Avoid::MinimumTerminalSpanningTree::buildHyperedgeTreeToRoot(), Avoid::MinimumTerminalSpanningTree::commitToBridgingEdge(), Avoid::MinimumTerminalSpanningTree::constructInterleaved(), Avoid::MinimumTerminalSpanningTree::constructSequential(), Avoid::MinimumTerminalSpanningTree::drawForest(), Avoid::ConnRef::generatePath(), Avoid::HyperedgeRerouter::performRerouting(), and Avoid::HyperedgeTreeEdge::writeEdgesToConns().
void Avoid::Router::deleteCluster | ( | ClusterRef * | cluster | ) |
Definition at line 791 of file router.cpp.
References adjustClustersWithDel(), Avoid::ClusterRef::id(), and Avoid::ClusterRef::makeInactive().
void Avoid::Router::deleteConnector | ( | ConnRef * | connector | ) |
Remove a connector from the router scene.
If the router is using transactions, then this action will occur the next time Router::processTransaction() is called. See Router::setTransactionUse() for more information.
You should not use the connector reference again after this call. The router will handle freeing of the connector's memory.
[in] | connector | Pointer reference to the connector being removed. |
Definition at line 312 of file router.cpp.
References m_currently_calling_destructors.
Referenced by Avoid::HyperedgeImprover::execute(), main(), Avoid::HyperedgeRerouter::performRerouting(), SPConnEndPair::release(), Avoid::JunctionRef::removeJunctionAndMergeConnectors(), SPConnEndPair::setAttr(), and test().
void Avoid::Router::deleteJunction | ( | JunctionRef * | junction | ) |
Remove a junction from the router scene.
If the router is using transactions, then this action will occur the next time Router::processTransaction() is called. See Router::setTransactionUse() for more information.
You should not use the junction reference again after this call. The router will handle freeing of the junction's memory.
[in] | junction | Pointer reference to the junction being removed. |
Definition at line 685 of file router.cpp.
References actionList, Avoid::JunctionAdd, Avoid::JunctionMove, Avoid::JunctionRemove, m_consolidate_actions, and processTransaction().
Referenced by Avoid::HyperedgeImprover::execute(), Avoid::HyperedgeRerouter::performRerouting(), Avoid::JunctionRef::removeJunctionAndMergeConnectors(), and test().
void Avoid::Router::deleteShape | ( | ShapeRef * | shape | ) |
Delete a shape from the router scene.
Connectors that could have a better (usually shorter) path after the removal of this shape will be marked as needing to be rerouted.
If the router is using transactions, then this action will occur the next time Router::processTransaction() is called. See Router::setTransactionUse() for more information.
You should not use the shape reference again after this call. The router will handle freeing of the shape's memory.
[in] | shape | Pointer reference to the shape being removed. |
Definition at line 281 of file router.cpp.
References actionList, m_consolidate_actions, processTransaction(), Avoid::ShapeAdd, Avoid::ShapeMove, and Avoid::ShapeRemove.
Referenced by SPAvoidRef::handleSettingChange(), main(), test(), and SPAvoidRef::~SPAvoidRef().
void Avoid::Router::destroyOrthogonalVisGraph | ( | void | ) |
Definition at line 409 of file router.cpp.
References Avoid::EdgeList::clear(), Avoid::dummyOrthogID(), Avoid::VertInf::id, Avoid::VertInf::lstNext, Avoid::VertInf::orphaned(), Avoid::VertInfList::removeVertex(), Avoid::VertInfList::shapesBegin(), vertices, and visOrthogGraph.
Referenced by regenerateStaticBuiltGraph(), and ~Router().
int Avoid::Router::existsCrossings | ( | const bool | optimisedForConnectorType = false | ) |
Definition at line 2277 of file router.cpp.
References connRefs, and Avoid::Polygon::size().
Referenced by main().
bool Avoid::Router::existsInvalidOrthogonalPaths | ( | void | ) |
Definition at line 2310 of file router.cpp.
References Avoid::Polygon::at(), connRefs, Avoid::ConnType_Orthogonal, Avoid::Polygon::size(), Avoid::Point::x, and Avoid::Point::y.
bool Avoid::Router::existsOrthogonalFixedSegmentOverlap | ( | const bool | atEnds = false | ) |
Definition at line 2207 of file router.cpp.
References connRefs, Avoid::CROSSING_SHARES_FIXED_SEGMENT, Avoid::CROSSING_SHARES_PATH, Avoid::CROSSING_SHARES_PATH_AT_END, and Avoid::Polygon::size().
bool Avoid::Router::existsOrthogonalSegmentOverlap | ( | const bool | atEnds = false | ) |
Definition at line 2174 of file router.cpp.
References connRefs, Avoid::CROSSING_SHARES_PATH, Avoid::CROSSING_SHARES_PATH_AT_END, and Avoid::Polygon::size().
Referenced by main().
bool Avoid::Router::existsOrthogonalTouchingPaths | ( | void | ) |
Definition at line 2241 of file router.cpp.
References connRefs, Avoid::CROSSING_TOUCHES, and Avoid::Polygon::size().
Referenced by main().
void Avoid::Router::generateContains | ( | VertInf * | pt | ) |
Definition at line 1673 of file router.cpp.
References clusterRefs, contains, enclosingClusters, Avoid::VertInf::id, Avoid::inPoly(), Avoid::inPolyGen(), m_obstacles, and Avoid::VertInf::point.
Referenced by Avoid::vertexVisibility().
HyperedgeRerouter * Avoid::Router::hyperedgeRerouter | ( | void | ) |
Returns a pointer to the hyperedge rerouter for the router.
Definition at line 2071 of file router.cpp.
References m_hyperedge_rerouter.
|
private |
Definition at line 1408 of file router.cpp.
References connRefs, Avoid::CROSSING_SHARES_FIXED_SEGMENT, Avoid::CROSSING_SHARES_PATH, Avoid::CROSSING_SHARES_PATH_AT_END, Avoid::crossingPenalty, Avoid::fixedSharedPathPenalty, Avoid::ConnRef::freeActivePins(), Avoid::ConnRef::freeRoutes(), Avoid::ConnRef::generatePath(), m_abort_transaction, m_in_crossing_rerouting_stage, m_routing_options, Avoid::ConnRef::makePathInvalid(), Avoid::penaliseOrthogonalSharedPathsAtConnEnds, performContinuationCheck(), routingParameter(), Avoid::Polygon::size(), Avoid::TransactionPhaseCrossingDetection, and Avoid::TransactionPhaseRerouteSearch.
Referenced by rerouteAndCallbackConnectors().
void Avoid::Router::improveOrthogonalTopology | ( | void | ) |
Definition at line 2352 of file router.cpp.
References Avoid::TopologyAddonInterface::improveOrthogonalTopology(), and m_topology_addon.
bool Avoid::Router::isInCrossingPenaltyReroutingStage | ( | void | ) | const |
Definition at line 2077 of file router.cpp.
References m_in_crossing_rerouting_stage.
Referenced by Avoid::cost().
void Avoid::Router::markAllObstaclesAsMoved | ( | void | ) |
Definition at line 342 of file router.cpp.
References m_obstacles, moveJunction(), and moveShape().
void Avoid::Router::markPolylineConnectorsNeedingReroutingForDeletedObstacle | ( | Obstacle * | obstacle | ) |
Definition at line 1767 of file router.cpp.
References c, connRefs, Avoid::ConnType_PolyLine, Avoid::db_printf(), Avoid::Polygon::empty(), end, Avoid::euclideanDist(), Avoid::Obstacle::firstVert(), Avoid::Obstacle::lastVert(), Avoid::VertInf::lstNext, Avoid::ConnRef::m_needs_reroute_flag, Avoid::ConnRef::m_route, Avoid::ConnRef::m_route_dist, Avoid::Polygon::ps, Avoid::ConnRef::routingType(), RubberBandRouting, SelectiveReroute, Avoid::Polygon::size(), start, Geom::Point::x(), Avoid::Point::x, Geom::Point::y(), and Avoid::Point::y.
Referenced by processActions().
|
private |
Definition at line 220 of file router.cpp.
References actionList, Avoid::ConnectionPinChange, m_consolidate_actions, and processTransaction().
Referenced by Avoid::Obstacle::addConnectionPin(), Avoid::Obstacle::removeConnectionPin(), and Avoid::ShapeRef::transformConnectionPinPositions().
|
private |
Definition at line 202 of file router.cpp.
References actionList, Avoid::ConnChange, m_consolidate_actions, and processTransaction().
Referenced by Avoid::JunctionRef::moveAttachedConns(), Avoid::ShapeRef::moveAttachedConns(), Avoid::JunctionRef::removeJunctionAndMergeConnectors(), Avoid::ConnRef::setDestEndpoint(), Avoid::ConnRef::setEndpoint(), Avoid::ConnRef::setEndpoints(), Avoid::ConnRef::setRoutingType(), and Avoid::ConnRef::setSourceEndpoint().
|
private |
Definition at line 176 of file router.cpp.
References actionList, Avoid::ConnChange, Avoid::ActionInfo::conns, m_consolidate_actions, and processTransaction().
void Avoid::Router::moveJunction | ( | JunctionRef * | junction, |
const double | xDiff, | ||
const double | yDiff | ||
) |
Move an existing junction within the router scene by a relative distance.
Connectors that are attached to this junction will be rerouted as a result of the move.
If the router is using transactions, then this action will occur the next time Router::processTransaction() is called. See Router::setTransactionUse() for more information.
[in] | junction | Pointer reference to the junction being moved. |
[in] | xDiff | The distance to move the junction in the x dimension. |
[in] | yDiff | The distance to move the junction in the y dimension. |
Definition at line 716 of file router.cpp.
References actionList, Avoid::JunctionMove, moveJunction(), Avoid::JunctionRef::position(), Avoid::Point::x, and Avoid::Point::y.
void Avoid::Router::moveJunction | ( | JunctionRef * | junction, |
const Point & | newPosition | ||
) |
Move an existing junction within the router scene.
Connectors that are attached to this junction will be rerouted as a result of the move.
If the router is using transactions, then this action will occur the next time Router::processTransaction() is called. See Router::setTransactionUse() for more information.
[in] | junction | Pointer reference to the junction being moved. |
[in] | newPosition | The new position for the junction. |
Definition at line 741 of file router.cpp.
References actionList, Avoid::JunctionAdd, Avoid::JunctionMove, Avoid::JunctionRemove, m_consolidate_actions, and processTransaction().
Referenced by main(), markAllObstaclesAsMoved(), and moveJunction().
void Avoid::Router::moveShape | ( | ShapeRef * | shape, |
const double | xDiff, | ||
const double | yDiff | ||
) |
Move an existing shape within the router scene by a relative distance.
Connectors that intersect the shape's new position, or that could have a better (usually shorter) path after the change, will be marked as needing to be rerouted.
If the router is using transactions, then this action will occur the next time Router::processTransaction() is called. See Router::setTransactionUse() for more information.
[in] | shape | Pointer reference to the shape being moved. |
[in] | xDiff | The distance to move the shape in the x dimension. |
[in] | yDiff | The distance to move the shape in the y dimension. |
Definition at line 319 of file router.cpp.
References actionList, moveShape(), Avoid::ShapeRef::polygon(), Avoid::ShapeMove, and Avoid::Polygon::translate().
void Avoid::Router::moveShape | ( | ShapeRef * | shape, |
const Polygon & | newPoly, | ||
const bool | first_move = false |
||
) |
Move or resize an existing shape within the router scene.
A new polygon for the shape can be given to effectively move or resize the shape with the scene. Connectors that intersect the new shape polygon, or that could have a better (usually shorter) path after the change, will be marked as needing to be rerouted.
If the router is using transactions, then this action will occur the next time Router::processTransaction() is called. See Router::setTransactionUse() for more information.
[in] | shape | Pointer reference to the shape being moved/resized. |
[in] | newPoly | The new polygon boundary for the shape. |
[in] | first_move | This option is used for some advanced (currently undocumented) behaviour and it should be ignored for the moment. |
Definition at line 360 of file router.cpp.
References actionList, m_consolidate_actions, processTransaction(), Avoid::ShapeAdd, Avoid::ShapeMove, and Avoid::ShapeRemove.
Referenced by avoid_item_move(), main(), markAllObstaclesAsMoved(), moveShape(), and test().
HyperedgeNewAndDeletedObjectLists Avoid::Router::newAndDeletedObjectListsFromHyperedgeImprovement | ( | void | ) | const |
Returns a HyperedgeNewAndDeletedObjectLists detailing the lists of junctions and connectors created and deleted during hyperedge improvement.
This method will only return information once the router has processed the transaction. You should read and act on this information before processTransaction() is called again.
After calling this you should no longer refer to any of the objects in the "deleted" lists — the router will delete these and free their memory at its convenience.
Definition at line 3083 of file router.cpp.
References m_hyperedge_improver, and Avoid::HyperedgeImprover::newAndDeletedObjectLists().
Referenced by test().
|
private |
Definition at line 1550 of file router.cpp.
References Avoid::EdgeInf::addBlocker(), Avoid::EdgeInf::alertConns(), Avoid::EdgeList::begin(), Avoid::EdgeInf::db_print(), Avoid::db_printf(), Avoid::EdgeList::end(), Avoid::EdgeInf::getDist(), Avoid::EdgeInf::ids(), Avoid::inPoly(), InvisibilityGrph, Avoid::VertID::isConnPt(), Avoid::EdgeInf::lstNext, Avoid::EdgeInf::points(), Avoid::Polygon::ps, Avoid::segmentShapeIntersect(), Avoid::Polygon::size(), and visGraph.
Referenced by processActions().
|
virtual |
Returns the object ID used for automatically generated objects, such as during hyperedge routing.
Reimplement this in a subclass to set specific IDs for new objects.
Definition at line 801 of file router.cpp.
References m_largest_assigned_id.
Referenced by assignId().
bool Avoid::Router::objectIdIsUnused | ( | const unsigned int | id | ) | const |
Returns whether or not the given ID is already used.
You should only need this if you reimplement newObjectId().
[in] | id | An ID to test. |
Definition at line 827 of file router.cpp.
References clusterRefs, connRefs, and m_obstacles.
Referenced by assignId().
void Avoid::Router::outputDiagram | ( | std::string | instanceName = std::string() | ) |
Definition at line 3003 of file router.cpp.
References outputDiagramText(), and outputInstanceToSVG().
Referenced by main(), outputDiagram(), and test().
void Avoid::Router::outputDiagramSVG | ( | std::string | instanceName = std::string() , |
LineReps * | lineReps = nullptr |
||
) |
Definition at line 2861 of file router.cpp.
References connRefs, Avoid::VertInfList::connsBegin(), Avoid::ConnRef::displayRoute(), Avoid::Polygon::empty(), Avoid::ConnRef::id(), Avoid::Obstacle::id(), Avoid::LIMIT, Avoid::VertInf::lstNext, m_obstacles, Avoid::Box::max, Avoid::Box::min, Avoid::PolygonInterface::offsetBoundingBox(), Avoid::VertInf::point, Avoid::Obstacle::polygon(), Avoid::Polygon::ps, Avoid::reduceRange(), Avoid::Polygon::size(), vertices, Avoid::Point::x, and Avoid::Point::y.
void Avoid::Router::outputDiagramText | ( | std::string | instanceName = std::string() | ) |
Definition at line 3011 of file router.cpp.
References connRefs, Avoid::ConnRef::displayRoute(), Avoid::Polygon::empty(), Avoid::ConnRef::id(), Avoid::Obstacle::id(), m_obstacles, Avoid::Box::max, Avoid::Box::min, Avoid::PolygonInterface::offsetBoundingBox(), Avoid::Obstacle::polygon(), Avoid::Polygon::ps, Avoid::Polygon::size(), Avoid::Point::x, and Avoid::Point::y.
Referenced by outputDiagram().
void Avoid::Router::outputInstanceToSVG | ( | std::string | filename = std::string() | ) |
Generates an SVG file containing debug output and code that can be used to regenerate the instance.
If transactions are being used, then this method should be called after processTransaction() has been called, so that it includes any changes being queued by the router.
[in] | filename | A string indicating the filename (without extension) for the output file. Defaults to "libavoid-debug.svg" if no filename is given. |
Definition at line 2358 of file router.cpp.
References Avoid::Polygon::at(), Avoid::ReferencingPolygon::at(), Avoid::EdgeList::begin(), clusterRefs, connRefs, Avoid::VertInfList::connsBegin(), Avoid::Polygon::curvedPolyline(), Avoid::ConnRef::displayRoute(), Avoid::ConnRef::dst(), Avoid::Polygon::empty(), Avoid::EdgeList::end(), Avoid::ConnRef::id(), Avoid::Obstacle::id(), Avoid::ClusterRef::id(), Avoid::EdgeInf::ids(), Avoid::lastRoutingOptionMarker, Avoid::lastRoutingParameterMarker, Avoid::LIMIT, Avoid::EdgeInf::lstNext, Avoid::VertInf::lstNext, m_allows_orthogonal_routing, m_allows_polyline_routing, Avoid::ConnRef::m_checkpoints, m_obstacles, m_routing_options, m_routing_parameters, m_topology_addon, Avoid::Box::max, Avoid::Box::min, Avoid::ConnRef::outputCode(), Avoid::TopologyAddonInterface::outputCode(), Avoid::Obstacle::outputCode(), Avoid::TopologyAddonInterface::outputDeletionCode(), Avoid::VertInf::point, Avoid::EdgeInf::points(), Avoid::ClusterRef::polygon(), Avoid::Obstacle::polygon(), Avoid::Polygon::ps, Avoid::JunctionRef::recommendedPosition(), Avoid::ClusterRef::rectangularPolygon(), Avoid::reduceRange(), Avoid::ConnRef::route(), Avoid::Obstacle::routingBox(), Avoid::Obstacle::routingPolygon(), Avoid::Polygon::size(), Avoid::ReferencingPolygon::size(), size, Avoid::ConnRef::src(), Avoid::Polygon::ts, vertices, Avoid::VertInf::visDirections, visGraph, visOrthogGraph, Avoid::Point::x, and Avoid::Point::y.
Referenced by outputDiagram().
void Avoid::Router::performContinuationCheck | ( | unsigned int | phaseNumber, |
size_t | stepNumber, | ||
size_t | totalSteps | ||
) |
Definition at line 1356 of file router.cpp.
References m_abort_transaction, m_transaction_start_time, shouldContinueTransactionWithProgress(), and Avoid::TransactionPhaseCompleted.
Referenced by improveCrossings(), and rerouteAndCallbackConnectors().
void Avoid::Router::printInfo | ( | void | ) |
Definition at line 2083 of file router.cpp.
References Avoid::EdgeList::begin(), Avoid::VertInfList::connsBegin(), Avoid::EdgeList::end(), Avoid::VertInfList::end(), invisGraph, Avoid::VertID::isConnPt(), Avoid::EdgeInf::lstNext, Avoid::VertInf::lstNext, Avoid::VertID::objID, Avoid::Timer::printAll(), Avoid::Timer::reset(), st_checked_edges, timers, vertices, visGraph, and visOrthogGraph.
void Avoid::Router::processActions | ( | void | ) |
Definition at line 464 of file router.cpp.
References actionList, adjustContainsWithAdd(), adjustContainsWithDel(), checkAllBlockedEdges(), checkAllMissingEdges(), Avoid::Obstacle::computeVisibilityNaive(), Avoid::Obstacle::computeVisibilitySweep(), Avoid::ActionInfo::conn(), Avoid::ConnChange, Avoid::ActionInfo::conns, Avoid::ActionInfo::firstMove, Avoid::Obstacle::id(), InvisibilityGrph, Avoid::ActionInfo::junction(), Avoid::JunctionAdd, Avoid::JunctionMove, Avoid::JunctionRemove, m_abort_transaction, m_allows_polyline_routing, m_currently_calling_destructors, m_transaction_start_time, Avoid::Obstacle::makeActive(), Avoid::Obstacle::makeInactive(), markPolylineConnectorsNeedingReroutingForDeletedObstacle(), Avoid::JunctionRef::moveAttachedConns(), Avoid::ShapeRef::moveAttachedConns(), newBlockingShape(), Avoid::ActionInfo::newPoly, Avoid::ActionInfo::newPosition, Avoid::ActionInfo::obstacle(), PartialFeedback, PartialTime, Avoid::Obstacle::removeFromGraph(), Avoid::Obstacle::routingPolygon(), SelectiveReroute, Avoid::Obstacle::setNewPoly(), Avoid::JunctionRef::setPosition(), Avoid::ActionInfo::shape(), Avoid::ShapeAdd, Avoid::ShapeMove, Avoid::ShapeRemove, Avoid::ActionInfo::type, Avoid::ConnRef::updateEndPoint(), Avoid::Obstacle::updatePinPolyLineVisibility(), and UseLeesAlgorithm.
Referenced by processTransaction().
bool Avoid::Router::processTransaction | ( | void | ) |
Finishes the current transaction and processes all the queued object changes efficiently.
This method will efficiently process all moves, additions and deletions that have occurred since processTransaction() was last called.
If transactionUse() is false, then all actions will have been processed immediately and this method will do nothing.
Definition at line 640 of file router.cpp.
References actionList, Avoid::HyperedgeRerouter::count(), m_hyperedge_rerouter, m_settings_changes, m_static_orthogonal_graph_invalidated, processActions(), rerouteAndCallbackConnectors(), and SimpleRouting.
Referenced by addJunction(), addShape(), deleteJunction(), deleteShape(), main(), makeFeasible(), modifyConnectionPin(), modifyConnector(), modifyConnector(), moveJunction(), moveShape(), Avoid::ConnRef::setEndpoint(), SPConnEndPair::tellLibavoidNewEndpoints(), and test().
void Avoid::Router::regenerateStaticBuiltGraph | ( | void | ) |
Definition at line 430 of file router.cpp.
References destroyOrthogonalVisGraph(), Avoid::generateStaticOrthogonalVisGraph(), m_allows_orthogonal_routing, m_static_orthogonal_graph_invalidated, and Avoid::tmOrthogGraph.
Referenced by rerouteAndCallbackConnectors().
void Avoid::Router::registerSettingsChange | ( | void | ) |
Definition at line 2066 of file router.cpp.
References m_settings_changes.
Referenced by Avoid::ConnRef::clearFixedRoute(), Avoid::ConnRef::setFixedExistingRoute(), Avoid::ConnRef::setFixedRoute(), Avoid::JunctionRef::setPositionFixed(), and setTopologyAddon().
|
private |
Definition at line 238 of file router.cpp.
References actionList.
Referenced by Avoid::HyperedgeTreeNode::addConns(), Avoid::MinimumTerminalSpanningTree::addNode(), Avoid::HyperedgeImprover::moveJunctionAlongCommonEdge(), and Avoid::ConnRef::~ConnRef().
|
private |
Definition at line 924 of file router.cpp.
References Avoid::ConnRerouteFlagDelegate::alertConns(), Avoid::HyperedgeRerouter::calcHyperedgeConnectors(), Avoid::HyperedgeImprover::clear(), connRefs, Avoid::HyperedgeRerouter::count(), Avoid::HyperedgeNewAndDeletedObjectLists::deletedConnectorList, Avoid::HyperedgeImprover::execute(), Avoid::ConnRef::generatePath(), Avoid::ConnRef::hasFixedRoute(), improveCrossings(), Avoid::improveHyperedgeRoutesMovingAddingAndDeletingJunctions, Avoid::improveHyperedgeRoutesMovingJunctions, Avoid::improveOrthogonalRoutes(), index, m_conn_reroute_flags, m_hyperedge_improver, m_hyperedge_rerouter, Avoid::ConnRef::m_needs_repaint, Avoid::HyperedgeRerouter::newAndDeletedObjectLists(), Avoid::HyperedgeImprover::newAndDeletedObjectLists(), Avoid::ConnRef::performCallback(), performContinuationCheck(), Avoid::HyperedgeRerouter::performRerouting(), regenerateStaticBuiltGraph(), routingOption(), Avoid::tmOrthogRoute, Avoid::TransactionPhaseCompleted, and Avoid::TransactionPhaseRouteSearch.
Referenced by processTransaction().
bool Avoid::Router::routingOption | ( | const RoutingOption | option | ) | const |
Returns the current state for a specific routing option.
[in] | option | The type of routing option, a RoutingOption. |
Definition at line 2053 of file router.cpp.
References Avoid::lastRoutingOptionMarker, m_routing_options, and option.
Referenced by Avoid::cost(), and rerouteAndCallbackConnectors().
double Avoid::Router::routingParameter | ( | const RoutingParameter | parameter | ) | const |
Returns the current value for a particular routing parameter of a given type.
[in] | parameter | The type of parameter, a RoutingParameter. |
Definition at line 2038 of file router.cpp.
References Avoid::lastRoutingParameterMarker, and m_routing_parameters.
Referenced by Avoid::ConnEnd::assignPinVisibilityTo(), Avoid::cost(), Avoid::estimatedCostSpecific(), improveCrossings(), Avoid::JunctionRef::makeRectangle(), Avoid::Obstacle::routingBox(), and Avoid::Obstacle::routingPolygon().
void Avoid::Router::setDebugHandler | ( | DebugHandler * | handler | ) |
Definition at line 148 of file router.cpp.
References m_debug_handler.
void Avoid::Router::setRoutingOption | ( | const RoutingOption | option, |
const bool | value | ||
) |
Turn specific routing options on or off.
[in] | option | The type of routing option, a RoutingOption. |
[in] | value | A boolean representing the option state. |
Definition at line 2045 of file router.cpp.
References Avoid::lastRoutingOptionMarker, m_routing_options, m_settings_changes, and option.
void Avoid::Router::setRoutingParameter | ( | const RoutingParameter | parameter, |
const double | value = chooseSensibleParamValue |
||
) |
Sets values for routing parameters, including routing penalties.
libavoid uses a set of parameters to allow the user more control over routing style and quality. These different parameters are described and explained by the RoutingParameter enum. All parameters have sensible defaults.
Regarding routing penalties, libavoid will by default produce shortest path routes between the source and destination points for each connector. There are several penalties that can be applied during this stage to penalise certain conditions and thus improve the aesthetics of the routes generated.
If a value of zero or Avoid::zeroParamValue is given then the particular parameter value or penalty will be removed. If no parameter value argument (or a negative value) is specified when calling this method, then a sensible penalty value will be automatically chosen.
This method does not re-trigger processing of connectors. The new parameter value will be used the next time rerouting is performed.
[in] | parameter | The type of penalty, a RoutingParameter. |
[in] | value | The value to be set for that parameter. |
Definition at line 1995 of file router.cpp.
References Avoid::anglePenalty, Avoid::clusterCrossingPenalty, Avoid::crossingPenalty, Avoid::fixedSharedPathPenalty, Avoid::idealNudgingDistance, Avoid::lastRoutingParameterMarker, m_routing_parameters, m_settings_changes, Avoid::portDirectionPenalty, and Avoid::segmentPenalty.
Referenced by main(), setRoutingPenalty(), and test().
void Avoid::Router::setRoutingPenalty | ( | const RoutingParameter | penType, |
const double | penVal = chooseSensibleParamValue |
||
) |
Sets or removes penalty values that are applied during connector routing.
[in] | penType | The type of penalty, a RoutingParameter. |
[in] | penVal | The value to be applied for each occurrence of the penalty case. |
Definition at line 2060 of file router.cpp.
References setRoutingParameter().
void Avoid::Router::setStaticGraphInvalidated | ( | const bool | invalidated | ) |
Definition at line 403 of file router.cpp.
References m_static_orthogonal_graph_invalidated.
Referenced by Avoid::ConnRef::common_updateEndPoint().
void Avoid::Router::setTopologyAddon | ( | TopologyAddonInterface * | topologyAddon | ) |
Set an addon for doing orthogonal topology improvement.
It is expected that you would use the topology::AvoidTopologyAddon() from libtopology rather than write your own. This is done so that libavoid does not have to depend on libtopology.
Definition at line 2337 of file router.cpp.
References Avoid::TopologyAddonInterface::clone(), m_topology_addon, and registerSettingsChange().
void Avoid::Router::setTransactionUse | ( | const bool | transactions | ) |
Allows setting of the behaviour of the router in regard to transactions.
This controls whether transactions are used to queue changes and process them efficiently at once or they are instead processed immediately.
It is more efficient to perform actions like shape movement, addition or deletion as batch tasks, and reroute the necessary connectors just once after these actions have been performed. For this reason, libavoid allows you to group such actions into "transactions" that are processed efficiently when the processTransaction() method is called.
By default, the router will process all actions as transactions. If transactionUse() is set to false, then all actions will get processed immediately, and cause immediate routing callbacks to all affected connectors after each action.
[in] | transactions | A boolean value specifying whether to use transactions. |
Definition at line 457 of file router.cpp.
References m_consolidate_actions.
Definition at line 158 of file router.cpp.
References Avoid::inPoly(), m_obstacles, and Avoid::Obstacle::routingPolygon().
|
virtual |
A method called at regular intervals during transaction processing to report progress and ask if the Router should continue the transaction.
You can subclass the Avoid::Router class to implement your own behaviour, such as to show a progress bar or cancel the transaction at the user's request.
Note that you can get a sense of progress by looking at the phaseNumber divided by the totalPhases and the progress in the current phase, but be aware that phases and the intervals and proportions at which this method is called will vary, sometime unpredictably.
You can return false to request that the Router abort the current transaction. Be aware that it may not abort in some phases. For others it may need to clean up some state before it is safe for you to interact with it again. Hence you should wait for a final call to this method with the phase Avoid::TransactionPhaseCompleted before continuing.
elapsedTime | The number of msec spent on the transaction since it began. |
phaseNumber | A Router::TransactionPhases representing the current phase of the transaction. |
totalPhases | The total number of phases to be performed during the transaction. |
proportion | A double representing the progress in the current phase. Value will be between 0–1. |
Definition at line 1375 of file router.cpp.
Referenced by performContinuationCheck().
bool Avoid::Router::transactionUse | ( | void | ) | const |
Reports whether the router groups actions into transactions.
Definition at line 451 of file router.cpp.
References m_consolidate_actions.
ConnType Avoid::Router::validConnType | ( | const ConnType | select = ConnType_None | ) | const |
Definition at line 1969 of file router.cpp.
References Avoid::ConnType_None, Avoid::ConnType_Orthogonal, Avoid::ConnType_PolyLine, m_allows_orthogonal_routing, and m_allows_polyline_routing.
Referenced by Avoid::ConnRef::setRoutingType().
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
private |
Definition at line 853 of file router.h.
Referenced by addJunction(), addShape(), deleteJunction(), deleteShape(), modifyConnectionPin(), modifyConnector(), modifyConnector(), moveJunction(), moveJunction(), moveShape(), moveShape(), processActions(), processTransaction(), and removeObjectFromQueuedActions().
bool Avoid::Router::ClusteredRouting |
Definition at line 413 of file router.h.
Referenced by Avoid::cost().
ClusterRefList Avoid::Router::clusterRefs |
Definition at line 403 of file router.h.
Referenced by Avoid::cost(), generateContains(), Avoid::ClusterRef::makeActive(), Avoid::ClusterRef::makeInactive(), objectIdIsUnused(), and outputInstanceToSVG().
ConnRefList Avoid::Router::connRefs |
Definition at line 402 of file router.h.
Referenced by attachedConns(), attachedShapes(), Avoid::buildConnectorRouteCheckpointCache(), Avoid::clearConnectorRouteCheckpointCache(), Avoid::cost(), Avoid::HyperedgeImprover::execute(), existsCrossings(), existsInvalidOrthogonalPaths(), existsOrthogonalFixedSegmentOverlap(), existsOrthogonalSegmentOverlap(), existsOrthogonalTouchingPaths(), improveCrossings(), Avoid::ConnRef::makeActive(), Avoid::ConnRef::makeInactive(), markPolylineConnectorsNeedingReroutingForDeletedObstacle(), objectIdIsUnused(), outputDiagramSVG(), outputDiagramText(), outputInstanceToSVG(), rerouteAndCallbackConnectors(), and ~Router().
ContainsMap Avoid::Router::contains |
Definition at line 407 of file router.h.
Referenced by adjustContainsWithAdd(), adjustContainsWithDel(), Avoid::EdgeInf::checkVis(), Avoid::directVis(), Avoid::EdgeInf::firstBlocker(), generateContains(), Avoid::sweepVisible(), and Avoid::vertexSweep().
ContainsMap Avoid::Router::enclosingClusters |
Definition at line 409 of file router.h.
Referenced by adjustClustersWithAdd(), adjustClustersWithDel(), and generateContains().
bool Avoid::Router::IgnoreRegions |
Definition at line 416 of file router.h.
Referenced by Avoid::EdgeInf::checkVis(), Avoid::ConnRef::generateStandardPath(), and Avoid::vertexSweep().
EdgeList Avoid::Router::invisGraph |
Definition at line 405 of file router.h.
Referenced by checkAllBlockedEdges(), Avoid::EdgeInf::makeActive(), Avoid::EdgeInf::makeInactive(), and printInfo().
bool Avoid::Router::InvisibilityGrph |
Definition at line 418 of file router.h.
Referenced by Avoid::EdgeInf::addBlocker(), checkAllBlockedEdges(), checkAllMissingEdges(), Avoid::EdgeInf::checkEdgeVisibility(), Avoid::EdgeInf::checkVis(), Avoid::ConnRef::generatePath(), Avoid::ConnRef::generateStandardPath(), makeFeasible(), newBlockingShape(), processActions(), Avoid::vertexSweep(), and Avoid::vertexVisibility().
|
private |
Definition at line 865 of file router.h.
Referenced by improveCrossings(), performContinuationCheck(), and processActions().
|
private |
Definition at line 871 of file router.h.
Referenced by Avoid::ConnEnd::assignPinVisibilityTo(), outputInstanceToSVG(), regenerateStaticBuiltGraph(), Router(), and validConnType().
|
private |
Definition at line 870 of file router.h.
Referenced by Avoid::ConnEnd::assignPinVisibilityTo(), Avoid::ShapeConnectionPin::commonInitForShapeConnection(), Avoid::ConnEnd::getHyperedgeVertex(), outputInstanceToSVG(), processActions(), Router(), Avoid::ConnRef::setRoutingCheckpoints(), Avoid::ShapeConnectionPin::ShapeConnectionPin(), Avoid::ConnRef::updateEndPoint(), Avoid::ShapeConnectionPin::updateVisibility(), and validConnType().
|
private |
Definition at line 860 of file router.h.
Referenced by Avoid::ConnRef::ConnRef(), Avoid::ConnRef::ConnRef(), rerouteAndCallbackConnectors(), and Avoid::ConnRef::~ConnRef().
|
private |
Definition at line 855 of file router.h.
Referenced by addJunction(), addShape(), deleteJunction(), deleteShape(), modifyConnectionPin(), modifyConnector(), modifyConnector(), moveJunction(), moveShape(), setTransactionUse(), and transactionUse().
|
private |
Definition at line 856 of file router.h.
Referenced by deleteConnector(), processActions(), Avoid::ClusterRef::~ClusterRef(), Avoid::ConnRef::~ConnRef(), Avoid::JunctionRef::~JunctionRef(), ~Router(), and Avoid::ShapeRef::~ShapeRef().
|
private |
Definition at line 880 of file router.h.
Referenced by debugHandler(), and setDebugHandler().
|
private |
Definition at line 878 of file router.h.
Referenced by newAndDeletedObjectListsFromHyperedgeImprovement(), rerouteAndCallbackConnectors(), and Router().
|
private |
Definition at line 861 of file router.h.
Referenced by hyperedgeRerouter(), processTransaction(), rerouteAndCallbackConnectors(), and Router().
|
private |
Definition at line 874 of file router.h.
Referenced by improveCrossings(), and isInCrossingPenaltyReroutingStage().
|
private |
Definition at line 854 of file router.h.
Referenced by assignId(), and newObjectId().
ObstacleList Avoid::Router::m_obstacles |
Definition at line 401 of file router.h.
Referenced by Avoid::buildOrthogonalChannelInfo(), generateContains(), Avoid::Obstacle::makeActive(), Avoid::Obstacle::makeInactive(), markAllObstaclesAsMoved(), objectIdIsUnused(), outputDiagramSVG(), outputDiagramText(), Avoid::HyperedgeImprover::outputHyperedgesToSVG(), outputInstanceToSVG(), Avoid::HyperedgeRerouter::performRerouting(), Avoid::ReferencingPolygon::ReferencingPolygon(), shapeContainingPoint(), and ~Router().
|
private |
Definition at line 858 of file router.h.
Referenced by improveCrossings(), outputInstanceToSVG(), Router(), routingOption(), and setRoutingOption().
|
private |
Definition at line 857 of file router.h.
Referenced by outputInstanceToSVG(), Router(), routingParameter(), and setRoutingParameter().
|
private |
Definition at line 876 of file router.h.
Referenced by processTransaction(), registerSettingsChange(), setRoutingOption(), and setRoutingParameter().
|
private |
Definition at line 873 of file router.h.
Referenced by processTransaction(), regenerateStaticBuiltGraph(), and setStaticGraphInvalidated().
|
private |
Definition at line 867 of file router.h.
Referenced by improveOrthogonalTopology(), outputInstanceToSVG(), setTopologyAddon(), and ~Router().
|
private |
Definition at line 864 of file router.h.
Referenced by performContinuationCheck(), and processActions().
bool Avoid::Router::PartialFeedback |
Definition at line 423 of file router.h.
Referenced by processActions().
bool Avoid::Router::PartialTime |
Definition at line 411 of file router.h.
Referenced by processActions().
bool Avoid::Router::RubberBandRouting |
Definition at line 424 of file router.h.
Referenced by Avoid::ConnRef::generatePath(), Avoid::ConnRef::generateStandardPath(), and markPolylineConnectorsNeedingReroutingForDeletedObstacle().
bool Avoid::Router::SelectiveReroute |
Definition at line 421 of file router.h.
Referenced by markPolylineConnectorsNeedingReroutingForDeletedObstacle(), and processActions().
bool Avoid::Router::SimpleRouting |
Definition at line 412 of file router.h.
Referenced by processTransaction().
int Avoid::Router::st_checked_edges |
Definition at line 431 of file router.h.
Referenced by Avoid::EdgeInf::checkVis(), and printInfo().
Timer Avoid::Router::timers |
Definition at line 429 of file router.h.
Referenced by printInfo().
bool Avoid::Router::UseLeesAlgorithm |
Definition at line 417 of file router.h.
Referenced by makeFeasible(), processActions(), and Avoid::vertexVisibility().
VertInfList Avoid::Router::vertices |
Definition at line 408 of file router.h.
Referenced by adjustClustersWithAdd(), adjustContainsWithAdd(), checkAllMissingEdges(), Avoid::Obstacle::computeVisibilityNaive(), Avoid::MinimumTerminalSpanningTree::constructInterleaved(), Avoid::MinimumTerminalSpanningTree::constructSequential(), Avoid::cost(), destroyOrthogonalVisGraph(), Avoid::directVis(), Avoid::EdgeInf::firstBlocker(), Avoid::ConnRef::generateStandardPath(), Avoid::Obstacle::makeActive(), Avoid::Obstacle::makeInactive(), outputDiagramSVG(), Avoid::HyperedgeImprover::outputHyperedgesToSVG(), outputInstanceToSVG(), Avoid::HyperedgeRerouter::performRerouting(), printInfo(), Avoid::ConnRef::setEndpoint(), Avoid::ConnRef::setRoutingCheckpoints(), Avoid::ConnRef::unInitialise(), Avoid::vertexSweep(), Avoid::vertexVisibility(), Avoid::VertInf::VertInf(), Avoid::ConnRef::~ConnRef(), and Avoid::ShapeConnectionPin::~ShapeConnectionPin().
EdgeList Avoid::Router::visGraph |
Definition at line 404 of file router.h.
Referenced by Avoid::EdgeInf::makeActive(), Avoid::EdgeInf::makeInactive(), newBlockingShape(), outputInstanceToSVG(), printInfo(), and ~Router().
EdgeList Avoid::Router::visOrthogGraph |
Definition at line 406 of file router.h.
Referenced by Avoid::MinimumTerminalSpanningTree::constructInterleaved(), destroyOrthogonalVisGraph(), Avoid::EdgeInf::makeActive(), Avoid::EdgeInf::makeInactive(), outputInstanceToSVG(), and printInfo().