/// <inheritdoc/> public bool TouchVertex(VertexId vertexId) { if (_loadedTiles.Contains(vertexId.TileId)) { // tile was already loaded. return(false); } lock (_loadedTiles) { if (_loadedTiles.Contains(vertexId.TileId)) { // tile was already loaded. return(false); } var tile = Tile.FromLocalId(vertexId.TileId, _zoom); var url = _baseUrl + $"/{tile.Zoom}/{tile.X}/{tile.Y}"; using (var stream = TileParser.DownloadFunc(url)) { var parse = stream?.Parse(tile); if (parse == null) { return(false); } var result = _routerDb.AddOsmTile(_idMap, tile, parse); _loadedTiles.Add(vertexId.TileId); return(result); } } }
public HaymanVertex(VertexId id, RevisionId revisionId) { _id = id; _revisionId = revisionId; _outEdges = new Dictionary<EdgeId, IGenericEdge<VertexId, RevisionId, HaymanVertexData, EdgeId, RevisionId, HaymanEdgeData, HyperEdgeId, RevisionId, HaymanEdgeData>>(); _inEdges = new Dictionary<EdgeId, IGenericEdge<VertexId, RevisionId, HaymanVertexData, EdgeId, RevisionId, HaymanEdgeData, HyperEdgeId, RevisionId, HaymanEdgeData>>(); }
public void Save(string fileName) { XmlWriter writer; XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; settings.NewLineChars = "\r\n"; settings.Encoding = Encoding.ASCII; settings.NewLineOnAttributes = false; writer = XmlWriter.Create(fileName, settings); writer.WriteStartDocument(); writer.WriteStartElement("Graph"); writer.WriteAttributeString("Title", Title); writer.WriteAttributeString("VertexId", VertexId.ToString()); writer.WriteAttributeString("LinkId", LinkId.ToString()); writer.WriteAttributeString("PointX", GraphPoint.X.ToString()); writer.WriteAttributeString("PointY", GraphPoint.Y.ToString()); foreach (var vertex in Vertices) { vertex.Save(writer); } writer.WriteEndElement(); writer.WriteEndDocument(); writer.Flush(); writer.Close(); } // Save
public void VertexIdEmptyConstructorTest() { var _VertexId1 = new VertexId(); var _VertexId2 = new VertexId(); Assert.IsTrue(_VertexId1.Length > 0); Assert.IsTrue(_VertexId2.Length > 0); Assert.AreNotEqual(_VertexId1, _VertexId2); }
/// <summary> /// Moves the enumerator to the first edge of the given vertex. /// </summary> /// <param name="vertex">The vertex.</param> /// <returns>True if the vertex exists.</returns> public bool MoveTo(VertexId vertex) { if (_enumerator == null) { throw new InvalidOperationException( $"Cannot reset an enumerator created from an {nameof(EdgeEnumerator)}."); } return(_enumerator.MoveTo(vertex)); }
/// <summary> /// Adds a new visit the path tree. /// </summary> /// <param name="tree">The tree.</param> /// <param name="vertex">The vertex.</param> /// <param name="edge">The edge.</param> /// <param name="previousPointer">The pointer to the previous entry.</param> /// <returns>A pointer to the visit.</returns> public static uint AddVisit(this PathTree tree, VertexId vertex, uint edge, uint previousPointer) { var data0 = vertex.TileId; var data1 = vertex.LocalId; var data2 = edge; var data3 = previousPointer; return(tree.Add(data0, data1, data2, data3)); }
/// <summary> /// Return the correspoingin vertex of the parallelogram /// </summary> /// <param name="vertexPar">vertex kind</param> /// <returns>vertex value</returns> public Point Vertex(VertexId vertexPar) { switch (vertexPar) { case VertexId.Corner: return(corner); case VertexId.VertexA: return(aPlusCorner); case VertexId.OtherCorner: return(OtherCorner); case VertexId.VertexB: return(bPlusCorner); default: throw new InvalidOperationException(); } }
/// <summary> /// Return the vertex referenced by the given vertex identifier. /// If no vertex is referenced by that identifier, then return null. /// </summary> /// <param name="vertexId">The identifier of the vertex.</param> /// <returns> /// The vertex referenced by the provided identifier or null when no such edge exists. /// </returns> public IHaymanVertex GetVertex(VertexId vertexId) { IHaymanVertex vertex; _vertices.TryGetValue(vertexId, out vertex); return vertex; }
IHaymanVertex IModelGraphAdapter.GetVertex(VertexId id) { return _graph.GetVertex(id); }
protected bool Equals(VertexModel other) { return(VertexId.Equals(other.VertexId)); }
public void op_Bigger_Smaller2_Test() { var _VertexId1 = new VertexId(5); var _VertexId2 = new VertexId(23); Assert.IsFalse(_VertexId1 > _VertexId2); }
public void op_Bigger_Equals_Test() { var _VertexId1 = new VertexId(1); var _VertexId2 = new VertexId(1); Assert.IsFalse(_VertexId1 > _VertexId2); }
public void op_Bigger_Null_Test1() { var _VertexId1 = new VertexId(); VertexId _VertexId2 = null; Assert.IsTrue(_VertexId1 > _VertexId2); }
public void op_Inequality_NotEquals2_Test() { var _VertexId1 = new VertexId(5); var _VertexId2 = new VertexId(23); Assert.IsTrue(_VertexId1 != _VertexId2); }
public void op_Inequality_Equals_Test() { var _VertexId1 = new VertexId(1); var _VertexId2 = new VertexId(1); Assert.IsFalse(_VertexId1 != _VertexId2); }
public void op_Inequality_SameReference_Test() { var _VertexId1 = new VertexId(); #pragma warning disable Assert.IsFalse(_VertexId1 != _VertexId1); #pragma warning restore }
public void op_Inequality_Null_Test2() { VertexId _VertexId1 = null; var _VertexId2 = new VertexId(); Assert.IsTrue(_VertexId1 != _VertexId2); }
public override int GetHashCode() { return(VertexId.GetHashCode()); }
internal static void WriteVertexId(this Stream stream, VertexId vertexId) { stream.WriteUInt32(vertexId.TileId); stream.WriteUInt32(vertexId.LocalId); }
public void op_SmallerOrEqual_Bigger1_Test() { var _VertexId1 = new VertexId(2); var _VertexId2 = new VertexId(1); Assert.IsFalse(_VertexId1 <= _VertexId2); }
public void op_Smaller_Null_Test2() { VertexId _VertexId1 = null; var _VertexId2 = new VertexId(); Assert.IsTrue(_VertexId1 < _VertexId2); }
public void op_Bigger_SameReference_Test() { var _VertexId1 = new VertexId(); #pragma warning disable Assert.IsFalse(_VertexId1 > _VertexId1); #pragma warning restore }
public void op_BiggerOrEqual_Null_Test2() { VertexId _VertexId1 = null; var _VertexId2 = new VertexId(); Assert.IsTrue(_VertexId1 >= _VertexId2); }
public void VertexIdInt32ConstructorTest() { var _VertexId = new VertexId(5); Assert.AreEqual("5", _VertexId.ToString()); Assert.AreEqual(1, _VertexId.Length); }
public void VertexIdUInt32ConstructorTest() { var _VertexId = new VertexId(23U); Assert.AreEqual("23", _VertexId.ToString()); Assert.AreEqual(2, _VertexId.Length); }
public void op_Bigger_Bigger1_Test() { var _VertexId1 = new VertexId(2); var _VertexId2 = new VertexId(1); Assert.IsTrue(_VertexId1 > _VertexId2); }
public void op_BiggerOrEqual_Bigger2_Test() { var _VertexId1 = new VertexId(23); var _VertexId2 = new VertexId(5); Assert.IsTrue(_VertexId1 >= _VertexId2); }
public void op_BiggerOrEqual_SameReference_Test() { var _VertexId1 = new VertexId(); #pragma warning disable Assert.IsTrue(_VertexId1 >= _VertexId1); #pragma warning restore }
public void op_Smaller_Equals_Test() { var _VertexId1 = new VertexId(1); var _VertexId2 = new VertexId(1); Assert.IsFalse(_VertexId1 < _VertexId2); }
public void op_BiggerOrEqual_SmallerThan2_Test() { var _VertexId1 = new VertexId(5); var _VertexId2 = new VertexId(23); Assert.IsFalse(_VertexId1 >= _VertexId2); }
public void op_Smaller_Smaller2_Test() { var _VertexId1 = new VertexId(5); var _VertexId2 = new VertexId(23); Assert.IsTrue(_VertexId1 < _VertexId2); }
public void CompareToSmallerTest1() { var _VertexId1 = new VertexId(1); var _VertexId2 = new VertexId(2); Assert.IsTrue(_VertexId1.CompareTo(_VertexId2) < 0); }
public void op_SmallerOrEqual_Null_Test1() { var _VertexId1 = new VertexId(); VertexId _VertexId2 = null; Assert.IsTrue(_VertexId1 <= _VertexId2); }
/// <summary> /// Return the correspoingin vertex of the parallelogram /// </summary> /// <param name="vertexPar">vertex kind</param> /// <returns>vertex value</returns> public Point Vertex(VertexId vertexPar) { switch (vertexPar) { case VertexId.Corner: return corner; case VertexId.VertexA: return aPlusCorner; case VertexId.OtherCorner: return OtherCorner; case VertexId.VertexB: return bPlusCorner; default: throw new InvalidOperationException(); } }
public void op_SmallerOrEqual_Equals_Test() { var _VertexId1 = new VertexId(1); var _VertexId2 = new VertexId(1); Assert.IsTrue(_VertexId1 <= _VertexId2); }
/// <summary> /// Create a new vertex, add it to the graph, and return the newly created vertex. /// The provided object identifier is a recommendation for the identifier to use. /// It is not required that the implementation use this identifier. /// If the object identifier is already being used by the graph to reference a vertex, /// then that reference vertex is returned and no vertex is created. /// If the identifier is a vertex (perhaps from another graph), /// then the vertex is duplicated for this graph. Thus, a vertex can not be an identifier. /// </summary> /// <param name="vertexId">The recommended object identifier.</param><param name="vertexInitializer">A delegate to initialize the new vertex.</param> /// <returns> /// The newly created vertex or the vertex already referenced by the provided identifier. /// </returns> public IHaymanVertex AddVertex(VertexId vertexId, Action<HaymanVertexData> vertexInitializer) { var data = new HaymanVertexData(); vertexInitializer(data); return AddVertex(new HaymanVertex(vertexId, null) { VertexData = data }); }
public void VertexIdStringConstructorTest() { var _VertexId = new VertexId("123"); Assert.AreEqual("123", _VertexId.ToString()); Assert.AreEqual(3, _VertexId.Length); }
/// <summary> /// Gets the given vertex. /// </summary> /// <param name="vertex">The vertex.</param> /// <returns>The vertex.</returns> public Coordinate GetVertex(VertexId vertex) { return(_network.GetVertex(vertex)); }
public void op_SmallerOrEqual_SmallerThan2_Test() { var _VertexId1 = new VertexId(5); var _VertexId2 = new VertexId(23); Assert.IsTrue(_VertexId1 <= _VertexId2); }