![]() |
SUMO - Simulation of Urban MObility
|
A class that stores a 2D geometrical boundary. More...
#include <Boundary.h>
Public Member Functions | |
void | add (double x, double y, double z=0) |
Makes the boundary include the given coordinate. More... | |
void | add (const Position &p) |
Makes the boundary include the given coordinate. More... | |
void | add (const Boundary &p) |
Makes the boundary include the given boundary. More... | |
bool | around (const Position &p, double offset=0) const |
Returns whether the boundary contains the given coordinate. More... | |
Boundary () | |
Constructor - the boundary is unset. More... | |
Boundary (double x1, double y1, double x2, double y2) | |
Constructor - the boundary will be build using the given values. More... | |
Boundary (double x1, double y1, double z1, double x2, double y2, double z2) | |
bool | crosses (const Position &p1, const Position &p2) const |
Returns whether the boundary crosses the given line. More... | |
double | distanceTo2D (const Position &p) const |
returns the euclidean distance in the x-y-plane More... | |
double | distanceTo2D (const Boundary &b) const |
returns the euclidean distance in the x-y-plane More... | |
void | flipY () |
flips ymin and ymax More... | |
Position | getCenter () const |
Returns the center of the boundary. More... | |
double | getHeight () const |
Returns the height of the boundary (y-axis) More... | |
double | getWidth () const |
Returns the width of the boudary (x-axis) More... | |
double | getZRange () const |
Returns the elevation range of the boundary (z-axis) More... | |
Boundary & | grow (double by) |
extends the boundary by the given amount More... | |
void | growHeight (double by) |
Increases the height of the boundary (y-axis) More... | |
void | growWidth (double by) |
Increases the width of the boundary (x-axis) More... | |
void | moveby (double x, double y, double z=0) |
Moves the boundary by the given amount. More... | |
bool | overlapsWith (const AbstractPoly &poly, double offset=0) const |
Returns whether the boundary overlaps with the given polygon. More... | |
bool | partialWithin (const AbstractPoly &poly, double offset=0) const |
Returns whether the boundary is partially within the given polygon. More... | |
void | reset () |
Resets the boundary. More... | |
void | set (double xmin, double ymin, double xmax, double ymax) |
Sets the boundary to the given values. More... | |
double | xmax () const |
Returns maximum x-coordinate. More... | |
double | xmin () const |
Returns minimum x-coordinate. More... | |
double | ymax () const |
Returns maximum y-coordinate. More... | |
double | ymin () const |
Returns minimum y-coordinate. More... | |
double | zmax () const |
Returns maximum z-coordinate. More... | |
double | zmin () const |
Returns minimum z-coordinate. More... | |
~Boundary () | |
Destructor. More... | |
Private Attributes | |
bool | myWasInitialised |
Information whether the boundary was initialised. More... | |
double | myXmax |
double | myXmin |
The boundaries. More... | |
double | myYmax |
double | myYmin |
double | myZmax |
double | myZmin |
Friends | |
std::ostream & | operator<< (std::ostream &os, const Boundary &b) |
Output operator. More... | |
A class that stores a 2D geometrical boundary.
Definition at line 47 of file Boundary.h.
Boundary::Boundary | ( | ) |
Constructor - the boundary is unset.
Definition at line 42 of file Boundary.cpp.
Boundary::Boundary | ( | double | x1, |
double | y1, | ||
double | x2, | ||
double | y2 | ||
) |
Constructor - the boundary will be build using the given values.
Definition at line 49 of file Boundary.cpp.
References add().
Boundary::Boundary | ( | double | x1, |
double | y1, | ||
double | z1, | ||
double | x2, | ||
double | y2, | ||
double | z2 | ||
) |
Definition at line 59 of file Boundary.cpp.
References add().
Boundary::~Boundary | ( | ) |
Destructor.
Definition at line 69 of file Boundary.cpp.
void Boundary::add | ( | double | x, |
double | y, | ||
double | z = 0 |
||
) |
Makes the boundary include the given coordinate.
Definition at line 85 of file Boundary.cpp.
References myWasInitialised, myXmax, myXmin, myYmax, myYmin, myZmax, and myZmin.
Referenced by add(), NIVissimConnectionCluster::NodeSubCluster::add(), NIVissimConnectionCluster::add(), ROEdge::addSuccessor(), MSEdge::addSuccessor(), Boundary(), GUIDanielPerspectiveChanger::centerTo(), NBNetBuilder::compute(), GNENet::computeAndUpdate(), NIVissimDisturbance::computeBounding(), NIVissimConnection::computeBounding(), GUIEdge::getBoundary(), GNEEdge::getBoundary(), MSDevice_BTsender::VehicleInformation::getBoxBoundary(), PositionVector::getBoxBoundary(), GUITrafficLightLogicWrapper::getCenteringBoundary(), GUIPolygon::getCenteringBoundary(), GUIContainer::getCenteringBoundary(), GUIPerson::getCenteringBoundary(), GUIPointOfInterest::getCenteringBoundary(), GUIParkingArea::getCenteringBoundary(), GUIBaseVehicle::getCenteringBoundary(), GUILane::getCenteringBoundary(), GUISUMOAbstractView::getObjectAtPosition(), GUISUMOAbstractView::getObjectsAtPosition(), GUICalibrator::GUICalibrator(), GUILaneSpeedTrigger::GUILaneSpeedTrigger(), GUITriggeredRerouter::GUITriggeredRerouter(), GUITriggeredRerouter::GUITriggeredRerouterEdge::GUITriggeredRerouterEdge(), GUINet::initGUIStructures(), GNENet::initJunctionsAndEdges(), NBHeightMapper::loadShapeFile(), NBHeightMapper::loadTiff(), GNEViewNet::mergeJunctions(), GUITriggeredRerouter::myEndElement(), GUIMEInductLoop::MyWrapper::MyWrapper(), GUIInstantInductLoop::MyWrapper::MyWrapper(), GUIE3Collector::MyWrapper::MyWrapper(), GUIInductLoop::MyWrapper::MyWrapper(), GNEViewNet::onLeftBtnRelease(), NIVissimConnectionCluster::recomputeBoundary(), GNENet::registerEdge(), GNENet::registerJunction(), GUIDanielPerspectiveChanger::setViewport(), GNEJunction::updateGeometry(), and GeoConvHelper::x2cartesian().
void Boundary::add | ( | const Position & | p | ) |
Makes the boundary include the given coordinate.
Definition at line 106 of file Boundary.cpp.
References add(), Position::x(), Position::y(), and Position::z().
void Boundary::add | ( | const Boundary & | p | ) |
|
virtual |
Returns whether the boundary contains the given coordinate.
Implements AbstractPoly.
Definition at line 179 of file Boundary.cpp.
References myXmax, myXmin, myYmax, myYmin, myZmax, myZmin, Position::x(), Position::y(), and Position::z().
Referenced by PCPolyContainer::add(), NIVissimConnectionCluster::around(), NBHeightMapper::getZ(), and NIVissimConnectionCluster::recheckEdges().
Returns whether the boundary crosses the given line.
Implements AbstractPoly.
Definition at line 209 of file Boundary.cpp.
References PositionVector::intersects(), myXmax, myXmin, myYmax, and myYmin.
double Boundary::distanceTo2D | ( | const Position & | p | ) | const |
returns the euclidean distance in the x-y-plane
Definition at line 223 of file Boundary.cpp.
References myXmax, myXmin, myYmax, myYmin, Position::x(), and Position::y().
Referenced by ROEdge::getDistanceTo(), and MSEdge::getDistanceTo().
double Boundary::distanceTo2D | ( | const Boundary & | b | ) | const |
void Boundary::flipY | ( | ) |
flips ymin and ymax
Definition at line 323 of file Boundary.cpp.
References myYmax, and myYmin.
Referenced by GeoConvHelper::computeFinal().
Position Boundary::getCenter | ( | ) | const |
Returns the center of the boundary.
Definition at line 119 of file Boundary.cpp.
References myXmax, myXmin, myYmax, myYmin, myZmax, and myZmin.
Referenced by GUISUMOAbstractView::centerTo(), GUIDanielPerspectiveChanger::getXPos(), GUIDanielPerspectiveChanger::getYPos(), NIVissimConnectionCluster::liesOnSameEdgesEnd(), GUIBaseVehicle::setFunctionalColor(), and GUIDanielPerspectiveChanger::zoom().
double Boundary::getHeight | ( | ) | const |
Returns the height of the boundary (y-axis)
Definition at line 167 of file Boundary.cpp.
References myYmax, and myYmin.
Referenced by GUISUMOAbstractView::applyGLTransform(), GUIPolygon::drawGL(), GUISUMOAbstractView::getGridHeight(), GUIJunctionWrapper::GUIJunctionWrapper(), GUINet::initGUIStructures(), GNENet::initJunctionsAndEdges(), GUIDanielPerspectiveChanger::onKeyPress(), GUIPerspectiveChanger::patchedViewPort(), GUISUMOAbstractView::screenPos2NetPos(), and GNEJunction::updateGeometry().
double Boundary::getWidth | ( | ) | const |
Returns the width of the boudary (x-axis)
Definition at line 161 of file Boundary.cpp.
References myXmax, and myXmin.
Referenced by GUISUMOAbstractView::applyGLTransform(), GUIPolygon::drawGL(), GUISUMOAbstractView::getGridWidth(), GUIDanielPerspectiveChanger::getZoom(), GUIDanielPerspectiveChanger::getZPos(), GUIJunctionWrapper::GUIJunctionWrapper(), GUINet::initGUIStructures(), GNENet::initJunctionsAndEdges(), GUISUMOAbstractView::m2p(), GUIDanielPerspectiveChanger::onKeyPress(), GUISUMOAbstractView::p2m(), GUIPerspectiveChanger::patchedViewPort(), GUISUMOAbstractView::screenPos2NetPos(), and GNEJunction::updateGeometry().
double Boundary::getZRange | ( | ) | const |
Returns the elevation range of the boundary (z-axis)
Definition at line 173 of file Boundary.cpp.
References myZmax, and myZmin.
Referenced by NBNetBuilder::compute().
Boundary & Boundary::grow | ( | double | by | ) |
extends the boundary by the given amount
The method returns a reference to the instance for further use
Definition at line 301 of file Boundary.cpp.
References myXmax, myXmin, myYmax, and myYmin.
Referenced by GUIDanielPerspectiveChanger::centerTo(), NBEdgeCont::checkOverlap(), libsumo::Helper::collectObjectsInRange(), MSDevice_BTreceiver::BTreceiverUpdate::execute(), MSLane::fill(), GUIEdge::getBoundary(), GNEEdge::getBoundary(), GNECrossing::getCenteringBoundary(), GNEJunction::getCenteringBoundary(), GNEInternalLane::getCenteringBoundary(), GUITrafficLightLogicWrapper::getCenteringBoundary(), GUIPolygon::getCenteringBoundary(), GUIInstantInductLoop::MyWrapper::getCenteringBoundary(), GUILaneSpeedTrigger::getCenteringBoundary(), GNELane::getCenteringBoundary(), GUIContainer::getCenteringBoundary(), GUICalibrator::getCenteringBoundary(), GUIPerson::getCenteringBoundary(), GUIJunctionWrapper::getCenteringBoundary(), GUIMEInductLoop::MyWrapper::getCenteringBoundary(), GUIPointOfInterest::getCenteringBoundary(), GNEConnection::getCenteringBoundary(), GUIE3Collector::MyWrapper::getCenteringBoundary(), GUITriggeredRerouter::getCenteringBoundary(), GUIChargingStation::getCenteringBoundary(), GUIContainerStop::getCenteringBoundary(), GUIBusStop::getCenteringBoundary(), GUIParkingArea::getCenteringBoundary(), GUIEdge::getCenteringBoundary(), GUIE2Collector::MyWrapper::getCenteringBoundary(), GNEEdge::getCenteringBoundary(), GUIBaseVehicle::getCenteringBoundary(), GUIInductLoop::MyWrapper::getCenteringBoundary(), GUITriggeredRerouter::GUITriggeredRerouterEdge::getCenteringBoundary(), GUILane::getCenteringBoundary(), GNEAdditional::getCenteringBoundary(), GUISUMOAbstractView::getObjectAtPosition(), GUISUMOAbstractView::getObjectsAtPosition(), NBEdgeCont::ignoreFilterMatch(), GUINet::initGUIStructures(), and GNEViewNet::mergeJunctions().
void Boundary::growHeight | ( | double | by | ) |
Increases the height of the boundary (y-axis)
Definition at line 317 of file Boundary.cpp.
References myYmax, and myYmin.
Referenced by GUIPointOfInterest::getCenteringBoundary(), GUIPerspectiveChanger::patchedViewPort(), and GUIDanielPerspectiveChanger::setViewport().
void Boundary::growWidth | ( | double | by | ) |
Increases the width of the boundary (x-axis)
Definition at line 310 of file Boundary.cpp.
References myXmax, and myXmin.
Referenced by GUIPointOfInterest::getCenteringBoundary(), GUIPerspectiveChanger::patchedViewPort(), and GUIDanielPerspectiveChanger::setViewport().
void Boundary::moveby | ( | double | x, |
double | y, | ||
double | z = 0 |
||
) |
Moves the boundary by the given amount.
Definition at line 350 of file Boundary.cpp.
References myXmax, myXmin, myYmax, myYmin, myZmax, and myZmin.
Referenced by GUIDanielPerspectiveChanger::centerTo(), GUIDanielPerspectiveChanger::move(), GeoConvHelper::moveConvertedBy(), and GUIDanielPerspectiveChanger::onKeyPress().
|
virtual |
Returns whether the boundary overlaps with the given polygon.
Implements AbstractPoly.
Definition at line 188 of file Boundary.cpp.
References AbstractPoly::crosses(), myXmax, myXmin, myYmax, myYmin, AbstractPoly::partialWithin(), and partialWithin().
Referenced by NBEdgeCont::checkOverlap(), NIVissimBoundedClusterObject::crosses(), NBEdgeCont::ignoreFilterMatch(), NIVissimConnectionCluster::overlapsWith(), and NIVissimConnectionCluster::NodeSubCluster::overlapsWith().
|
virtual |
Returns whether the boundary is partially within the given polygon.
Implements AbstractPoly.
Definition at line 291 of file Boundary.cpp.
References AbstractPoly::around(), myXmax, myXmin, myYmax, and myYmin.
Referenced by PCPolyContainer::add(), and overlapsWith().
void Boundary::reset | ( | ) |
Resets the boundary.
Definition at line 73 of file Boundary.cpp.
References myWasInitialised, myXmax, myXmin, myYmax, myYmin, myZmax, and myZmin.
Referenced by NBHeightMapper::clearData(), and GNENet::computeAndUpdate().
void Boundary::set | ( | double | xmin, |
double | ymin, | ||
double | xmax, | ||
double | ymax | ||
) |
double Boundary::xmax | ( | ) | const |
Returns maximum x-coordinate.
Definition at line 131 of file Boundary.cpp.
References myXmax.
Referenced by add(), NIVissimConnectionCluster::add(), SUMORTree::addAdditionalGLObject(), NBHeightMapper::addTriangle(), NIVissimConnectionCluster::around(), NIVissimConnection::buildNodeClusters(), GUIDanielPerspectiveChanger::changeCanvasSizeLeft(), libsumo::Helper::collectObjectsInRange(), NBNetBuilder::compute(), NIVissimDisturbance::computeBounding(), NIVissimBoundedClusterObject::crosses(), GeomHelper::crossPoint(), GUIViewTraffic::doPaintGL(), GNEViewNet::doPaintGL(), MSDevice_BTreceiver::BTreceiverUpdate::execute(), MSLane::fill(), NBPTStopCont::findAccessEdgesForRailStops(), NIVissimConnection::getBoundingBox(), libsumo::Simulation::getNetBoundary(), NIVissimConnectionCluster::getPositionForEdge(), libsumo::Polygon::getTree(), libsumo::Junction::getTree(), NBHeightMapper::getZ(), GUINet::initGUIStructures(), main(), GUISUMOAbstractView::makeSnapshot(), NIVissimConnectionCluster::NIVissimConnectionCluster(), NIVissimConnectionCluster::overlapsWith(), NIVissimConnectionCluster::NodeSubCluster::overlapsWith(), GUISUMOAbstractView::paintGLGrid(), TraCIServerAPI_GUI::processGet(), NIVissimConnectionCluster::recheckEdges(), NIVissimConnectionCluster::recomputeBoundary(), SUMORTree::removeAdditionalGLObject(), set(), GUIBaseVehicle::setFunctionalColor(), GNEPoly::simplifyShape(), BinaryFormatter::writeAttr(), NWWriter_OpenDrive::writeNetwork(), NWWriter_DlrNavteq::writeNodesUnsplitted(), and GUIDanielPerspectiveChanger::zoom().
double Boundary::xmin | ( | ) | const |
Returns minimum x-coordinate.
Definition at line 125 of file Boundary.cpp.
References myXmin.
Referenced by add(), NIVissimConnectionCluster::add(), SUMORTree::addAdditionalGLObject(), NBHeightMapper::addTriangle(), GUISUMOAbstractView::applyGLTransform(), NIVissimConnectionCluster::around(), NIVissimConnection::buildNodeClusters(), GUIDanielPerspectiveChanger::changeCanvasSizeLeft(), libsumo::Helper::collectObjectsInRange(), NBNetBuilder::compute(), NIVissimDisturbance::computeBounding(), NIVissimBoundedClusterObject::crosses(), GeomHelper::crossPoint(), GUIViewTraffic::doPaintGL(), GNEViewNet::doPaintGL(), MSDevice_BTreceiver::BTreceiverUpdate::execute(), MSLane::fill(), NBPTStopCont::findAccessEdgesForRailStops(), NIVissimConnection::getBoundingBox(), libsumo::Simulation::getNetBoundary(), NIVissimConnectionCluster::getPositionForEdge(), libsumo::Polygon::getTree(), libsumo::Junction::getTree(), NBHeightMapper::getZ(), GUINet::initGUIStructures(), main(), GUISUMOAbstractView::makeSnapshot(), NBNetBuilder::moveToOrigin(), NIVissimConnectionCluster::NIVissimConnectionCluster(), NIVissimConnectionCluster::overlapsWith(), NIVissimConnectionCluster::NodeSubCluster::overlapsWith(), GUISUMOAbstractView::paintGLGrid(), TraCIServerAPI_GUI::processGet(), NIVissimConnectionCluster::recheckEdges(), NIVissimConnectionCluster::recomputeBoundary(), SUMORTree::removeAdditionalGLObject(), GUISUMOAbstractView::screenPos2NetPos(), set(), GUIBaseVehicle::setFunctionalColor(), GNEPoly::simplifyShape(), BinaryFormatter::writeAttr(), NWWriter_OpenDrive::writeNetwork(), NWWriter_DlrNavteq::writeNodesUnsplitted(), and GUIDanielPerspectiveChanger::zoom().
double Boundary::ymax | ( | ) | const |
Returns maximum y-coordinate.
Definition at line 143 of file Boundary.cpp.
References myYmax.
Referenced by add(), SUMORTree::addAdditionalGLObject(), NBHeightMapper::addTriangle(), GUIDanielPerspectiveChanger::changeCanvasSizeLeft(), libsumo::Helper::collectObjectsInRange(), NBNetBuilder::compute(), GeomHelper::crossPoint(), GUIViewTraffic::doPaintGL(), GNEViewNet::doPaintGL(), MSDevice_BTreceiver::BTreceiverUpdate::execute(), MSLane::fill(), NBPTStopCont::findAccessEdgesForRailStops(), libsumo::Simulation::getNetBoundary(), libsumo::Polygon::getTree(), libsumo::Junction::getTree(), NBHeightMapper::getZ(), GUINet::initGUIStructures(), main(), GUISUMOAbstractView::makeSnapshot(), NBNetBuilder::moveToOrigin(), GUISUMOAbstractView::paintGLGrid(), TraCIServerAPI_GUI::processGet(), SUMORTree::removeAdditionalGLObject(), set(), GUIBaseVehicle::setFunctionalColor(), GNEPoly::simplifyShape(), BinaryFormatter::writeAttr(), NWWriter_OpenDrive::writeNetwork(), NWWriter_DlrNavteq::writeNodesUnsplitted(), and GUIDanielPerspectiveChanger::zoom().
double Boundary::ymin | ( | ) | const |
Returns minimum y-coordinate.
Definition at line 137 of file Boundary.cpp.
References myYmin.
Referenced by add(), SUMORTree::addAdditionalGLObject(), NBHeightMapper::addTriangle(), GUISUMOAbstractView::applyGLTransform(), GUIDanielPerspectiveChanger::changeCanvasSizeLeft(), libsumo::Helper::collectObjectsInRange(), NBNetBuilder::compute(), GeomHelper::crossPoint(), GUIViewTraffic::doPaintGL(), GNEViewNet::doPaintGL(), MSDevice_BTreceiver::BTreceiverUpdate::execute(), MSLane::fill(), NBPTStopCont::findAccessEdgesForRailStops(), libsumo::Simulation::getNetBoundary(), libsumo::Polygon::getTree(), libsumo::Junction::getTree(), GUINet::initGUIStructures(), main(), GUISUMOAbstractView::makeSnapshot(), NBNetBuilder::moveToOrigin(), GUISUMOAbstractView::paintGLGrid(), TraCIServerAPI_GUI::processGet(), SUMORTree::removeAdditionalGLObject(), GUISUMOAbstractView::screenPos2NetPos(), set(), GUIBaseVehicle::setFunctionalColor(), GNEPoly::simplifyShape(), BinaryFormatter::writeAttr(), NWWriter_OpenDrive::writeNetwork(), NWWriter_DlrNavteq::writeNodesUnsplitted(), and GUIDanielPerspectiveChanger::zoom().
double Boundary::zmax | ( | ) | const |
Returns maximum z-coordinate.
Definition at line 155 of file Boundary.cpp.
References myZmax.
Referenced by add(), and libsumo::Simulation::getNetBoundary().
double Boundary::zmin | ( | ) | const |
Returns minimum z-coordinate.
Definition at line 149 of file Boundary.cpp.
References myZmin.
Referenced by add(), and libsumo::Simulation::getNetBoundary().
|
friend |
Output operator.
Definition at line 334 of file Boundary.cpp.
|
private |
Information whether the boundary was initialised.
Definition at line 150 of file Boundary.h.
|
private |
Definition at line 147 of file Boundary.h.
Referenced by add(), around(), crosses(), distanceTo2D(), getCenter(), getWidth(), grow(), growWidth(), moveby(), operator<<(), overlapsWith(), partialWithin(), reset(), set(), and xmax().
|
private |
The boundaries.
Definition at line 147 of file Boundary.h.
Referenced by add(), around(), crosses(), distanceTo2D(), getCenter(), getWidth(), grow(), growWidth(), moveby(), operator<<(), overlapsWith(), partialWithin(), reset(), set(), and xmin().
|
private |
Definition at line 147 of file Boundary.h.
Referenced by add(), around(), crosses(), distanceTo2D(), flipY(), getCenter(), getHeight(), grow(), growHeight(), moveby(), operator<<(), overlapsWith(), partialWithin(), reset(), set(), and ymax().
|
private |
Definition at line 147 of file Boundary.h.
Referenced by add(), around(), crosses(), distanceTo2D(), flipY(), getCenter(), getHeight(), grow(), growHeight(), moveby(), operator<<(), overlapsWith(), partialWithin(), reset(), set(), and ymin().
|
private |
Definition at line 147 of file Boundary.h.
Referenced by add(), around(), getCenter(), getZRange(), moveby(), reset(), and zmax().
|
private |
Definition at line 147 of file Boundary.h.
Referenced by add(), around(), getCenter(), getZRange(), moveby(), reset(), and zmin().