private void Update()
        {
            if (Input.GetMouseButtonUp(0))
            {
                this.OnMainMouseButtonUp.Invoke();
            }

            if (Input.GetMouseButtonDown(0))
            {
                Vector2      mouseWorldPosition = GetMouseWorldPosition();
                RaycastHit2D hit = Physics2D.Raycast(mouseWorldPosition, Vector2.zero);
                if (hit.collider == null)
                {
                    return;
                }
            }
            else if (Input.GetMouseButton(0))
            {
                Vector2      mouseWorldPosition = GetMouseWorldPosition();
                RaycastHit2D hit = Physics2D.Raycast(mouseWorldPosition, Vector2.zero);

                if (hit.collider != this.colliderUnderMouse)
                {
                    if (hit.collider == null)
                    {
                        return;
                    }
                    this.colliderUnderMouse = hit.collider;
                    Milepost milepostUnderMouse = hit.collider.gameObject.GetComponent <Milepost>();
                    this.OnMouseDraggedOverMilepost.Invoke(milepostUnderMouse);
                }
            }
        }
Exemple #2
0
        public override async Task <RouteMilepostResult> Execute()
        {
            var requestContract = new MeasureToGeometry.RequestContract
            {
                Locations = new[] {
                    new MeasureToGeometry.RequestLocation {
                        Measure = Milepost.ToString(),
                        RouteId = Route
                    }
                },
                OutSr = Options.WkId
            };

            var requestUri = $"{BaseUrl}measureToGeometry{requestContract.QueryString}";

            HttpResponseMessage httpResponse;

            try
            {
                httpResponse = await App.HttpClient.GetAsync(requestUri);
            }
            catch (Exception ex)
            {
                ErrorMessage = ex.Message;

                return(null);
            }

            MeasureToGeometry.ResponseContract response;
            try
            {
                response = await httpResponse.Content.ReadAsAsync <MeasureToGeometry.ResponseContract>(new MediaTypeFormatter[]
                {
                    new TextPlainResponseFormatter()
                });
            }
            catch (Exception ex)
            {
                ErrorMessage = ex.Message;

                return(null);
            }

            if (!response.IsSuccessful)
            {
                return(null);
            }

            var result = ProcessResult(response);

            if (result is null)
            {
                return(null);
            }

            result.InputRouteMilePost = $"Route {Route} Milepost {Milepost}";

            return(result);
        }
Exemple #3
0
        } = new EnumArray <float, Location>();                                                                  // milepost location from both ends //

        //================================================================================================//
        /// <summary>
        /// Constructor
        /// </summary>

        public TrackCircuitMilepost(Milepost milepost, float nearEnd, float farEnd)
        {
            Milepost = milepost;
            MilepostLocation[Location.NearEnd] = nearEnd;
            MilepostLocation[Location.FarEnd]  = farEnd;
        }