index a9f1446889cc4eff3335fa4218de2509265c6815..3526b3f1594b3b37e8ca52c53416ffe706d104dd 100644 (file)
, _initialised(false)
, _callback(NULL)
, _connector(NULL)
, _initialised(false)
, _callback(NULL)
, _connector(NULL)
+ , _hateCrossings(false)
{
// TODO: Store endpoints and details.
_route.pn = 0;
{
// TODO: Store endpoints and details.
_route.pn = 0;
, _initialised(false)
, _callback(NULL)
, _connector(NULL)
, _initialised(false)
, _callback(NULL)
, _connector(NULL)
+ , _hateCrossings(false)
{
_route.pn = 0;
_route.ps = NULL;
{
_route.pn = 0;
_route.ps = NULL;
{
assert((type == (unsigned int) VertID::src) ||
(type == (unsigned int) VertID::tar));
{
assert((type == (unsigned int) VertID::src) ||
(type == (unsigned int) VertID::tar));
- //assert(IncludeEndpoints);
+
+ // XXX: This was commented out. Is there a case where it isn't true?
+ assert(_router->IncludeEndpoints);
if (!_initialised)
{
if (!_initialised)
{
altered = _dstVert;
partner = _srcVert;
}
altered = _dstVert;
partner = _srcVert;
}
-
- bool knownNew = false;
+
+ // XXX: Seems to be faster to just remove the edges and recreate
+ bool isConn = true;
+ altered->removeFromGraph(isConn);
+ bool knownNew = true;
vertexVisibility(altered, partner, knownNew, true);
}
vertexVisibility(altered, partner, knownNew, true);
}
}
}
+unsigned int ConnRef::getSrcShapeId(void)
+{
+ return _srcId;
+}
+
+
+unsigned int ConnRef::getDstShapeId(void)
+{
+ return _dstId;
+}
+
+
void ConnRef::makeActive(void)
{
assert(!_active);
void ConnRef::makeActive(void)
{
assert(!_active);
}
}
+unsigned int ConnRef::id(void)
+{
+ return _id;
+}
+
+
VertInf *ConnRef::src(void)
{
return _srcVert;
VertInf *ConnRef::src(void)
{
return _srcVert;
tar = _dstVert;
bool knownNew = true;
tar = _dstVert;
bool knownNew = true;
- vertexVisibility(src, tar, knownNew);
- vertexVisibility(tar, src, knownNew);
+ bool genContains = true;
+ vertexVisibility(src, tar, knownNew, genContains);
+ vertexVisibility(tar, src, knownNew, genContains);
}
bool *flag = &(_needs_reroute_flag);
}
bool *flag = &(_needs_reroute_flag);
{
_false_path = true;
}
{
_false_path = true;
}
- path[j--] = i->point;
+ path[j] = i->point;
+ path[j].id = i->id.objID;
+ j--;
}
path[0] = src->point;
}
path[0] = src->point;
PolyLine& output_route = route();
output_route.pn = pathlen;
output_route.ps = path;
PolyLine& output_route = route();
output_route.pn = pathlen;
output_route.ps = path;
+
+ if ( !(_router->IncludeEndpoints) )
+ {
+ assert(_initialised);
+ unInitialise();
+ }
return (int) result;
}
return (int) result;
}
+void ConnRef::setHateCrossings(bool value)
+{
+ _hateCrossings = value;
+}
+
+
+bool ConnRef::doesHateCrossings(void)
+{
+ return _hateCrossings;
+}
+
+
//============================================================================
}
//============================================================================
}