protected override void HandleValidNode(NodeGeometry geometry) { if (geometry.CurrentSegmentReplacement.oldSegmentEndId != null && geometry.CurrentSegmentReplacement.newSegmentEndId != null) { ISegmentEndId oldSegmentEndId = geometry.CurrentSegmentReplacement.oldSegmentEndId; ISegmentEndId newSegmentEndId = geometry.CurrentSegmentReplacement.newSegmentEndId; SegmentEndFlags flags; if (oldSegmentEndId.StartNode) { flags = invalidSegmentFlags[oldSegmentEndId.SegmentId].startNodeFlags; } else { flags = invalidSegmentFlags[oldSegmentEndId.SegmentId].endNodeFlags; } if (flags.IsDefault()) { return; } Log._Debug($"JunctionRestrictionsManager.NodeWatcher.HandleValidNode({geometry.NodeId}): Segment replacement detected: {oldSegmentEndId.SegmentId} -> {newSegmentEndId.SegmentId}\n" + $"Moving segmend end flags {flags} to new segment end." ); junctionRestrictionsManager.SetSegmentEndFlags(newSegmentEndId.SegmentId, newSegmentEndId.StartNode, flags); } }
protected override void HandleValidNode(NodeGeometry geometry) { // update segment defaults foreach (SegmentEndGeometry endGeo in geometry.SegmentEndGeometries) { if (endGeo == null) { continue; } SegmentGeometry segGeo = endGeo.GetSegmentGeometry(true); if (segGeo.IsValid()) { junctionRestrictionsManager.HandleValidSegment(segGeo); } } if (geometry.CurrentSegmentReplacement.oldSegmentEndId != null && geometry.CurrentSegmentReplacement.newSegmentEndId != null) { ISegmentEndId oldSegmentEndId = geometry.CurrentSegmentReplacement.oldSegmentEndId; ISegmentEndId newSegmentEndId = geometry.CurrentSegmentReplacement.newSegmentEndId; SegmentEndFlags flags; if (oldSegmentEndId.StartNode) { flags = invalidSegmentFlags[oldSegmentEndId.SegmentId].startNodeFlags; invalidSegmentFlags[oldSegmentEndId.SegmentId].startNodeFlags.Reset(); } else { flags = invalidSegmentFlags[oldSegmentEndId.SegmentId].endNodeFlags; invalidSegmentFlags[oldSegmentEndId.SegmentId].endNodeFlags.Reset(); } if (!flags.IsDefault()) { Log._Debug($"JunctionRestrictionsManager.NodeWatcher.HandleValidNode({geometry.NodeId}): Segment replacement detected: {oldSegmentEndId.SegmentId} -> {newSegmentEndId.SegmentId}\n" + $"Moving segmend end flags {flags} to new segment end." ); junctionRestrictionsManager.SetSegmentEndFlags(newSegmentEndId.SegmentId, newSegmentEndId.StartNode, flags); } } }