SUMO - Simulation of Urban MObility
|
A list of positions. More...
#include <PositionVector.h>
Data Structures | |
class | as_poly_cw_sorter |
class | increasing_x_y_sorter |
Public Member Functions | |
void | add (SUMOReal xoff, SUMOReal yoff, SUMOReal zoff) |
void | append (const PositionVector &v) |
int | appendWithCrossingPoint (const PositionVector &v) |
SUMOReal | area () const |
Returns the area (0 for non-closed) | |
bool | around (const Position &p, SUMOReal offset=0) const |
Returns the information whether the position vector describes a polygon lying around the given point The optional offset is added to the polygon's bounderies. | |
SUMOReal | beginEndAngle () const |
void | closePolygon () |
ensures that the last position equals the first | |
PositionVector | convexHull () const |
bool | crosses (const Position &p1, const Position &p2) const |
SUMOReal | distance (const Position &p) const |
std::vector< SUMOReal > | distances (const PositionVector &s) const |
void | eraseAt (int i) |
void | extrapolate (SUMOReal val) |
Line | getBegLine () const |
Boundary | getBoxBoundary () const |
Returns a boundary enclosing this list of lines. | |
Position | getCentroid () const |
Returns the centroid (closes the polygon if unclosed) | |
Line | getEndLine () const |
Position | getLineCenter () const |
Position | getPolygonCenter () const |
Returns the arithmetic of all corner points. | |
PositionVector | getSubpart (SUMOReal beginOffset, SUMOReal endOffset) const |
PositionVector | getSubpart2D (SUMOReal beginOffset, SUMOReal endOffset) const |
PositionVector | getSubpartByIndex (int beginIndex, int count) const |
int | indexOfClosest (const Position &p) const |
void | insertAt (int index, const Position &p) |
int | insertAtClosest (const Position &p) |
PositionVector | intersectionPoints2D (const Line &line) const |
bool | intersects (const Position &p1, const Position &p2) const |
bool | intersects (const PositionVector &v1) const |
std::vector< SUMOReal > | intersectsAtLengths2D (const PositionVector &other) const |
For all intersections between this vector and other, return the 2D-length of the subvector from this vectors start to the intersection. | |
std::vector< SUMOReal > | intersectsAtLengths2D (const Line &line) const |
For all intersections between this vector and line, return the 2D-length of the subvector from this vectors start to the intersection. | |
Position | intersectsAtPoint (const Position &p1, const Position &p2) const |
Position | intersectsAtPoint (const PositionVector &v1) const |
bool | isClosed () const |
SUMOReal | isLeft (const Position &P0, const Position &P1, const Position &P2) const |
SUMOReal | length () const |
Returns the length. | |
SUMOReal | length2D () const |
Returns the length. | |
Line | lineAt (int pos) const |
void | move2side (SUMOReal amount) |
SUMOReal | nearest_offset_to_point2D (const Position &p, bool perpendicular=true) const |
bool | operator== (const PositionVector &v2) const |
comparing operation | |
const Position & | operator[] (int index) const |
returns the position at the given index !!! exceptions? | |
Position & | operator[] (int index) |
bool | overlapsWith (const AbstractPoly &poly, SUMOReal offset=0) const |
Returns the information whether the given polygon overlaps with this Again a boundary may be specified. | |
bool | partialWithin (const AbstractPoly &poly, SUMOReal offset=0) const |
Returns the information whether this polygon lies partially within the given polygon. | |
Position | pop_front () |
Removes and returns the position at the fron of the list. | |
Position | positionAtOffset (SUMOReal pos, SUMOReal lateralOffset=0) const |
Returns the position at the given length. | |
Position | positionAtOffset2D (SUMOReal pos, SUMOReal lateralOffset=0) const |
Returns the position at the given length. | |
PositionVector () | |
Constructor. | |
PositionVector (const std::vector< Position > &v) | |
Constructor. | |
void | pruneFromBeginAt (const Position &p) |
void | pruneFromEndAt (const Position &p) |
void | push_back_noDoublePos (const Position &p) |
void | push_front (const Position &p) |
Puts the given position at the front of the list. | |
void | push_front_noDoublePos (const Position &p) |
void | removeColinearPoints () |
void | removeDoublePoints (SUMOReal minDist=POSITION_EPS, bool assertLength=false) |
Removes positions if too near. | |
void | replaceAt (int index, const Position &by) |
void | reshiftRotate (SUMOReal xoff, SUMOReal yoff, SUMOReal rot) |
PositionVector | reverse () const |
SUMOReal | rotationDegreeAtOffset (SUMOReal pos) const |
Returns the rotation at the given length. | |
void | scaleAbsolute (SUMOReal offset) |
enlarges/shrinks the polygon by an absolute offset based at the centroid | |
void | scaleRelative (SUMOReal factor) |
enlarges/shrinks the polygon by a factor based at the centroid | |
SUMOReal | slopeDegreeAtOffset (SUMOReal pos) const |
Returns the slope at the given length. | |
void | sortAsPolyCWByAngle () |
void | sortByIncreasingXY () |
std::pair< PositionVector, PositionVector > | splitAt (SUMOReal where) const |
Returns the two lists made when this list vector is splitted at the given point. | |
~PositionVector () | |
Destructor. | |
Adding items to the container | |
void | push_back (const PositionVector &p) |
Appends all positions from the given vector. |
Static Public Member Functions | |
static Position | positionAtOffset (const Position &p1, const Position &p2, SUMOReal pos, SUMOReal lateralOffset) |
Returns the position between the two given point at the specified position */. | |
static Position | positionAtOffset2D (const Position &p1, const Position &p2, SUMOReal pos, SUMOReal lateralOffset) |
Returns the position between the two given point at the specified position */. |
Private Types | |
typedef std::vector< Position > | vp |
Friends | |
std::ostream & | operator<< (std::ostream &os, const PositionVector &geom) |
Output operator. |
A list of positions.
Definition at line 53 of file PositionVector.h.
|
private |
Definition at line 56 of file PositionVector.h.
PositionVector::PositionVector | ( | ) |
PositionVector::PositionVector | ( | const std::vector< Position > & | v | ) |
PositionVector::~PositionVector | ( | ) |
Destructor.
Definition at line 68 of file PositionVector.cpp.
Definition at line 512 of file PositionVector.cpp.
Referenced by NBEdge::init(), and NBNode::reshiftPosition().
void PositionVector::append | ( | const PositionVector & | v | ) |
Definition at line 609 of file PositionVector.cpp.
Referenced by NBEdge::append(), NBNode::computeInternalLaneShape(), and NWWriter_OpenDrive::writeNetwork().
int PositionVector::appendWithCrossingPoint | ( | const PositionVector & | v | ) |
Definition at line 586 of file PositionVector.cpp.
References Line::extrapolateBy(), Line::intersects(), Line::intersectsAt(), Line::intersectsAtLength2D(), and Line::length2D().
SUMOReal PositionVector::area | ( | ) | const |
Returns the area (0 for non-closed)
Definition at line 416 of file PositionVector.cpp.
References isClosed(), push_back(), and SUMOReal.
Referenced by getCentroid().
Returns the information whether the position vector describes a polygon lying around the given point The optional offset is added to the polygon's bounderies.
Definition at line 93 of file PositionVector.cpp.
References GeomHelper::Angle2D(), around(), M_PI, scaleAbsolute(), SUMOReal, Position::x(), and Position::y().
Referenced by around(), NBEdge::computeAngle(), NBNode::computeNodeShape(), NBNode::getCenter(), and NIVissimTL::NIVissimTLSignal::isWithin().
SUMOReal PositionVector::beginEndAngle | ( | ) | const |
Definition at line 809 of file PositionVector.cpp.
References Line::atan2Angle().
Referenced by NIVissimConnectionCluster::getIncomingContinuation(), NIVissimConnectionCluster::getIncomingContinuationGeometry(), NIVissimConnectionCluster::getOutgoingContinuation(), NIVissimConnectionCluster::getOutgoingContinuationGeometry(), NIVissimConnectionCluster::same_direction_sorter::operator()(), and GUILane::setFunctionalColor().
void PositionVector::closePolygon | ( | ) |
ensures that the last position equals the first
Definition at line 1061 of file PositionVector.cpp.
References push_back().
Referenced by NIXMLNodesHandler::addNode(), NBNode::getCenter(), and NLHandler::openJunction().
PositionVector PositionVector::convexHull | ( | ) | const |
Definition at line 565 of file PositionVector.cpp.
References simpleHull_2D(), and sortAsPolyCWByAngle().
Definition at line 446 of file PositionVector.cpp.
References intersects().
Definition at line 888 of file PositionVector.cpp.
References GeomHelper::closestDistancePointLine(), max, MIN2(), and SUMOReal.
Referenced by TraCIServerAPI_Lane::StoringVisitor::add(), NBEdge::computeAngle(), NBNode::computeNodeShape(), distances(), NBNode::getCenter(), TraCIServerAPI_Vehicle::vtdMap_matchingEdgeLane(), TraCIServerAPI_Vehicle::vtdMap_matchingNearest(), and TraCIServerAPI_Vehicle::vtdMap_matchingRoutePosition().
std::vector< SUMOReal > PositionVector::distances | ( | const PositionVector & | s | ) | const |
Definition at line 1070 of file PositionVector.cpp.
References distance().
Referenced by NBEdge::isNearEnough2BeJoined2().
void PositionVector::eraseAt | ( | int | i | ) |
Definition at line 816 of file PositionVector.cpp.
Referenced by NBEdge::checkGeometry(), and NBEdge::startShapeAt().
void PositionVector::extrapolate | ( | SUMOReal | val | ) |
Definition at line 932 of file PositionVector.cpp.
References GeomHelper::extrapolate_first(), GeomHelper::extrapolate_second(), push_back(), and push_front().
Referenced by NBNode::buildCrossings(), NBNode::buildWalkingAreas(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), MSPModel_Striping::initWalkingAreaPaths(), NBNodeShapeComputer::replaceFirstChecking(), and NBNodeShapeComputer::replaceLastChecking().
Line PositionVector::getBegLine | ( | ) | const |
Definition at line 1049 of file PositionVector.cpp.
References lineAt().
Referenced by NBEdge::checkGeometry(), NBNode::computeInternalLaneShape(), NBEdge::getAngleAtNode(), NBContHelper::edge_opposite_direction_sorter::getEdgeAngleAt(), and NBEdge::startShapeAt().
Boundary PositionVector::getBoxBoundary | ( | ) | const |
Returns a boundary enclosing this list of lines.
Definition at line 309 of file PositionVector.cpp.
References Boundary::add().
Referenced by TraCIServer::collectObjectsInRange(), GUIPolygon::drawGL(), MSLane::fill(), GUIPolygon::getCenteringBoundary(), GUIBusStop::getCenteringBoundary(), GUIJunctionWrapper::GUIJunctionWrapper(), NBEdgeCont::ignoreFilterMatch(), PCPolyContainer::insert(), NIImporter_OpenDrive::loadNetwork(), NIVissimConnectionCluster::recomputeBoundary(), and NIVissimNodeDef_Poly::searchAndSetConnections().
Position PositionVector::getCentroid | ( | ) | const |
Returns the centroid (closes the polygon if unclosed)
Definition at line 331 of file PositionVector.cpp.
References area(), isClosed(), length(), push_back(), and SUMOReal.
Referenced by NBEdge::computeAngle(), scaleAbsolute(), and scaleRelative().
Line PositionVector::getEndLine | ( | ) | const |
Definition at line 1055 of file PositionVector.cpp.
References lineAt().
Referenced by NBEdge::checkGeometry(), NBNode::computeInternalLaneShape(), NBEdge::getAngleAtNode(), and NBContHelper::edge_opposite_direction_sorter::getEdgeAngleAt().
Position PositionVector::getLineCenter | ( | ) | const |
Definition at line 388 of file PositionVector.cpp.
References length(), positionAtOffset(), and SUMOReal.
Referenced by GUIBusStop::GUIBusStop().
Position PositionVector::getPolygonCenter | ( | ) | const |
Returns the arithmetic of all corner points.
Definition at line 319 of file PositionVector.cpp.
References SUMOReal.
Referenced by NIVissimNodeCluster::buildNBNode(), NIVissimDistrictConnection::dict_BuildDistrictNodes(), GUIPolygon::drawGL(), and NBNode::getCenter().
PositionVector PositionVector::getSubpart | ( | SUMOReal | beginOffset, |
SUMOReal | endOffset | ||
) | const |
Definition at line 619 of file PositionVector.cpp.
References length(), POSITION_EPS, positionAtOffset(), push_back(), push_back_noDoublePos(), and SUMOReal.
Referenced by NBEdge::computeEdgeShape(), NBNode::computeInternalLaneShape(), GUIBusStop::GUIBusStop(), GUI_E2_ZS_Collector::MyWrapper::MyWrapper(), and NWWriter_SUMO::writeLane().
PositionVector PositionVector::getSubpart2D | ( | SUMOReal | beginOffset, |
SUMOReal | endOffset | ||
) | const |
Definition at line 661 of file PositionVector.cpp.
References length(), POSITION_EPS, positionAtOffset2D(), push_back(), push_back_noDoublePos(), and SUMOReal.
Referenced by NIImporter_OpenDrive::loadNetwork(), and NBEdge::startShapeAt().
PositionVector PositionVector::getSubpartByIndex | ( | int | beginIndex, |
int | count | ||
) | const |
Definition at line 747 of file PositionVector.cpp.
References push_back().
Referenced by NBNode::buildWalkingAreas().
Definition at line 853 of file PositionVector.cpp.
References Position::distanceTo(), max, and SUMOReal.
Definition at line 1084 of file PositionVector.cpp.
Referenced by NBEdge::addGeometryPoint(), insertAtClosest(), and NBNetBuilder::transformCoordinates().
Definition at line 870 of file PositionVector.cpp.
References GeomHelper::closestDistancePointLine(), insertAt(), max, and SUMOReal.
PositionVector PositionVector::intersectionPoints2D | ( | const Line & | line | ) | const |
Returns any intersection Points with the given line (ignoring z-coordinates)
Definition at line 573 of file PositionVector.cpp.
References GeomHelper::intersection_position2D(), GeomHelper::intersects(), Line::p1(), Line::p2(), and push_back_noDoublePos().
Referenced by Line::intersectsAtLengths2D().
Returns the information whether this list of points interesects the given line
Definition at line 132 of file PositionVector.cpp.
References GeomHelper::intersects().
Referenced by computeSameEnd(), crosses(), NIVissimAbstractEdge::crossesEdge(), GeomHelper::crossPoint(), intersects(), intersectsAtPoint(), NIVissimConnectionCluster::isWeakDistrictConnRealisation(), and NBEdge::startShapeAt().
bool PositionVector::intersects | ( | const PositionVector & | v1 | ) | const |
Returns the information whether this list of points interesects one the given lines
Definition at line 147 of file PositionVector.cpp.
References intersects().
std::vector< SUMOReal > PositionVector::intersectsAtLengths2D | ( | const PositionVector & | other | ) | const |
For all intersections between this vector and other, return the 2D-length of the subvector from this vectors start to the intersection.
Definition at line 903 of file PositionVector.cpp.
Referenced by NBEdge::buildInnerEdges(), computeSameEnd(), MSLink::setRequestInformation(), and NBEdge::startShapeAt().
For all intersections between this vector and line, return the 2D-length of the subvector from this vectors start to the intersection.
Definition at line 914 of file PositionVector.cpp.
References Position::distanceTo2D(), GeomHelper::intersection_position2D(), GeomHelper::intersects(), Line::length2D(), Line::p1(), Line::p2(), and SUMOReal.
Returns the position of the intersection
Definition at line 162 of file PositionVector.cpp.
References GeomHelper::intersection_position2D(), and GeomHelper::intersects().
Referenced by NIVissimAbstractEdge::crossesEdgeAtPoint(), GeomHelper::crossPoint(), and intersectsAtPoint().
Position PositionVector::intersectsAtPoint | ( | const PositionVector & | v1 | ) | const |
Returns the position of the intersection
Definition at line 174 of file PositionVector.cpp.
References intersects(), and intersectsAtPoint().
bool PositionVector::isClosed | ( | ) | const |
Definition at line 1122 of file PositionVector.cpp.
Referenced by area(), and getCentroid().
SUMOReal PositionVector::isLeft | ( | const Position & | P0, |
const Position & | P1, | ||
const Position & | P2 | ||
) | const |
Definition at line 558 of file PositionVector.cpp.
References Position::x(), and Position::y().
SUMOReal PositionVector::length | ( | ) | const |
Returns the length.
Definition at line 397 of file PositionVector.cpp.
References SUMOReal.
Referenced by NIXMLEdgesHandler::addSplit(), NBEdge::buildInnerEdges(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), NBEdge::computeAngle(), NBNodeShapeComputer::computeContinuationNodeShape(), NBEdge::computeEdgeShape(), NBNode::computeInternalLaneShape(), NIVissimEdge::dict_checkEdges2Join(), GUIEdge::drawGL(), getCentroid(), NIVissimAbstractEdge::getGeomPosition(), NWWriter_DlrNavteq::getGraphLength(), NIVissimEdge::getLength(), getLineCenter(), getSubpart(), getSubpart2D(), NIVissimEdge::getToNode(), GUIBusStop::GUIBusStop(), GUITriggeredRerouter::GUITriggeredRerouterEdge::GUITriggeredRerouterEdge(), NIXMLEdgesHandler::myEndElement(), NBContHelper::relative_incoming_edge_sorter::operator()(), pruneFromEndAt(), NIVissimEdge::resolveSameNode(), rotationDegreeAtOffset(), splitAt(), NBEdgeCont::splitAt(), NBEdge::startShapeAt(), NWWriter_SUMO::writeEdge(), NWWriter_SUMO::writeLane(), and NWWriter_OpenDrive::writeNetwork().
SUMOReal PositionVector::length2D | ( | ) | const |
Returns the length.
Definition at line 406 of file PositionVector.cpp.
References SUMOReal.
Referenced by NBEdge::computeAngle(), and NIImporter_OpenDrive::loadNetwork().
Definition at line 1042 of file PositionVector.cpp.
Referenced by NBEdge::checkGeometry(), computeSameEnd(), getBegLine(), getEndLine(), NBNodeShapeComputer::joinSameDirectionEdges(), and NWWriter_OpenDrive::writePlanView().
void PositionVector::move2side | ( | SUMOReal | amount | ) |
Definition at line 957 of file PositionVector.cpp.
References GeomHelper::Angle2D(), Position::distanceTo2D(), Line::extrapolateBy(), GeomHelper::getNormal90D_CW(), Line::intersects(), Line::intersectsAt(), POSITION_EPS, push_back(), Position::x(), Position::y(), and Position::z().
Referenced by NBEdge::addSidewalk(), NBNode::buildCrossings(), NBNode::buildWalkingAreas(), GUIVehicle::drawBestLanes(), NBEdge::getCCWBoundaryLine(), NBEdge::getCWBoundaryLine(), MSVehicle::getPosition(), GUIBusStop::GUIBusStop(), NBRampsComputer::moveRampRight(), NIXMLEdgesHandler::myEndElement(), NBSign::writeAsPOI(), and NWWriter_OpenDrive::writeNetwork().
SUMOReal PositionVector::nearest_offset_to_point2D | ( | const Position & | p, |
bool | perpendicular = true |
||
) | const |
Definition at line 826 of file PositionVector.cpp.
References Position::distanceTo2D(), max, GeomHelper::nearest_offset_on_line_to_point2D(), and SUMOReal.
Referenced by GUILane::getPopUpMenu(), NBNodeShapeComputer::replaceFirstChecking(), NBNodeShapeComputer::replaceLastChecking(), NBEdgeCont::splitAt(), and TraCIServerAPI_Vehicle::vtdMap_matchingRoutePosition().
bool PositionVector::operator== | ( | const PositionVector & | v2 | ) | const |
comparing operation
Definition at line 1160 of file PositionVector.cpp.
returns the position at the given index !!! exceptions?
Definition at line 190 of file PositionVector.cpp.
Definition at line 200 of file PositionVector.cpp.
bool PositionVector::overlapsWith | ( | const AbstractPoly & | poly, |
SUMOReal | offset = 0 |
||
) | const |
Returns the information whether the given polygon overlaps with this Again a boundary may be specified.
Definition at line 121 of file PositionVector.cpp.
References AbstractPoly::around().
Referenced by NIVissimAbstractEdge::overlapsWith().
bool PositionVector::partialWithin | ( | const AbstractPoly & | poly, |
SUMOReal | offset = 0 |
||
) | const |
Returns the information whether this polygon lies partially within the given polygon.
Definition at line 435 of file PositionVector.cpp.
References AbstractPoly::around().
Position PositionVector::pop_front | ( | ) |
Removes and returns the position at the fron of the list.
Definition at line 85 of file PositionVector.cpp.
Referenced by NBRampsComputer::buildOffRamp(), and NBEdge::getInnerGeometry().
Returns the position at the given length.
Definition at line 210 of file PositionVector.cpp.
References SUMOReal.
Referenced by NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), TraCIServerAPI_Simulation::commandPositionConversion(), GUIEdge::drawGL(), MSVTypeProbe::execute(), MSLane::geometryPositionAtOffset(), MSVehicle::getAngle(), NIVissimAbstractEdge::getGeomPosition(), MSPerson::MSPersonStage::getLanePosition(), getLineCenter(), TraCIServerAPI_InductionLoop::getPosition(), MSVehicle::getPosition(), MSVTKExport::getSpeed(), getSubpart(), TraCIServerAPI_InductionLoop::getTree(), GUICalibrator::GUICalibrator(), GUILaneSpeedTrigger::GUILaneSpeedTrigger(), NIImporter_OpenDrive::loadNetwork(), NIXMLEdgesHandler::myEndElement(), NIImporter_VISUM::parse_Lanes(), pruneFromBeginAt(), pruneFromEndAt(), MSEmissionExport::write(), NBSign::writeAsPOI(), and MSFullExport::writeVehicles().
|
static |
Returns the position between the two given point at the specified position */.
Definition at line 275 of file PositionVector.cpp.
References Position::distanceTo(), Line::getPositionAtDistance(), Line::move2side(), and SUMOReal.
Returns the position at the given length.
Definition at line 225 of file PositionVector.cpp.
References SUMOReal.
Referenced by NBEdge::computeAngle(), NBNodeShapeComputer::computeContinuationNodeShape(), GUIVehicle::drawAction_drawRailCarriages(), getSubpart2D(), NBContHelper::relative_outgoing_edge_sorter::operator()(), NBContHelper::relative_incoming_edge_sorter::operator()(), NBNodeShapeComputer::replaceFirstChecking(), and NBNodeShapeComputer::replaceLastChecking().
|
static |
Returns the position between the two given point at the specified position */.
Definition at line 292 of file PositionVector.cpp.
References Position::distanceTo2D(), Line::getPositionAtDistance2D(), Line::move2side(), and SUMOReal.
void PositionVector::pruneFromBeginAt | ( | const Position & | p | ) |
Definition at line 703 of file PositionVector.cpp.
References GeomHelper::distancePointLine(), GeomHelper::extrapolate_first(), GeomHelper::nearest_offset_on_line_to_point2D(), positionAtOffset(), and SUMOReal.
void PositionVector::pruneFromEndAt | ( | const Position & | p | ) |
Definition at line 763 of file PositionVector.cpp.
References GeomHelper::distancePointLine(), GeomHelper::extrapolate_second(), length(), GeomHelper::nearest_offset_on_line_to_point2D(), positionAtOffset(), push_back(), and SUMOReal.
void PositionVector::push_back | ( | const PositionVector & | p | ) |
Appends all positions from the given vector.
[in] | p | The vector from which values shall be appended |
Definition at line 73 of file PositionVector.cpp.
Referenced by NBEdgeCont::applyOptions(), area(), NIVissimConnection::buildGeom(), NBRampsComputer::buildOnRamp(), NBNode::buildWalkingAreas(), closePolygon(), NBNode::computeInternalLaneShape(), NBEdge::computeLaneShape(), NBNode::computeNodeShape(), GUIVehicle::computeSeats(), NIVissimDistrictConnection::dict_BuildDistrictNodes(), extrapolate(), TraCIServer::findObjectShape(), getCentroid(), NIVissimAbstractEdge::getGeomPosition(), TraCIServerAPI_Edge::getShape(), TraCIServerAPI_Polygon::getShape(), TraCIServerAPI_Lane::getShape(), SUMOSAXAttributesImpl_Xerces::getShape(), getSubpart(), getSubpart2D(), getSubpartByIndex(), GUIVehicle::GUIVehicle(), NBEdge::init(), MSPModel_Striping::initWalkingAreaPaths(), NIImporter_OpenStreetMap::insertEdge(), Line::intersectsAtLengths2D(), PCLoaderVisum::load(), PCLoaderDlrNavteq::loadPolyFile(), move2side(), PCLoaderXML::myStartElement(), NIVissimSingleTypeParser_Geschwindigkeitsverteilungsdefinition::parse(), NIVissimSingleTypeParser_Knotendefinition::parse(), NIVissimSingleTypeParser_Laengenverteilungsdefinition::parse(), NIVissimSingleTypeParser_Zeitenverteilungsdefinition::parse(), NIImporter_VISUM::parse_AreaSubPartElement(), GeomConvHelper::parseShapeReporting(), ODMatrix::parseTimeLine(), pruneFromEndAt(), push_back_noDoublePos(), TraCIServer::readTypeCheckingPolygon(), NIImporter_SUMO::reconstructEdgeShape(), NIImporter_DlrNavteq::NodesHandler::report(), NIImporter_DlrNavteq::EdgesHandler::report(), reverse(), NBEdge::setGeometry(), splitAt(), NBEdge::splitGeometry(), and TraCIServerAPI_Vehicle::vtdMap_matchingNearest().
void PositionVector::push_back_noDoublePos | ( | const Position & | p | ) |
Definition at line 1106 of file PositionVector.cpp.
References Position::almostSame(), and push_back().
Referenced by NIVissimNodeCluster::buildNBNode(), NBNodeShapeComputer::computeContinuationNodeShape(), NBNode::computeNodeShape(), NBNodeShapeComputer::computeNodeShapeByCrosses(), NIImporter_OpenDrive::computeShapes(), NWWriter_DlrNavteq::getGraphLength(), getSubpart(), getSubpart2D(), NBEdge::init(), NIImporter_OpenStreetMap::insertEdge(), intersectionPoints2D(), PCLoaderArcView::load(), NIImporter_ArcView::load(), PCLoaderOSM::loadIfSet(), NIVissimAbstractEdge::NIVissimAbstractEdge(), NIVissimSingleTypeParser_Streckendefinition::parse(), NIVissimSingleTypeParser_Verbindungsdefinition::parse(), NBNodeShapeComputer::replaceLastChecking(), simpleHull_2D(), and NWWriter_SUMO::writeEdge().
void PositionVector::push_front | ( | const Position & | p | ) |
Puts the given position at the front of the list.
Definition at line 79 of file PositionVector.cpp.
Referenced by NBRampsComputer::buildOffRamp(), NBNode::buildWalkingAreas(), extrapolate(), NBEdge::init(), NIImporter_DlrNavteq::EdgesHandler::report(), and NBEdge::setGeometry().
void PositionVector::push_front_noDoublePos | ( | const Position & | p | ) |
Definition at line 1114 of file PositionVector.cpp.
References Position::almostSame().
Referenced by NBNodeShapeComputer::computeContinuationNodeShape(), NWWriter_DlrNavteq::getGraphLength(), NBEdge::init(), NBNodeShapeComputer::replaceFirstChecking(), NBEdge::startShapeAt(), and NWWriter_SUMO::writeEdge().
void PositionVector::removeColinearPoints | ( | ) |
Definition at line 1144 of file PositionVector.cpp.
References GeomHelper::distancePointLine().
void PositionVector::removeDoublePoints | ( | SUMOReal | minDist = POSITION_EPS , |
bool | assertLength = false |
||
) |
Removes positions if too near.
[in] | minDist | The minimum accepted distance; default: POSITION_EPS |
[in] | assertLength | Whether the result must at least contain two points (be a line); default: false, to ensure original behaviour |
Definition at line 1128 of file PositionVector.cpp.
Referenced by NIImporter_OpenDrive::computeShapes(), NBEdge::init(), and NBEdge::reduceGeometry().
Definition at line 1094 of file PositionVector.cpp.
Referenced by computeSameEnd(), NBNodeShapeComputer::replaceFirstChecking(), and NBNodeShapeComputer::replaceLastChecking().
Definition at line 520 of file PositionVector.cpp.
Referenced by NBDistrict::reshiftPosition(), and NBEdge::reshiftPosition().
PositionVector PositionVector::reverse | ( | ) | const |
Definition at line 947 of file PositionVector.cpp.
References push_back().
Referenced by NBNode::buildWalkingAreas(), NBNodeShapeComputer::computeContinuationNodeShape(), NBEdge::computeEdgeShape(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), MSPModel_Striping::initWalkingAreaPaths(), NIImporter_OpenStreetMap::insertEdge(), NIImporter_ArcView::load(), NIImporter_OpenDrive::loadNetwork(), NIImporter_VISUM::parse_AreaSubPartElement(), and NIImporter_DlrNavteq::EdgesHandler::report().
Returns the rotation at the given length.
Definition at line 240 of file PositionVector.cpp.
References Line::atan2DegreeAngle(), length(), and SUMOReal.
Referenced by GUIE3Collector::MyWrapper::buildDefinition(), GUIEdge::drawGL(), MSPModel_Striping::PState::getAngle(), MSVehicle::getAngle(), MSPerson::MSPersonStage::getEdgeAngle(), GUIBusStop::GUIBusStop(), GUICalibrator::GUICalibrator(), GUILaneSpeedTrigger::GUILaneSpeedTrigger(), GUITriggeredRerouter::GUITriggeredRerouterEdge::GUITriggeredRerouterEdge(), GUIInstantInductLoop::MyWrapper::MyWrapper(), and GUIInductLoop::MyWrapper::MyWrapper().
void PositionVector::scaleAbsolute | ( | SUMOReal | offset | ) |
enlarges/shrinks the polygon by an absolute offset based at the centroid
Definition at line 379 of file PositionVector.cpp.
References getCentroid().
Referenced by around().
void PositionVector::scaleRelative | ( | SUMOReal | factor | ) |
enlarges/shrinks the polygon by a factor based at the centroid
Definition at line 370 of file PositionVector.cpp.
References getCentroid().
Returns the slope at the given length.
Definition at line 259 of file PositionVector.cpp.
References Line::atan2DegreeSlope(), and SUMOReal.
Referenced by MSVehicle::getSlope(), MSCFModel_KraussPS::maxNextSpeed(), and MSFCDExport::write().
void PositionVector::sortAsPolyCWByAngle | ( | ) |
Definition at line 506 of file PositionVector.cpp.
Referenced by convexHull().
void PositionVector::sortByIncreasingXY | ( | ) |
Definition at line 536 of file PositionVector.cpp.
std::pair< PositionVector, PositionVector > PositionVector::splitAt | ( | SUMOReal | where | ) | const |
Returns the two lists made when this list vector is splitted at the given point.
Definition at line 452 of file PositionVector.cpp.
References length(), POSITION_EPS, push_back(), SUMOReal, toString(), and WRITE_WARNING.
Referenced by NBEdge::buildInnerEdges(), and NBEdgeCont::splitAt().
|
friend |
Output operator.
Definition at line 494 of file PositionVector.cpp.