|
SUMO - Simulation of Urban MObility
|
#include <Line.h>
Public Member Functions | |
| void | add (SUMOReal x, SUMOReal y) |
| void | add (const Position &p) |
| SUMOReal | atan2Angle () const |
| SUMOReal | atan2DegreeAngle () const |
| SUMOReal | atan2PositiveAngle () const |
| void | extrapolateBy (SUMOReal length) |
| void | extrapolateFirstBy (SUMOReal length) |
| void | extrapolateSecondBy (SUMOReal length) |
| Position | getPositionAtDistance (SUMOReal offset) const |
| bool | intersects (const Line &l) const |
| Position | intersectsAt (const Line &l) const |
| SUMOReal | intersectsAtLength2D (const Line &v) |
| returns distance between myP1 and intersection or -1 if line segments do not intersect | |
| DoubleVector | intersectsAtLengths2D (const PositionVector &v) |
| SUMOReal | length () const |
| SUMOReal | length2D () const |
| Line (const Position &p1, const Position &p2) | |
| Line () | |
| void | move2side (SUMOReal amount) |
| const Position & | p1 () const |
| const Position & | p2 () const |
| Line & | reverse () |
| void | rotateAround (const Position &at, SUMOReal rot) |
| void | rotateAtP1 (SUMOReal rot) |
| void | sub (SUMOReal x, SUMOReal y) |
| ~Line () | |
Private Attributes | |
| Position | myP1 |
| Position | myP2 |
| void Line::add | ( | SUMOReal | x, |
| SUMOReal | y | ||
| ) |
Definition at line 170 of file Line.cpp.
References Position::add(), myP1, and myP2.
Referenced by NBNodeShapeComputer::computeNodeShapeByCrosses().
| void Line::add | ( | const Position & | p | ) |
Definition at line 177 of file Line.cpp.
References Position::add(), myP1, myP2, Position::x(), and Position::y().
| SUMOReal Line::atan2Angle | ( | ) | const |
Definition at line 125 of file Line.cpp.
References myP1, myP2, Position::x(), and Position::y().
Referenced by atan2PositiveAngle(), PositionVector::beginEndAngle(), and NBNode::computeInternalLaneShape().
| SUMOReal Line::atan2DegreeAngle | ( | ) | const |
Definition at line 131 of file Line.cpp.
References myP1, myP2, PI, SUMOReal, Position::x(), and Position::y().
Referenced by NBEdge::computeEdgeShape(), NBEdge::computeLaneShape(), NIVissimEdge::dict_checkEdges2Join(), GLHelper::drawTriangleAtEnd(), NBEdge::getAngle(), NBContHelper::edge_opposite_direction_sorter::getEdgeAngleAt(), NBNodeShapeComputer::joinSameDirectionEdges(), and PositionVector::rotationDegreeAtLengthPosition().
| SUMOReal Line::atan2PositiveAngle | ( | ) | const |
Definition at line 137 of file Line.cpp.
References atan2Angle(), PI, and SUMOReal.
| void Line::extrapolateBy | ( | SUMOReal | length | ) |
Definition at line 61 of file Line.cpp.
References Position::add(), Position::distanceTo(), myP1, myP2, Position::sub(), and SUMOReal.
Referenced by PositionVector::appendWithCrossingPoint(), NBNodeShapeComputer::computeContinuationNodeShape(), NBEdge::computeLaneShape(), NBNodeShapeComputer::computeNodeShapeByCrosses(), computeSameEnd(), NBNodeShapeComputer::joinSameDirectionEdges(), PositionVector::move2side(), NIImporter_SUMO::reconstructEdgeShape(), and NBEdge::startShapeAt().
| void Line::extrapolateFirstBy | ( | SUMOReal | length | ) |
Definition at line 70 of file Line.cpp.
References GeomHelper::extrapolate_first(), myP1, and myP2.
Referenced by NBNode::computeInternalLaneShape().
| void Line::extrapolateSecondBy | ( | SUMOReal | length | ) |
Definition at line 76 of file Line.cpp.
References GeomHelper::extrapolate_second(), myP1, and myP2.
Referenced by NBNode::computeInternalLaneShape().
| Position Line::getPositionAtDistance | ( | SUMOReal | offset | ) | const |
Definition at line 93 of file Line.cpp.
References Position::distanceTo(), length(), myP1, myP2, SUMOReal, and toString().
Referenced by NBNode::computeInternalLaneShape(), computeSameEnd(), GLHelper::drawTriangleAtEnd(), and NBEdge::startShapeAt().
Definition at line 152 of file Line.cpp.
Referenced by NBNode::computeInternalLaneShape(), NBEdge::computeLaneShape(), NBNodeShapeComputer::computeNodeShapeByCrosses(), PositionVector::move2side(), and NIImporter_SUMO::reconstructEdgeShape().
Definition at line 146 of file Line.cpp.
References GeomHelper::intersection_position(), myP1, and myP2.
Referenced by NBNode::computeInternalLaneShape(), NBEdge::computeLaneShape(), NBNodeShapeComputer::computeNodeShapeByCrosses(), PositionVector::move2side(), and NIImporter_SUMO::reconstructEdgeShape().
| SUMOReal Line::intersectsAtLength2D | ( | const Line & | v | ) |
returns distance between myP1 and intersection or -1 if line segments do not intersect
Definition at line 201 of file Line.cpp.
References GeomHelper::intersection_position(), myP1, myP2, and GeomHelper::nearest_position_on_line_to_point2D().
| DoubleVector Line::intersectsAtLengths2D | ( | const PositionVector & | v | ) |
Definition at line 114 of file Line.cpp.
References Position::distanceTo2D(), PositionVector::intersectionPoints2D(), myP1, PositionVector::push_back(), and PositionVector::size().
Referenced by NBEdge::startShapeAt().
| SUMOReal Line::length | ( | ) | const |
Definition at line 164 of file Line.cpp.
References Position::distanceTo(), myP1, and myP2.
Referenced by NBNode::computeInternalLaneShape(), GLHelper::drawTriangleAtEnd(), getPositionAtDistance(), and NWWriter_OpenDrive::writePlanView().
| SUMOReal Line::length2D | ( | ) | const |
Definition at line 158 of file Line.cpp.
References Position::distanceTo2D(), myP1, and myP2.
Referenced by PositionVector::intersectsAtLengths2D().
| void Line::move2side | ( | SUMOReal | amount | ) |
Definition at line 106 of file Line.cpp.
References Position::add(), GeomHelper::getNormal90D_CW(), myP1, and myP2.
Referenced by NBNodeShapeComputer::replaceFirstChecking(), and NBNodeShapeComputer::replaceLastChecking().
| const Position & Line::p1 | ( | ) | const |
Definition at line 81 of file Line.cpp.
References myP1.
Referenced by NBNode::computeInternalLaneShape(), NBNodeShapeComputer::computeNodeShapeByCrosses(), computeSameEnd(), PositionVector::intersectionPoints2D(), PositionVector::intersectsAtLengths2D(), NBNodeShapeComputer::joinSameDirectionEdges(), NBNodeShapeComputer::replaceFirstChecking(), NBEdge::startShapeAt(), and NWWriter_OpenDrive::writePlanView().
| const Position & Line::p2 | ( | ) | const |
Definition at line 87 of file Line.cpp.
References myP2.
Referenced by NBNode::computeInternalLaneShape(), NIVissimEdge::dict_checkEdges2Join(), GLHelper::drawTriangleAtEnd(), PositionVector::intersectionPoints2D(), PositionVector::intersectsAtLengths2D(), NBNodeShapeComputer::replaceLastChecking(), NBEdge::startShapeAt(), and NWWriter_OpenDrive::writePlanView().
| Line & Line::reverse | ( | ) |
Definition at line 192 of file Line.cpp.
Referenced by NBContHelper::edge_opposite_direction_sorter::getEdgeAngleAt().
| void Line::rotateAround | ( | const Position & | at, |
| SUMOReal | rot | ||
| ) |
Definition at line 219 of file Line.cpp.
References Position::add(), myP1, myP2, SUMOReal, Position::x(), and Position::y().
Referenced by NBNodeShapeComputer::computeNodeShapeByCrosses().
| void Line::rotateAtP1 | ( | SUMOReal | rot | ) |
Definition at line 209 of file Line.cpp.
References Position::add(), myP1, myP2, Position::reshiftRotate(), and Position::sub().
Referenced by NBNode::computeInternalLaneShape().
| void Line::sub | ( | SUMOReal | x, |
| SUMOReal | y | ||
| ) |
Definition at line 184 of file Line.cpp.
References myP1, myP2, and Position::sub().
Referenced by NBNode::computeInternalLaneShape(), and NBNodeShapeComputer::computeNodeShapeByCrosses().
Position Line::myP1 [private] |
Definition at line 83 of file Line.h.
Referenced by add(), atan2Angle(), atan2DegreeAngle(), extrapolateBy(), extrapolateFirstBy(), extrapolateSecondBy(), getPositionAtDistance(), intersects(), intersectsAt(), intersectsAtLength2D(), intersectsAtLengths2D(), length(), length2D(), move2side(), p1(), reverse(), rotateAround(), rotateAtP1(), and sub().
Position Line::myP2 [private] |
Definition at line 83 of file Line.h.
Referenced by add(), atan2Angle(), atan2DegreeAngle(), extrapolateBy(), extrapolateFirstBy(), extrapolateSecondBy(), getPositionAtDistance(), intersects(), intersectsAt(), intersectsAtLength2D(), length(), length2D(), move2side(), p2(), reverse(), rotateAround(), rotateAtP1(), and sub().