@@ -155,7 +155,7 @@ NBNodeShapeComputer::computeNodeShapeDefault(bool simpleContinuation) {
155
155
// initialise
156
156
EdgeVector::const_iterator i;
157
157
// edges located in the value-vector have the same direction as the key edge
158
- std::map<NBEdge*, std::set<NBEdge*> > same;
158
+ std::map<NBEdge*, std::set<NBEdge*, ComparatorIdLess > > same;
159
159
// the counter-clockwise boundary of the edge regarding possible same-direction edges
160
160
GeomsMap geomsCCW;
161
161
// the clockwise boundary of the edge regarding possible same-direction edges
@@ -548,7 +548,7 @@ NBNodeShapeComputer::closestIntersection(const PositionVector& geom1, const Posi
548
548
549
549
bool
550
550
NBNodeShapeComputer::needsLargeTurn (NBEdge* e1 , NBEdge* e2 ,
551
- std::map<NBEdge*, std::set<NBEdge*> >& same) const {
551
+ std::map<NBEdge*, std::set<NBEdge*, ComparatorIdLess > >& same) const {
552
552
const SVCPermissions p1 = e1 ->getPermissions ();
553
553
const SVCPermissions p2 = e2 ->getPermissions ();
554
554
if ((p1 & p2 & SVC_LARGE_TURN) != 0 ) {
@@ -694,7 +694,7 @@ NBNodeShapeComputer::computeEdgeBoundaries(const EdgeVector& edges,
694
694
}
695
695
696
696
void
697
- NBNodeShapeComputer::joinSameDirectionEdges (const EdgeVector& edges, std::map<NBEdge*, std::set<NBEdge*> >& same, bool useEndpoints) {
697
+ NBNodeShapeComputer::joinSameDirectionEdges (const EdgeVector& edges, std::map<NBEdge*, std::set<NBEdge*, ComparatorIdLess > >& same, bool useEndpoints) {
698
698
// compute same (edges where an intersection doesn't work well
699
699
// (always check an edge and its cw neighbor)
700
700
const double angleChangeLookahead = 35 ; // distance to look ahead for a misleading angle
@@ -732,6 +732,7 @@ NBNodeShapeComputer::joinSameDirectionEdges(const EdgeVector& edges, std::map<NB
732
732
#ifdef DEBUG_NODE_SHAPE
733
733
if (DEBUGCOND) {
734
734
std::cout << " checkSameDirection " << (*i)->getID () << " " << (*j)->getID ()
735
+ << " sameGeom=" << sameGeom
735
736
<< " diffDirs=" << differentDirs
736
737
<< " isOpposite=" << (differentDirs && foundOpposite.count (*i) == 0 )
737
738
<< " angleDiff=" << angleDiff
@@ -834,7 +835,7 @@ NBNodeShapeComputer::badIntersection(const NBEdge* e1, const NBEdge* e2, double
834
835
EdgeVector
835
836
NBNodeShapeComputer::computeUniqueDirectionList (
836
837
const EdgeVector& all,
837
- std::map<NBEdge*, std::set<NBEdge*> >& same,
838
+ std::map<NBEdge*, std::set<NBEdge*, ComparatorIdLess > >& same,
838
839
GeomsMap& geomsCCW,
839
840
GeomsMap& geomsCW) {
840
841
// store relationships
@@ -1098,7 +1099,7 @@ NBNodeShapeComputer::getDefaultRadius(const OptionsCont& oc) {
1098
1099
1099
1100
1100
1101
bool
1101
- NBNodeShapeComputer::isDivided (const NBEdge* e, std::set<NBEdge*> same, const PositionVector& ccw, const PositionVector& cw) const {
1102
+ NBNodeShapeComputer::isDivided (const NBEdge* e, std::set<NBEdge*, ComparatorIdLess > same, const PositionVector& ccw, const PositionVector& cw) const {
1102
1103
if (same.size () < 2 ) {
1103
1104
return false ;
1104
1105
}
@@ -1138,7 +1139,7 @@ NBNodeShapeComputer::getExtraWidth(const NBEdge* e, SVCPermissions exclude) {
1138
1139
1139
1140
1140
1141
double
1141
- NBNodeShapeComputer::divisionWidth (const NBEdge* e, std::set<NBEdge*> same, const Position& p, const Position& p2) {
1142
+ NBNodeShapeComputer::divisionWidth (const NBEdge* e, std::set<NBEdge*, ComparatorIdLess > same, const Position& p, const Position& p2) {
1142
1143
double result = p.distanceTo2D (p2);
1143
1144
result -= e->getTotalWidth ();
1144
1145
for (NBEdge* e2 : same) {
0 commit comments