/// <summary>
 /// Explicitly set the goal point.
 /// </summary>
 /// <param name="directedEdgeIdB">The id of a directed edge object on which the goal point lies.</param>
 /// <param name="parameterizedPointOnEdgeB">A point on the goal directed edge, specified as a parameterised distance along the edge, in range 0.0 to 1.0.</param>
 /// <returns>This object, with the goal point set.</returns>
 public TransportPathfindOptionsBuilder SetPointOnGraphB(TransportDirectedEdgeId directedEdgeIdB, double parameterizedPointOnEdgeB)
 {
     m_directedEdgeIdB           = directedEdgeIdB;
     m_parameterizedPointOnEdgeB = parameterizedPointOnEdgeB;
     m_isPointBSet = true;
     return(this);
 }
 /// <summary>
 /// Explicitly set the start point.
 /// </summary>
 /// <param name="directedEdgeIdA">The id of a directed edge object on which the start point lies.</param>
 /// <param name="parameterizedPointOnEdgeA">A point on the start directed edge, specified as a parameterised distance along the edge, in range 0.0 to 1.0.</param>
 /// <returns>This object, with the start point set.</returns>
 public TransportPathfindOptionsBuilder SetPointOnGraphA(TransportDirectedEdgeId directedEdgeIdA, double parameterizedPointOnEdgeA)
 {
     m_directedEdgeIdA           = directedEdgeIdA;
     m_parameterizedPointOnEdgeA = parameterizedPointOnEdgeA;
     m_isPointASet = true;
     return(this);
 }
예제 #3
0
 public static TransportDirectedEdgeIdInterop ToInterop(this TransportDirectedEdgeId directedEdgeId)
 {
     return(new TransportDirectedEdgeIdInterop
     {
         CellKey = directedEdgeId.CellKey.ToInterop(),
         LocalDirectedEdgeId = directedEdgeId.LocalDirectedEdgeId,
         TransportNetworkType = directedEdgeId.NetworkType
     });
 }
예제 #4
0
        /// <summary>
        /// Static factory method to create an empty instance representing a null-reference to a TransportDirectedEdge
        /// </summary>
        /// <returns>The TransportDirectedEdgeId instance.</returns>
        public static TransportDirectedEdgeId MakeEmpty()
        {
            var emptyId = new TransportDirectedEdgeId
            {
                CellKey             = new TransportCellKey(),
                LocalDirectedEdgeId = -1,
                NetworkType         = TransportNetworkType.Road
            };

            return(emptyId);
        }
예제 #5
0
 public TransportPathfindOptions(
     TransportDirectedEdgeId directedEdgeIdA,
     TransportDirectedEdgeId directedEdgeIdB,
     double parameterizedPointOnEdgeA,
     double parameterizedPointOnEdgeB,
     bool uTurnAllowedAtA,
     bool uTurnAllowedAtB
     )
 {
     DirectedEdgeIdA           = directedEdgeIdA;
     DirectedEdgeIdB           = directedEdgeIdB;
     ParameterizedPointOnEdgeA = parameterizedPointOnEdgeA;
     ParameterizedPointOnEdgeB = parameterizedPointOnEdgeB;
     UTurnAllowedAtA           = uTurnAllowedAtA;
     UTurnAllowedAtB           = uTurnAllowedAtB;
 }
        /// <summary>
        /// Set the goal point from the given TransportPositionerPointOnGraph object.
        /// </summary>
        /// <param name="pointOnGraph">A TransportPositionerPointOnGraph object, for example as supplied by TransportPositioner.GetPointOnGraph()</param>
        /// <returns>This object, with the goal point set.</returns>
        public TransportPathfindOptionsBuilder SetPointOnGraphB(TransportPositionerPointOnGraph pointOnGraph)
        {
            if (pointOnGraph.IsMatched)
            {
                m_directedEdgeIdB           = pointOnGraph.DirectedEdgeId;
                m_parameterizedPointOnEdgeB = pointOnGraph.GetParameterOnDirectedEdge();
                m_isPointBSet = true;
            }
            else
            {
                m_directedEdgeIdB           = new TransportDirectedEdgeId();
                m_parameterizedPointOnEdgeB = 0.0;
                m_isPointBSet = false;
            }

            return(this);
        }