First working edge based version. Still missing: GPX export; Via Points;
origin,destination on same edge, descriptions
This commit is contained in:
@@ -62,10 +62,6 @@ private:
|
||||
delete _heapForward;
|
||||
}
|
||||
};
|
||||
union _MiddleName {
|
||||
NodeID nameID;
|
||||
NodeID middle;
|
||||
};
|
||||
|
||||
public:
|
||||
|
||||
@@ -73,12 +69,13 @@ public:
|
||||
NodeID source;
|
||||
NodeID target;
|
||||
struct EdgeData {
|
||||
int distance : 30;
|
||||
bool shortcut : 1;
|
||||
bool forward : 1;
|
||||
bool backward : 1;
|
||||
short type:7;
|
||||
_MiddleName middleName;
|
||||
NodeID via;
|
||||
unsigned nameID1;
|
||||
unsigned nameID2;
|
||||
int distance;
|
||||
bool shortcut;
|
||||
bool forward;
|
||||
bool backward;
|
||||
} data;
|
||||
|
||||
//sorts by source and other attributes
|
||||
@@ -95,7 +92,10 @@ public:
|
||||
}
|
||||
|
||||
bool operator== ( const Edge& right ) const {
|
||||
return ( source == right.source && target == right.target && data.distance == right.data.distance && data.shortcut == right.data.shortcut && data.forward == right.data.forward && data.backward == right.data.backward && data.middleName.middle == right.data.middleName.middle );
|
||||
return ( source == right.source && target == right.target && data.distance == right.data.distance &&
|
||||
data.shortcut == right.data.shortcut && data.forward == right.data.forward && data.backward == right.data.backward
|
||||
&& data.via == right.data.via && data.nameID1 == right.data.nameID1 && data.nameID2 == right.data.nameID2
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -117,6 +117,7 @@ public:
|
||||
edge.data.shortcut = false;
|
||||
edge.data.nameID1 = i->nameID1();
|
||||
edge.data.nameID2 = i->nameID2();
|
||||
edge.data.via = i->via();
|
||||
edge.data.turnType = i->turnType();
|
||||
edge.data.forward = i->isForward();
|
||||
edge.data.backward = i->isBackward();
|
||||
@@ -430,12 +431,6 @@ private:
|
||||
return edgeQuotionFactor * ((( double ) stats.edgesAdded ) / stats.edgesDeleted ) + originalQuotientFactor * ((( double ) stats.originalEdgesAdded ) / stats.originalEdgesDeleted ) + depthFactor * nodeData->depth;
|
||||
}
|
||||
|
||||
/*
|
||||
8 * numAdded / numDeleted + 4 * numOriginalAdded / numOriginalDeleted + 2 * Tiefe
|
||||
Kante einfüge = numAdded += 2 && numOriginalAdded += 2 * numOriginal
|
||||
Kante löschen = numDeleted += 1 && numOriginalAdded += numOriginal
|
||||
*/
|
||||
|
||||
template< class Edge >
|
||||
bool _CheckCH()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user