Exemple #1
0
        public void Test_FencePointTests_Creation_WithPt()
        {
            FencePoint fp  = new FencePoint(10.0, 20.0, 30.0);
            FencePoint fp2 = new FencePoint(fp);

            Assert.True(fp2.X == 10.0 && fp2.Y == 20.0 && fp.Z == 30.0, "Fence point not created as expected");
        }
Exemple #2
0
        /// <summary>
        /// Set up the interpolation state for processing of an epoch interval between two measurement epochs
        /// </summary>
        /// <param name="ClearInterpolators"></param>
        /// <param name="LeftInterpolationFence"></param>
        /// <param name="RightInterpolationFence"></param>
        /// <param name="LeftFence1"></param>
        /// <param name="LeftFence2"></param>
        /// <param name="RightFence1"></param>
        /// <param name="RightFence2"></param>
        /// <param name="Height1"></param>
        /// <param name="Height2"></param>
        /// <param name="Time1"></param>
        /// <param name="Time2"></param>
        /// <param name="ADataTime"></param>
        /// <param name="ADataLeft"></param>
        /// <param name="ADataRight"></param>
        private void SetupInterpolators(bool ClearInterpolators,
                                        Fence LeftInterpolationFence, Fence RightInterpolationFence,
                                        FencePoint LeftFence1, FencePoint LeftFence2,
                                        FencePoint RightFence1, FencePoint RightFence2,
                                        ref XYZ Height1, ref XYZ Height2,
                                        ref XYZ Time1, ref XYZ Time2,
                                        double ADataTime,
                                        XYZ ADataLeft, XYZ ADataRight)
        {
            if (ClearInterpolators)
            {
                for (int i = 0, limit = InterpolationFences.Length; i < limit; i++)
                {
                    InterpolationFences[i].Clear();
                }
            }

            if (ADataLeft.IsNull || ADataRight.IsNull)
            {
                // There is no data available to construct an interpolation context...
                return;
            }

            if (MachineWheelWidth > 0)
            {
                double DeltaX         = ADataRight.X - ADataLeft.X;
                double DeltaY         = ADataRight.Y - ADataLeft.Y;
                double WheelBaseWidth = Math.Sqrt(DeltaX * DeltaX + DeltaY * DeltaY);
                double Ratio          = MachineWheelWidth / WheelBaseWidth;

                if (Ratio >= 0.5)
                {
                    LeftFence1.SetXY(ADataLeft.X, ADataLeft.Y);
                    LeftFence2.SetXY(ADataRight.X, ADataRight.Y);
                    InterpolationFences[MachineSideConst.None].Add(LeftInterpolationFence); // machine side none
                }
                else
                {
                    LeftFence1.SetXY(ADataLeft.X, ADataLeft.Y);
                    LeftFence2.SetXY(ADataLeft.X + Ratio * DeltaX, ADataLeft.Y + Ratio * DeltaY);
                    InterpolationFences[MachineSideConst.Left].Add(LeftInterpolationFence); // machine side left

                    RightFence1.SetXY(ADataRight.X - Ratio * DeltaX, ADataRight.Y - Ratio * DeltaY);
                    RightFence2.SetXY(ADataRight.X, ADataRight.Y);
                    InterpolationFences[MachineSideConst.Right].Add(RightInterpolationFence); // machine side right
                }
            }
            else
            {
                LeftFence1.SetXY(ADataLeft.X, ADataLeft.Y);
                LeftFence2.SetXY(ADataRight.X, ADataRight.Y);
                InterpolationFences[MachineSideConst.None].Add(LeftInterpolationFence); // machine side none
            }

            Height1 = ADataLeft;
            Height2 = ADataRight;

            Time1 = new XYZ(ADataLeft.X, ADataLeft.Y, ADataTime);
            Time2 = new XYZ(ADataRight.X, ADataRight.Y, ADataTime);
        }
Exemple #3
0
        public void Test_FencePointTests_Creation_Base()
        {
            FencePoint fp = new FencePoint();

            //Assert.True(fp.X == Consts.NullDouble && fp.Y == Consts.NullDouble && fp.Z == Consts.NullDouble, "Fence point not created as expected");
            Assert.True(fp.X == 0.0 && fp.Y == 0.0 && fp.Z == 0.0, "Fence point not created as expected");
        }
Exemple #4
0
        public void Test_FencePointTests_SetXYZTest()
        {
            FencePoint fp = new FencePoint(10.0, 20.0, 30.0);

            fp.SetXYZ(100.0, 200.0, 300.0);

            Assert.True(fp.X == 100.0 && fp.Y == 200.0 && fp.Z == 300.0, "Fence point not created as expected");
        }
Exemple #5
0
        public void Test_FencePointTests_SetXYTest()
        {
            FencePoint fp = new FencePoint(10.0, 10.0);

            fp.SetXY(100.0, 200.0);

            Assert.True(fp.X == 100.0 && fp.Y == 200.0 && fp.Z == Consts.NullDouble, "Fence point not created as expected");
        }
Exemple #6
0
        public void Test_FencePointTests_Equals()
        {
            FencePoint fp1 = new FencePoint(10.0, 20.0, 30.0);
            FencePoint fp2 = new FencePoint(10.0, 20.0, 30.0);
            FencePoint fp3 = new FencePoint(100.0, 200.0, 300.0);

            Assert.True(fp1.Equals(fp2));
            Assert.False(fp1.Equals(fp3));
        }
Exemple #7
0
        public void Test_FencePointTests_Assign()
        {
            FencePoint fp1 = new FencePoint(10.0, 20.0, 30.0);
            FencePoint fp2 = new FencePoint(100.0, 200.0, 300.0);

            fp1.Assign(fp2);

            Assert.True(fp1.X == 100.0 && fp1.Y == 200.0 && fp1.Z == 300.0, "Fence point not assigned as expected");
        }
Exemple #8
0
        public void Test_FencePointTests_SameInPlan()
        {
            FencePoint fp1 = new FencePoint(10.0, 20.0, 30.0);
            FencePoint fp2 = new FencePoint(10.0, 20.0, 30.0);
            FencePoint fp3 = new FencePoint(10.0, 20.0, 300.0);
            FencePoint fp4 = new FencePoint(20.0, 30.0, 300.0);

            Assert.True(fp1.SameInPlan(fp2));
            Assert.True(fp1.SameInPlan(fp3));
            Assert.False(fp3.SameInPlan(fp4));
        }
Exemple #9
0
 public void MarkAsModifiedFencePoint(FencePoint item)
 {
 }
Exemple #10
0
    public IEnumerator GetOnFence()
    {
        transform.DOKill();
        speechBubble.SetActive(false);
        myAnimator.SetBool("isSitting", false);
        walkToFence             = true;
        transform.localPosition = new Vector3(transform.localPosition.x, startPoint.y, transform.localPosition.z);

        FencePoint fp = null;

        for (int i = 0; i < GameManager2.instance.fencePoints.Count; i++)
        {
            if (GameManager2.instance.fencePoints[i].occupant == null)
            {
                fp = GameManager2.instance.fencePoints[i];

                fp.occupant = GetComponent <Character>();
                //Vector3[] gaveUpPoints = { transform.localPosition, new Vector3(fp.transformPoint.position.x, transform.localPosition.y, transform.localPosition.z), new Vector3(GameManager2.instance.finalBoxes.transform.position.x, transform.localPosition.y, transform.localPosition.z) };
                //gaveUpWalkTween = transform.DOLocalPath(gaveUpPoints, WALK_SPEED).SetSpeedBased(true).SetEase(Ease.Linear);
                gaveUpWalkTween = transform.DOLocalMoveX(GameManager2.instance.finalBoxes.transform.position.x, 8f).SetSpeedBased(true).SetEase(Ease.Linear);


                gaveUpWalkTween.OnPlay(() =>
                {
                    // Debug.Log("walk to boxes started");
                    myAnimator.SetBool("isSitting", false);
                    if (closestSitSite != null)
                    {
                        mySpriteRenderer.sortingOrder = closestSitSite.sitPoints[sitPointIndex].zOrder;
                    }
                });

                //gaveUpWalkTween.OnWaypointChange((int index) => {
                //    if (index == 1)
                //    {
                //        gaveUpWalkTween.TogglePause();
                //        StartCoroutine(WaitInLine(i*4f));
                //    }
                //});

                gaveUpWalkTween.OnComplete(() =>
                {
                    // Debug.Log("walk to boxes finished");
                    gaveUpWalkTween = null;

                    transform.DOLocalMoveY(transform.localPosition.y + 7f, 15f).SetSpeedBased().SetEase(Ease.InExpo).SetDelay(0.25f).OnComplete(() => {
                        mySpriteRenderer.sortingLayerName = "Watching";
                        if (mySpriteRenderer.sortingOrder > 1)
                        {
                            mySpriteRenderer.sortingOrder = mySpriteRenderer.sortingOrder - 1;
                        }
                        transform.DOLocalMoveY(transform.localPosition.y + 7f, 15f).SetSpeedBased().SetEase(Ease.InExpo).SetDelay(0.25f).OnComplete(() => {
                            mySpriteRenderer.sortingLayerName = "Foreground";
                            if (mySpriteRenderer.sortingOrder > 1)
                            {
                                mySpriteRenderer.sortingOrder = mySpriteRenderer.sortingOrder - 1;
                            }
                            transform.DOLocalMoveY(GameManager2.instance.fencePointsParent.transform.localPosition.y, 15f).SetSpeedBased().SetEase(Ease.InExpo).SetDelay(0.25f).OnComplete(() => {
                                mySpriteRenderer.sortingLayerName = "Characters";
                                if (mySpriteRenderer.sortingOrder > 1)
                                {
                                    mySpriteRenderer.sortingOrder = mySpriteRenderer.sortingOrder - 1;
                                }
                                //iterate through available points and see which one's closest one that's still available and move to it.

                                if (i == Mathf.FloorToInt(GameManager2.instance.allFenceChars.Count / 2))
                                {
                                    Camera.main.transform.DOKill();
                                    Camera.main.transform.DOMoveX(GameManager2.instance.fencePoints[i].transformPoint.position.x, 5f).SetEase(Ease.InOutQuad);
                                }


                                moveOnFenceS = DOTween.Sequence();
                                moveOnFenceS.Append(transform.DOLocalRotate(new Vector3(0f, 0f, transform.localEulerAngles.z - 5f), 0.5f).SetLoops(100, LoopType.Yoyo).SetEase(Ease.Linear));
                                moveOnFenceS.Join(transform.DOLocalMoveX(fp.transformPoint.position.x, 8f * 1.75f).SetSpeedBased().SetEase(Ease.Linear).SetDelay(0.25f).OnComplete(OnFinishMovingToFencePoint));
                            });
                        });
                    });
                });

                break;
            }
        }



        yield return(new WaitForSeconds(1f));
    }
Exemple #11
0
 public override long SizeInCache()
 {
     return(Data.SizeInCache() +
            SpatialIndexOptimisedTriangles.Length * sizeof(int) +
            boundary.Sum(x => x.NumVertices * FencePoint.SizeOf()));
 }
Exemple #12
0
        public void Test_FencePointTests_Creation_WithXY()
        {
            FencePoint fp = new FencePoint(10.0, 20.0);

            Assert.True(fp.X == 10.0 && fp.Y == 20.0 && fp.Z == Consts.NullDouble, "Fence point not created as expected");
        }