Eclipse SUMO - Simulation of Urban MObility
Boundary Class Reference

A class that stores a 2D geometrical boundary. More...

#include <Boundary.h>

Inheritance diagram for Boundary:
[legend]
Collaboration diagram for Boundary:
[legend]

Public Member Functions

void add (const Boundary &p)
 Makes the boundary include the given boundary. More...
 
void add (const Position &p)
 Makes the boundary include the given coordinate. More...
 
void add (double x, double y, double z=0)
 Makes the boundary include 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)
 Constructor - the boundary will be build using the given values including Z. More...
 
double distanceTo2D (const Boundary &b) const
 returns the euclidean distance in the x-y-plane More...
 
double distanceTo2D (const Position &p) 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...
 
Boundarygrow (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...
 
bool isInitialised () const
 check if Boundary is Initialised More...
 
void moveby (double x, double y, double z=0)
 Moves the boundary by the given amount. More...
 
bool operator!= (const Boundary &b) const
 Comparison operator not equal. More...
 
bool operator== (const Boundary &b) const
 Comparison operator equal. 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...
 
inherited from AbstractPoly

Returns whether the boundary contains the given coordinate

bool around (const Position &p, double offset=0) const
 Returns whether the AbstractPoly the given coordinate. 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...
 
bool crosses (const Position &p1, const Position &p2) const
 Returns whether the boundary crosses the given line. 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...
 

Detailed Description

A class that stores a 2D geometrical boundary.

Definition at line 39 of file Boundary.h.

Constructor & Destructor Documentation

◆ Boundary() [1/3]

Boundary::Boundary ( )

Constructor - the boundary is unset.

Definition at line 34 of file Boundary.cpp.

◆ Boundary() [2/3]

Boundary::Boundary ( double  x1,
double  y1,
double  x2,
double  y2 
)

Constructor - the boundary will be build using the given values.

Definition at line 41 of file Boundary.cpp.

References add().

◆ Boundary() [3/3]

Boundary::Boundary ( double  x1,
double  y1,
double  z1,
double  x2,
double  y2,
double  z2 
)

Constructor - the boundary will be build using the given values including Z.

Definition at line 51 of file Boundary.cpp.

References add().

◆ ~Boundary()

Boundary::~Boundary ( )

Destructor.

Definition at line 61 of file Boundary.cpp.

Member Function Documentation

◆ add() [1/3]

void Boundary::add ( const Boundary p)

Makes the boundary include the given boundary.

Definition at line 104 of file Boundary.cpp.

References add(), xmax(), xmin(), ymax(), ymin(), zmax(), and zmin().

◆ add() [2/3]

void Boundary::add ( const Position p)

Makes the boundary include the given coordinate.

Definition at line 98 of file Boundary.cpp.

References add(), Position::x(), Position::y(), and Position::z().

◆ add() [3/3]

void Boundary::add ( double  x,
double  y,
double  z = 0 
)

Makes the boundary include the given coordinate.

Definition at line 77 of file Boundary.cpp.

References myWasInitialised, myXmax, myXmin, myYmax, myYmin, myZmax, and myZmin.

Referenced by add(), NIVissimConnectionCluster::NodeSubCluster::add(), NIVissimConnectionCluster::add(), GUIParkingArea::addLotEntry(), MSEdge::addSuccessor(), ROEdge::addSuccessor(), GNENet::addZValueInBoundary(), GUISUMOAbstractView::applyGLTransform(), Boundary(), GUIDanielPerspectiveChanger::centerTo(), NBNetBuilder::compute(), GNENet::computeAndUpdate(), NIVissimConnection::computeBounding(), NIVissimDisturbance::computeBounding(), GNENet::expandBoundary(), GUIEdge::getBoundary(), MSDevice_BTsender::VehicleInformation::getBoxBoundary(), GNEGeometry::SegmentGeometry::getBoxBoundary(), PositionVector::getBoxBoundary(), GUIBaseVehicle::getCenteringBoundary(), GUIBusStop::getCenteringBoundary(), GUIContainer::getCenteringBoundary(), GUILane::getCenteringBoundary(), GUIPerson::getCenteringBoundary(), GUITrafficLightLogicWrapper::getCenteringBoundary(), GUIMEVehicle::getCenteringBoundary(), GNEPerson::getCenteringBoundary(), GNEPersonTrip::getCenteringBoundary(), GNERide::getCenteringBoundary(), GNERoute::getCenteringBoundary(), GNEVehicle::getCenteringBoundary(), GNEWalk::getCenteringBoundary(), GUIPointOfInterest::getCenteringBoundary(), GUIPolygon::getCenteringBoundary(), RORouteHandler::getClosestEdge(), GUISUMOAbstractView::getGUIGlObjectsAtPosition(), GUISUMOAbstractView::getObjectAtPosition(), GUISUMOAbstractView::getObjectsAtPosition(), GUICalibrator::GUICalibrator(), GUILaneSpeedTrigger::GUILaneSpeedTrigger(), GUITriggeredRerouter::GUITriggeredRerouter(), GUITriggeredRerouter::GUITriggeredRerouterEdge::GUITriggeredRerouterEdge(), GUINet::initGUIStructures(), GNENet::initJunctionsAndEdges(), NBHeightMapper::loadShapeFile(), NBHeightMapper::loadTiff(), NIImporter_OpenDrive::myCharacters(), GUITriggeredRerouter::myEndElement(), GNEAdditionalHandler::myEndElement(), GUIE3Collector::MyWrapper::MyWrapper(), GUIInductLoop::MyWrapper::MyWrapper(), GUIInstantInductLoop::MyWrapper::MyWrapper(), GUIMEInductLoop::MyWrapper::MyWrapper(), GNEPolygonFrame::GEOPOICreator::onCmdCreateGEOPOI(), GNEViewNetHelper::SelectingArea::processEdgeRectangleSelection(), GNEViewNetHelper::SelectingArea::processRectangleSelection(), NIVissimConnectionCluster::recomputeBoundary(), ROEdge::ROEdge(), MSEdge::setJunctions(), GUIDanielPerspectiveChanger::setViewport(), GNEParkingSpace::updateCenteringBoundary(), GNEPOI::updateCenteringBoundary(), GNEStoppingPlace::updateCenteringBoundary(), GNEEdge::updateCenteringBoundary(), and GeoConvHelper::x2cartesian().

◆ around()

bool Boundary::around ( const Position p,
double  offset = 0 
) const
virtual

Returns whether the AbstractPoly the given coordinate.

Implements AbstractPoly.

Definition at line 171 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().

Here is the caller graph for this function:

◆ crosses()

bool Boundary::crosses ( const Position p1,
const Position p2 
) const
virtual

Returns whether the boundary crosses the given line.

Implements AbstractPoly.

Definition at line 201 of file Boundary.cpp.

References PositionVector::intersects(), myXmax, myXmin, myYmax, and myYmin.

◆ distanceTo2D() [1/2]

double Boundary::distanceTo2D ( const Boundary b) const

returns the euclidean distance in the x-y-plane

Definition at line 255 of file Boundary.cpp.

References myXmax, myXmin, myYmax, and myYmin.

◆ distanceTo2D() [2/2]

double Boundary::distanceTo2D ( const Position p) const

returns the euclidean distance in the x-y-plane

Definition at line 221 of file Boundary.cpp.

References myXmax, myXmin, myYmax, myYmin, Position::x(), and Position::y().

Referenced by libsumo::Helper::convertCartesianToRoadMap(), MSEdge::getDistanceTo(), and ROEdge::getDistanceTo().

Here is the caller graph for this function:

◆ flipY()

void Boundary::flipY ( )

flips ymin and ymax

Definition at line 321 of file Boundary.cpp.

References myYmax, and myYmin.

Referenced by GeoConvHelper::computeFinal().

Here is the caller graph for this function:

◆ getCenter()

Position Boundary::getCenter ( ) const

◆ getHeight()

double Boundary::getHeight ( ) const

◆ getWidth()

◆ getZRange()

double Boundary::getZRange ( ) const

Returns the elevation range of the boundary (z-axis)

Definition at line 165 of file Boundary.cpp.

References myZmax, and myZmin.

Referenced by NBNetBuilder::compute().

Here is the caller graph for this function:

◆ grow()

Boundary & Boundary::grow ( double  by)

extends the boundary by the given amount

Returns
a reference to the instance for further use

Definition at line 299 of file Boundary.cpp.

References myXmax, myXmin, myYmax, and myYmin.

Referenced by GUIParkingArea::addLotEntry(), GUIDanielPerspectiveChanger::centerTo(), NBEdgeCont::checkOverlap(), libsumo::Helper::collectObjectsInRange(), MSDevice_BTreceiver::BTreceiverUpdate::execute(), MSLane::fill(), GUIEdge::getBoundary(), GUIBaseVehicle::getCenteringBoundary(), GUIBusStop::getCenteringBoundary(), GUICalibrator::getCenteringBoundary(), GUIChargingStation::getCenteringBoundary(), GUIContainer::getCenteringBoundary(), GUIContainerStop::getCenteringBoundary(), GUIE2Collector::MyWrapper::getCenteringBoundary(), GUIE3Collector::MyWrapper::getCenteringBoundary(), GUIEdge::getCenteringBoundary(), GUIInductLoop::MyWrapper::getCenteringBoundary(), GUIInstantInductLoop::MyWrapper::getCenteringBoundary(), GUIJunctionWrapper::getCenteringBoundary(), GUILane::getCenteringBoundary(), GUILaneSpeedTrigger::getCenteringBoundary(), GUIOverheadWire::getCenteringBoundary(), GUIOverheadWireClamp::getCenteringBoundary(), GUIPerson::getCenteringBoundary(), GUITrafficLightLogicWrapper::getCenteringBoundary(), GUITriggeredRerouter::getCenteringBoundary(), GUITriggeredRerouter::GUITriggeredRerouterEdge::getCenteringBoundary(), GUIMEInductLoop::MyWrapper::getCenteringBoundary(), GUIMEVehicle::getCenteringBoundary(), GNETAZ::getCenteringBoundary(), GNEPerson::getCenteringBoundary(), GNEPersonStop::getCenteringBoundary(), GNEStop::getCenteringBoundary(), GNEVehicle::getCenteringBoundary(), GUIPointOfInterest::getCenteringBoundary(), GUIPolygon::getCenteringBoundary(), RORouteHandler::getClosestEdge(), GUISUMOAbstractView::getGUIGlObjectsAtPosition(), GUISUMOAbstractView::getObjectAtPosition(), GUISUMOAbstractView::getObjectsAtPosition(), GUIParkingArea::GUIParkingArea(), NBEdgeCont::ignoreFilterMatch(), GUINet::initGUIStructures(), NBEdgeCont::joinTramEdges(), GNEPolygonFrame::GEOPOICreator::onCmdCreateGEOPOI(), GNEAccess::updateCenteringBoundary(), GNECalibrator::updateCenteringBoundary(), GNEDetector::updateCenteringBoundary(), GNEDetectorE3::updateCenteringBoundary(), GNEParkingSpace::updateCenteringBoundary(), GNEPOI::updateCenteringBoundary(), GNEPoly::updateCenteringBoundary(), GNERerouter::updateCenteringBoundary(), GNERouteProbe::updateCenteringBoundary(), GNEStoppingPlace::updateCenteringBoundary(), GNEVaporizer::updateCenteringBoundary(), GNEVariableSpeedSign::updateCenteringBoundary(), GNEConnection::updateCenteringBoundary(), GNECrossing::updateCenteringBoundary(), GNEEdge::updateCenteringBoundary(), GNEInternalLane::updateCenteringBoundary(), GNEJunction::updateCenteringBoundary(), GNERerouterSymbol::updateGeometry(), and GNEVariableSpeedSignSymbol::updateGeometry().

◆ growHeight()

void Boundary::growHeight ( double  by)

Increases the height of the boundary (y-axis)

Definition at line 315 of file Boundary.cpp.

References myYmax, and myYmin.

Referenced by GUIPointOfInterest::getCenteringBoundary(), GUIPerspectiveChanger::patchedViewPort(), and GUIDanielPerspectiveChanger::setViewport().

Here is the caller graph for this function:

◆ growWidth()

void Boundary::growWidth ( double  by)

Increases the width of the boundary (x-axis)

Definition at line 308 of file Boundary.cpp.

References myXmax, and myXmin.

Referenced by GUIPointOfInterest::getCenteringBoundary(), GUIPerspectiveChanger::patchedViewPort(), GUIDanielPerspectiveChanger::setViewport(), and GNEStoppingPlace::updateCenteringBoundary().

Here is the caller graph for this function:

◆ isInitialised()

bool Boundary::isInitialised ( ) const

◆ moveby()

void Boundary::moveby ( double  x,
double  y,
double  z = 0 
)

Moves the boundary by the given amount.

Definition at line 367 of file Boundary.cpp.

References myXmax, myXmin, myYmax, myYmin, myZmax, and myZmin.

Referenced by GUIDanielPerspectiveChanger::centerTo(), GUIDanielPerspectiveChanger::move(), GeoConvHelper::moveConvertedBy(), and GUIDanielPerspectiveChanger::onKeyPress().

Here is the caller graph for this function:

◆ operator!=()

bool Boundary::operator!= ( const Boundary b) const

Comparison operator not equal.

Definition at line 352 of file Boundary.cpp.

◆ operator==()

bool Boundary::operator== ( const Boundary b) const

Comparison operator equal.

Definition at line 339 of file Boundary.cpp.

References myWasInitialised, myXmax, myXmin, myYmax, myYmin, myZmax, and myZmin.

◆ overlapsWith()

bool Boundary::overlapsWith ( const AbstractPoly poly,
double  offset = 0 
) const
virtual

Returns whether the boundary overlaps with the given polygon.

Implements AbstractPoly.

Definition at line 180 of file Boundary.cpp.

References AbstractPoly::crosses(), myXmax, myXmin, myYmax, myYmin, partialWithin(), and AbstractPoly::partialWithin().

Referenced by NBEdgeCont::checkOverlap(), NIVissimBoundedClusterObject::crosses(), NBEdgeCont::ignoreFilterMatch(), NIVissimConnectionCluster::NodeSubCluster::overlapsWith(), and NIVissimConnectionCluster::overlapsWith().

Here is the caller graph for this function:

◆ partialWithin()

bool Boundary::partialWithin ( const AbstractPoly poly,
double  offset = 0 
) const
virtual

Returns whether the boundary is partially within the given polygon.

Implements AbstractPoly.

Definition at line 289 of file Boundary.cpp.

References AbstractPoly::around(), myXmax, myXmin, myYmax, and myYmin.

Referenced by PCPolyContainer::add(), and overlapsWith().

Here is the caller graph for this function:

◆ reset()

void Boundary::reset ( )

Resets the boundary.

Definition at line 65 of file Boundary.cpp.

References myWasInitialised, myXmax, myXmin, myYmax, myYmin, myZmax, and myZmin.

Referenced by NBHeightMapper::clearData(), GNENet::computeAndUpdate(), GNEPersonStop::endGeometryMoving(), GNEPersonTrip::endGeometryMoving(), GNERide::endGeometryMoving(), GNEStop::endGeometryMoving(), GNEWalk::endGeometryMoving(), GNECalibrator::updateCenteringBoundary(), GNEParkingSpace::updateCenteringBoundary(), and GNEPOI::updateCenteringBoundary().

Here is the caller graph for this function:

◆ set()

void Boundary::set ( double  xmin,
double  ymin,
double  xmax,
double  ymax 
)

Sets the boundary to the given values.

Definition at line 358 of file Boundary.cpp.

References myXmax, myXmin, myYmax, myYmin, xmax(), xmin(), ymax(), and ymin().

◆ xmax()

double Boundary::xmax ( ) const

Returns maximum x-coordinate.

Definition at line 123 of file Boundary.cpp.

References myXmax.

Referenced by add(), libsumo::Polygon::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(), GLHelper::drawBoundary(), MSDevice_BTreceiver::BTreceiverUpdate::execute(), MSLane::fill(), NBPTStopCont::findAccessEdgesForRailStops(), NIVissimConnection::getBoundingBox(), RORouteHandler::getClosestEdge(), RORouteHandler::getLaneTree(), LIBSUMO_NAMESPACE::Simulation::getNetBoundary(), NIVissimConnectionCluster::getPositionForEdge(), LIBSUMO_NAMESPACE::Junction::getTree(), libsumo::Polygon::getTree(), NBHeightMapper::getZ(), GUINet::initGUIStructures(), NBEdgeCont::joinTramEdges(), main(), GUISUMOAbstractView::makeSnapshot(), GNEAdditionalHandler::myEndElement(), NIVissimConnectionCluster::NIVissimConnectionCluster(), NIVissimConnectionCluster::NodeSubCluster::overlapsWith(), NIVissimConnectionCluster::overlapsWith(), GUISUMOAbstractView::paintGLGrid(), TraCIServerAPI_GUI::processGet(), NIVissimConnectionCluster::recheckEdges(), NIVissimConnectionCluster::recomputeBoundary(), libsumo::Polygon::remove(), SUMORTree::removeAdditionalGLObject(), set(), GNEVehicle::setColor(), GUIBaseVehicle::setFunctionalColor(), GNEPoly::simplifyShape(), NWWriter_OpenDrive::writeNetwork(), NWWriter_DlrNavteq::writeNodesUnsplitted(), and GUIDanielPerspectiveChanger::zoom().

Here is the caller graph for this function:

◆ xmin()

double Boundary::xmin ( ) const

Returns minimum x-coordinate.

Definition at line 117 of file Boundary.cpp.

References myXmin.

Referenced by add(), libsumo::Polygon::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(), GLHelper::drawBoundary(), MSDevice_BTreceiver::BTreceiverUpdate::execute(), MSLane::fill(), NBPTStopCont::findAccessEdgesForRailStops(), NIVissimConnection::getBoundingBox(), RORouteHandler::getClosestEdge(), RORouteHandler::getLaneTree(), LIBSUMO_NAMESPACE::Simulation::getNetBoundary(), NIVissimConnectionCluster::getPositionForEdge(), LIBSUMO_NAMESPACE::Junction::getTree(), libsumo::Polygon::getTree(), NBHeightMapper::getZ(), GUINet::initGUIStructures(), NBEdgeCont::joinTramEdges(), main(), GUISUMOAbstractView::makeSnapshot(), NBNetBuilder::moveToOrigin(), GNEAdditionalHandler::myEndElement(), NIVissimConnectionCluster::NIVissimConnectionCluster(), NIVissimConnectionCluster::NodeSubCluster::overlapsWith(), NIVissimConnectionCluster::overlapsWith(), GUISUMOAbstractView::paintGLGrid(), TraCIServerAPI_GUI::processGet(), NIVissimConnectionCluster::recheckEdges(), NIVissimConnectionCluster::recomputeBoundary(), libsumo::Polygon::remove(), SUMORTree::removeAdditionalGLObject(), GUISUMOAbstractView::screenPos2NetPos(), set(), GNEVehicle::setColor(), GUIBaseVehicle::setFunctionalColor(), GNEPoly::simplifyShape(), NWWriter_OpenDrive::writeNetwork(), NWWriter_DlrNavteq::writeNodesUnsplitted(), and GUIDanielPerspectiveChanger::zoom().

◆ ymax()

◆ ymin()

double Boundary::ymin ( ) const

◆ zmax()

double Boundary::zmax ( ) const

Returns maximum z-coordinate.

Definition at line 147 of file Boundary.cpp.

References myZmax.

Referenced by add(), and LIBSUMO_NAMESPACE::Simulation::getNetBoundary().

Here is the caller graph for this function:

◆ zmin()

double Boundary::zmin ( ) const

Returns minimum z-coordinate.

Definition at line 141 of file Boundary.cpp.

References myZmin.

Referenced by add(), and LIBSUMO_NAMESPACE::Simulation::getNetBoundary().

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const Boundary b 
)
friend

Output operator.

Definition at line 331 of file Boundary.cpp.

Field Documentation

◆ myWasInitialised

bool Boundary::myWasInitialised
private

Information whether the boundary was initialised.

Definition at line 153 of file Boundary.h.

Referenced by add(), isInitialised(), operator==(), and reset().

◆ myXmax

double Boundary::myXmax
private

◆ myXmin

double Boundary::myXmin
private

◆ myYmax

double Boundary::myYmax
private

◆ myYmin

double Boundary::myYmin
private

◆ myZmax

double Boundary::myZmax
private

Definition at line 150 of file Boundary.h.

Referenced by add(), around(), getCenter(), getZRange(), moveby(), operator==(), reset(), and zmax().

◆ myZmin

double Boundary::myZmin
private

Definition at line 150 of file Boundary.h.

Referenced by add(), around(), getCenter(), getZRange(), moveby(), operator==(), reset(), and zmin().


The documentation for this class was generated from the following files: