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, SUMOReal sameThreshold=2.0) |
int | appendWithCrossingPoint (const PositionVector &v) |
SUMOReal | area () const |
Returns the area (0 for non-closed) More... | |
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. More... | |
SUMOReal | beginEndAngle () const |
void | closePolygon () |
ensures that the last position equals the first More... | |
PositionVector | convexHull () const |
bool | crosses (const Position &p1, const Position &p2) const |
SUMOReal | distance (const Position &p, bool perpendicular=false) const |
std::vector< SUMOReal > | distances (const PositionVector &s, bool perpendicular=false) const |
void | eraseAt (int i) |
void | extrapolate (SUMOReal val) |
Line | getBegLine () const |
Boundary | getBoxBoundary () const |
Returns a boundary enclosing this list of lines. More... | |
Position | getCentroid () const |
Returns the centroid (closes the polygon if unclosed) More... | |
Line | getEndLine () const |
Position | getLineCenter () const |
Position | getPolygonCenter () const |
Returns the arithmetic of all corner points. More... | |
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. More... | |
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. More... | |
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. More... | |
SUMOReal | length2D () const |
Returns the length. More... | |
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 More... | |
const Position & | operator[] (int index) const |
returns the position at the given index !!! exceptions? More... | |
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. More... | |
bool | partialWithin (const AbstractPoly &poly, SUMOReal offset=0) const |
Returns the information whether this polygon lies partially within the given polygon. More... | |
Position | pop_front () |
Removes and returns the position at the fron of the list. More... | |
Position | positionAtOffset (SUMOReal pos, SUMOReal lateralOffset=0) const |
Returns the position at the given length. More... | |
Position | positionAtOffset2D (SUMOReal pos, SUMOReal lateralOffset=0) const |
Returns the position at the given length. More... | |
PositionVector () | |
Constructor. More... | |
PositionVector (const std::vector< Position > &v) | |
Constructor. More... | |
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. More... | |
void | push_front_noDoublePos (const Position &p) |
void | removeColinearPoints () |
void | removeDoublePoints (SUMOReal minDist=POSITION_EPS, bool assertLength=false) |
Removes positions if too near. More... | |
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. More... | |
void | scaleAbsolute (SUMOReal offset) |
enlarges/shrinks the polygon by an absolute offset based at the centroid More... | |
void | scaleRelative (SUMOReal factor) |
enlarges/shrinks the polygon by a factor based at the centroid More... | |
SUMOReal | slopeDegreeAtOffset (SUMOReal pos) const |
Returns the slope at the given length. More... | |
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. More... | |
Position | transformToVectorCoordinates (const Position &p, bool extend=false) const |
return position p within the length-wise coordinate system defined by this position vector. The x value is the same as that returned by nearest_offset_to_point2D(p) and the y value is the perpendicular distance to this vector with the sign indicating the side (right is postive). if extend is true, the vector is extended on both sides and the x-coordinate of the result may be below 0 or above the length of the original vector More... | |
~PositionVector () | |
Destructor. More... | |
Adding items to the container | |
void | push_back (const PositionVector &p) |
Appends all positions from the given vector. More... | |
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 */. More... | |
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 */. More... | |
Private Types | |
typedef std::vector< Position > | vp |
Friends | |
std::ostream & | operator<< (std::ostream &os, const PositionVector &geom) |
Output operator. More... | |
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 67 of file PositionVector.cpp.
Definition at line 514 of file PositionVector.cpp.
Referenced by NBEdge::init(), and NBNode::reshiftPosition().
void PositionVector::append | ( | const PositionVector & | v, |
SUMOReal | sameThreshold = 2.0 |
||
) |
Definition at line 611 of file PositionVector.cpp.
Referenced by NBEdge::append(), NBNode::buildWalkingAreas(), NBNode::computeInternalLaneShape(), NBNodeShapeComputer::computeNodeShapeDefault(), and NWWriter_OpenDrive::writeNetwork().
int PositionVector::appendWithCrossingPoint | ( | const PositionVector & | v | ) |
Definition at line 588 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 415 of file PositionVector.cpp.
References isClosed(), push_back(), and SUMOReal.
Referenced by getCentroid(), and NBNodesEdgesSorter::sortNodesEdges().
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.
Implements AbstractPoly.
Definition at line 92 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 811 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 1108 of file PositionVector.cpp.
References push_back().
Referenced by NIXMLNodesHandler::addNode(), NBNode::getCenter(), and NLHandler::openJunction().
PositionVector PositionVector::convexHull | ( | ) | const |
Definition at line 567 of file PositionVector.cpp.
References simpleHull_2D(), and sortAsPolyCWByAngle().
Implements AbstractPoly.
Definition at line 448 of file PositionVector.cpp.
References intersects().
Definition at line 1137 of file PositionVector.cpp.
References Position::distanceTo2D(), GeomHelper::INVALID_OFFSET, max, nearest_offset_to_point2D(), positionAtOffset2D(), and SUMOReal.
Referenced by TraCIServerAPI_Lane::StoringVisitor::add(), NBEdge::computeAngle(), NBNode::computeNodeShape(), distances(), NBNode::getCenter(), NBEdge::shiftPositionAtNode(), transformToVectorCoordinates(), and TraCIServerAPI_Vehicle::vtdMap().
std::vector< SUMOReal > PositionVector::distances | ( | const PositionVector & | s, |
bool | perpendicular = false |
||
) | const |
Definition at line 1117 of file PositionVector.cpp.
References distance(), GeomHelper::INVALID_OFFSET, and SUMOReal.
Referenced by NBNodeShapeComputer::badIntersection(), and NBEdge::isNearEnough2BeJoined2().
void PositionVector::eraseAt | ( | int | i | ) |
Definition at line 818 of file PositionVector.cpp.
Referenced by NBNode::buildWalkingAreas(), NBEdge::checkGeometry(), NBNodeShapeComputer::getSmoothCorner(), and NBEdge::startShapeAt().
void PositionVector::extrapolate | ( | SUMOReal | val | ) |
Definition at line 972 of file PositionVector.cpp.
References GeomHelper::extrapolate_first(), GeomHelper::extrapolate_second(), push_back(), and push_front().
Referenced by NBNode::buildCrossings(), NBEdge::buildInnerEdges(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), MSPModel_Striping::initWalkingAreaPaths(), and transformToVectorCoordinates().
Line PositionVector::getBegLine | ( | ) | const |
Definition at line 1096 of file PositionVector.cpp.
References lineAt().
Referenced by NBEdge::checkGeometry(), NBNode::computeSmoothShape(), 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 308 of file PositionVector.cpp.
References Boundary::add().
Referenced by NBHeightMapper::addTriangle(), TraCIServer::collectObjectsInRange(), GUIPolygon::drawGL(), MSLane::fill(), GUIPolygon::getCenteringBoundary(), GUIContainerStop::getCenteringBoundary(), GUIBusStop::getCenteringBoundary(), GUIJunctionWrapper::GUIJunctionWrapper(), NBEdgeCont::ignoreFilterMatch(), PCPolyContainer::insert(), NIImporter_OpenDrive::loadNetwork(), and NIVissimConnectionCluster::recomputeBoundary().
Position PositionVector::getCentroid | ( | ) | const |
Returns the centroid (closes the polygon if unclosed)
Definition at line 330 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 1102 of file PositionVector.cpp.
References lineAt().
Referenced by NBEdge::checkGeometry(), NBNode::computeSmoothShape(), NBEdge::getAngleAtNode(), and NBContHelper::edge_opposite_direction_sorter::getEdgeAngleAt().
Position PositionVector::getLineCenter | ( | ) | const |
Definition at line 387 of file PositionVector.cpp.
References length(), positionAtOffset(), and SUMOReal.
Referenced by GUIBusStop::GUIBusStop(), and GUIContainerStop::GUIContainerStop().
Position PositionVector::getPolygonCenter | ( | ) | const |
Returns the arithmetic of all corner points.
Definition at line 318 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 621 of file PositionVector.cpp.
References length(), POSITION_EPS, positionAtOffset(), push_back(), push_back_noDoublePos(), and SUMOReal.
Referenced by NBEdge::computeEdgeShape(), NBNode::computeInternalLaneShape(), GUIBusStop::GUIBusStop(), GUIContainerStop::GUIContainerStop(), GUI_E2_ZS_Collector::MyWrapper::MyWrapper(), and NWWriter_SUMO::writeLane().
PositionVector PositionVector::getSubpart2D | ( | SUMOReal | beginOffset, |
SUMOReal | endOffset | ||
) | const |
Definition at line 663 of file PositionVector.cpp.
References length(), POSITION_EPS, positionAtOffset2D(), push_back(), push_back_noDoublePos(), and SUMOReal.
Referenced by NBNodeShapeComputer::badIntersection(), NIImporter_OpenDrive::loadNetwork(), and NBEdge::startShapeAt().
PositionVector PositionVector::getSubpartByIndex | ( | int | beginIndex, |
int | count | ||
) | const |
Definition at line 749 of file PositionVector.cpp.
References push_back().
Referenced by NBNode::buildWalkingAreas().
int PositionVector::indexOfClosest | ( | const Position & | p | ) | const |
Definition at line 908 of file PositionVector.cpp.
References Position::distanceTo(), max, and SUMOReal.
void PositionVector::insertAt | ( | int | index, |
const Position & | p | ||
) |
Definition at line 1153 of file PositionVector.cpp.
Referenced by NBEdge::addGeometryPoint(), insertAtClosest(), and NBNetBuilder::transformCoordinates().
int PositionVector::insertAtClosest | ( | const Position & | p | ) |
Definition at line 925 of file PositionVector.cpp.
References GeomHelper::closestDistancePointLine2D(), 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 575 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 131 of file PositionVector.cpp.
References GeomHelper::intersects().
Referenced by NBNodeShapeComputer::badIntersection(), NBNodeShapeComputer::computeNodeShapeDefault(), 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 146 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 943 of file PositionVector.cpp.
Referenced by NBNodeShapeComputer::closestIntersection(), NBNodeShapeComputer::computeNodeShapeDefault(), computeSameEnd(), NBEdge::firstIntersection(), 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 954 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 161 of file PositionVector.cpp.
References GeomHelper::intersection_position2D(), GeomHelper::intersects(), and Position::INVALID.
Referenced by NIVissimAbstractEdge::crossesEdgeAtPoint(), GeomHelper::crossPoint(), and intersectsAtPoint().
Position PositionVector::intersectsAtPoint | ( | const PositionVector & | v1 | ) | const |
Returns the position of the intersection
Definition at line 173 of file PositionVector.cpp.
References intersects(), intersectsAtPoint(), and Position::INVALID.
bool PositionVector::isClosed | ( | ) | const |
Definition at line 1191 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 560 of file PositionVector.cpp.
References Position::x(), and Position::y().
Referenced by transformToVectorCoordinates().
SUMOReal PositionVector::length | ( | ) | const |
Returns the length.
Definition at line 396 of file PositionVector.cpp.
References SUMOReal.
Referenced by NIXMLEdgesHandler::addSplit(), NBNodeShapeComputer::badIntersection(), NBEdge::buildInnerEdges(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), NBEdge::computeAngle(), NBEdge::computeEdgeShape(), NBNodeShapeComputer::computeNodeShapeDefault(), NIVissimEdge::dict_checkEdges2Join(), GUIEdge::drawGL(), NBEdge::firstIntersection(), getCentroid(), NIVissimAbstractEdge::getGeomPosition(), NWWriter_DlrNavteq::getGraphLength(), NIVissimEdge::getLength(), getLineCenter(), getSubpart(), getSubpart2D(), NIVissimEdge::getToNode(), GUIBusStop::GUIBusStop(), GUIContainerStop::GUIContainerStop(), 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 405 of file PositionVector.cpp.
References SUMOReal.
Referenced by NBEdge::computeAngle(), and NIImporter_OpenDrive::loadNetwork().
Line PositionVector::lineAt | ( | int | pos | ) | const |
Definition at line 1089 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 997 of file PositionVector.cpp.
References Position::distanceTo2D(), Line::extrapolateBy2D(), GeomHelper::getNormal90D_CW(), Line::intersects(), Line::intersectsAt(), Line::p2(), POSITION_EPS, push_back(), Position::x(), Position::y(), and Position::z().
Referenced by NBEdge::addSidewalk(), NBNodeShapeComputer::badIntersection(), NBNode::buildCrossings(), NBNode::buildWalkingAreas(), GUIVehicle::drawBestLanes(), NBEdge::firstIntersection(), NBEdge::getCCWBoundaryLine(), NBEdge::getCWBoundaryLine(), MSVehicle::getPosition(), GUIBusStop::GUIBusStop(), GUIContainerStop::GUIContainerStop(), NBRampsComputer::moveRampRight(), NIXMLEdgesHandler::myEndElement(), NBEdge::shiftPositionAtNode(), NBSign::writeAsPOI(), and NWWriter_OpenDrive::writeNetwork().
SUMOReal PositionVector::nearest_offset_to_point2D | ( | const Position & | p, |
bool | perpendicular = true |
||
) | const |
Definition at line 828 of file PositionVector.cpp.
References Position::distanceTo2D(), GeomHelper::INVALID_OFFSET, max, GeomHelper::nearest_offset_on_line_to_point2D(), and SUMOReal.
Referenced by distance(), GUILane::getPopUpMenu(), NBEdgeCont::splitAt(), and TraCIServerAPI_Vehicle::vtdMap().
bool PositionVector::operator== | ( | const PositionVector & | v2 | ) | const |
comparing operation
Definition at line 1229 of file PositionVector.cpp.
const Position & PositionVector::operator[] | ( | int | index | ) | const |
returns the position at the given index !!! exceptions?
Definition at line 189 of file PositionVector.cpp.
Position & PositionVector::operator[] | ( | int | index | ) |
Definition at line 199 of file PositionVector.cpp.
|
virtual |
Returns the information whether the given polygon overlaps with this Again a boundary may be specified.
Implements AbstractPoly.
Definition at line 120 of file PositionVector.cpp.
References AbstractPoly::around().
Referenced by NIVissimAbstractEdge::overlapsWith().
|
virtual |
Returns the information whether this polygon lies partially within the given polygon.
Implements AbstractPoly.
Definition at line 437 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 84 of file PositionVector.cpp.
Referenced by NBRampsComputer::buildOffRamp(), and NBEdge::getInnerGeometry().
Returns the position at the given length.
Definition at line 209 of file PositionVector.cpp.
References SUMOReal.
Referenced by NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), TraCIServerAPI_Simulation::commandPositionConversion(), GUIEdge::drawGL(), MSLane::geometryPositionAtOffset(), NIVissimAbstractEdge::getGeomPosition(), MSPerson::MSPersonStage::getLanePosition(), MSContainer::MSContainerStage::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(), and NBSign::writeAsPOI().
|
static |
Returns the position between the two given point at the specified position */.
Definition at line 274 of file PositionVector.cpp.
References Position::distanceTo(), Line::getPositionAtDistance(), Position::INVALID, Line::move2side(), and SUMOReal.
Returns the position at the given length.
Definition at line 224 of file PositionVector.cpp.
References SUMOReal.
Referenced by NBEdge::computeAngle(), NBNodeShapeComputer::computeNodeShapeDefault(), distance(), GUIVehicle::drawAction_drawRailCarriages(), GUILane::getPopUpMenu(), CState::getPosition(), GUIContainer::getPosition(), getSubpart2D(), NBContHelper::relative_outgoing_edge_sorter::operator()(), and NBContHelper::relative_incoming_edge_sorter::operator()().
|
static |
Returns the position between the two given point at the specified position */.
Definition at line 291 of file PositionVector.cpp.
References Position::distanceTo2D(), Line::getPositionAtDistance2D(), Position::INVALID, Line::move2side(), and SUMOReal.
void PositionVector::pruneFromBeginAt | ( | const Position & | p | ) |
Definition at line 705 of file PositionVector.cpp.
References GeomHelper::distancePointLine(), GeomHelper::extrapolate_first(), GeomHelper::INVALID_OFFSET, GeomHelper::nearest_offset_on_line_to_point2D(), positionAtOffset(), and SUMOReal.
void PositionVector::pruneFromEndAt | ( | const Position & | p | ) |
Definition at line 765 of file PositionVector.cpp.
References GeomHelper::distancePointLine(), GeomHelper::extrapolate_second(), GeomHelper::INVALID_OFFSET, 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 72 of file PositionVector.cpp.
Referenced by NBEdgeCont::applyOptions(), area(), NIVissimConnection::buildGeom(), NBRampsComputer::buildOnRamp(), NBNode::buildWalkingAreas(), closePolygon(), NBEdge::computeLaneShape(), NBNode::computeNodeShape(), GUIVehicle::computeSeats(), NBNode::computeSmoothShape(), 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().
void PositionVector::push_back_noDoublePos | ( | const Position & | p | ) |
Definition at line 1175 of file PositionVector.cpp.
References Position::almostSame(), and push_back().
Referenced by NIVissimNodeCluster::buildNBNode(), NBNode::buildWalkingAreas(), NBNode::computeNodeShape(), NBNodeShapeComputer::computeNodeShapeDefault(), NBNodeShapeComputer::computeNodeShapeSmall(), NIImporter_OpenDrive::computeShapes(), NWWriter_DlrNavteq::getGraphLength(), getSubpart(), getSubpart2D(), NBEdge::init(), MSPModel_Striping::initWalkingAreaPaths(), NIImporter_OpenStreetMap::insertEdge(), intersectionPoints2D(), PCLoaderArcView::load(), NIImporter_ArcView::load(), PCLoaderOSM::loadIfSet(), NIVissimAbstractEdge::NIVissimAbstractEdge(), NIVissimSingleTypeParser_Streckendefinition::parse(), NIVissimSingleTypeParser_Verbindungsdefinition::parse(), 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 78 of file PositionVector.cpp.
Referenced by NBRampsComputer::buildOffRamp(), extrapolate(), NBEdge::init(), NIImporter_DlrNavteq::EdgesHandler::report(), and NBEdge::setGeometry().
void PositionVector::push_front_noDoublePos | ( | const Position & | p | ) |
Definition at line 1183 of file PositionVector.cpp.
References Position::almostSame().
Referenced by NBNode::buildWalkingAreas(), NBNodeShapeComputer::computeNodeShapeDefault(), NWWriter_DlrNavteq::getGraphLength(), NBEdge::init(), NBEdge::startShapeAt(), and NWWriter_SUMO::writeEdge().
void PositionVector::removeColinearPoints | ( | ) |
Definition at line 1213 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 1197 of file PositionVector.cpp.
Referenced by NIImporter_OpenDrive::computeShapes(), NBEdge::init(), and NBEdge::reduceGeometry().
void PositionVector::replaceAt | ( | int | index, |
const Position & | by | ||
) |
Definition at line 1163 of file PositionVector.cpp.
Referenced by computeSameEnd().
Definition at line 522 of file PositionVector.cpp.
Referenced by NBDistrict::reshiftPosition(), and NBEdge::reshiftPosition().
PositionVector PositionVector::reverse | ( | ) | const |
Definition at line 987 of file PositionVector.cpp.
References push_back().
Referenced by NBNodeShapeComputer::badIntersection(), NBNode::buildWalkingAreas(), NBEdge::computeEdgeShape(), GUILane::drawLinkNo(), GUILane::drawLinkRules(), GUILane::drawTLSLinkNo(), NBNodeShapeComputer::getSmoothCorner(), 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 239 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(), MSContainer::MSContainerStage::getEdgeAngle(), GUIBusStop::GUIBusStop(), GUICalibrator::GUICalibrator(), GUIContainerStop::GUIContainerStop(), GUILaneSpeedTrigger::GUILaneSpeedTrigger(), GUITriggeredRerouter::GUITriggeredRerouterEdge::GUITriggeredRerouterEdge(), GUIInstantInductLoop::MyWrapper::MyWrapper(), GUIInductLoop::MyWrapper::MyWrapper(), and TraCIServerAPI_Vehicle::vtdMap().
void PositionVector::scaleAbsolute | ( | SUMOReal | offset | ) |
enlarges/shrinks the polygon by an absolute offset based at the centroid
Definition at line 378 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 369 of file PositionVector.cpp.
References getCentroid().
Returns the slope at the given length.
Definition at line 258 of file PositionVector.cpp.
References Line::atan2DegreeSlope(), and SUMOReal.
Referenced by MSVehicle::getSlope(), and MSCFModel_KraussAccelBound::maxNextSpeed().
void PositionVector::sortAsPolyCWByAngle | ( | ) |
Definition at line 508 of file PositionVector.cpp.
Referenced by convexHull().
void PositionVector::sortByIncreasingXY | ( | ) |
Definition at line 538 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 454 of file PositionVector.cpp.
References length(), POSITION_EPS, push_back(), SUMOReal, toString(), and WRITE_WARNING.
Referenced by NBEdge::buildInnerEdges(), and NBEdgeCont::splitAt().
Position PositionVector::transformToVectorCoordinates | ( | const Position & | p, |
bool | extend = false |
||
) | const |
return position p within the length-wise coordinate system defined by this position vector. The x value is the same as that returned by nearest_offset_to_point2D(p) and the y value is the perpendicular distance to this vector with the sign indicating the side (right is postive). if extend is true, the vector is extended on both sides and the x-coordinate of the result may be below 0 or above the length of the original vector
Definition at line 861 of file PositionVector.cpp.
References distance(), Position::distanceTo2D(), extrapolate(), Position::INVALID, GeomHelper::INVALID_OFFSET, isLeft(), max, GeomHelper::nearest_offset_on_line_to_point2D(), sign, SUMOReal, and transformToVectorCoordinates().
Referenced by MSPModel_Striping::getNextLaneObstacles(), MSPModel_Striping::moveInDirection(), and transformToVectorCoordinates().
|
friend |
Output operator.
Definition at line 496 of file PositionVector.cpp.