Exemplo n.º 1
0
        public void Intersections_Diagonal()
        {
            var shape = new InternalPath(new LinearLineSegment(new PointF(0, 0), new PointF(10, 10)), false);

            PointF[] buffer = shape.FindIntersections(new PointF(0, 10), new PointF(10, 0)).ToArray();

            Assert.Single(buffer);
            Assert.Equal(new PointF(5, 5), buffer[0]);
        }
        public void Intersections_Diagonal_and_straight_Hit()
        {
            InternalPath shape = new InternalPath(new LinearLineSegment(new PointF(0, 0), new PointF(4, 4)), false);

            PointF[] buffer = shape.FindIntersections(new PointF(3, 10), new PointF(3, 0)).ToArray();

            Assert.Single(buffer);
            Assert.Equal(new PointF(3, 3), buffer[0]);
        }
Exemplo n.º 3
0
        [InlineData(620, 150, 50, Pi)] // wrap about end of path
        public void PointOnPath(float distance, float expectedX, float expectedY, float expectedAngle)
        {
            InternalPath shape = Create(new PointF(50, 50), new Size(200, 60));
            SegmentInfo  point = shape.PointAlongPath(distance);

            Assert.Equal(expectedX, point.Point.X, 4);
            Assert.Equal(expectedY, point.Point.Y, 4);
            Assert.Equal(expectedAngle, point.Angle, 4);
        }
Exemplo n.º 4
0
        public void IndexOutoufRangeException()
        {
            var p = new InternalPath(new PointF[] { new Vector2(0, 0), new Vector2(0.000000001f, 0), new Vector2(0, 0.000000001f) }, true);

            IEnumerable <PointF> inter = p.FindIntersections(Vector2.One, Vector2.Zero);

            // if simplified to single point then we should never have an intersection
            Assert.Empty(inter);
        }
Exemplo n.º 5
0
        public void Intersections_Diagonal()
        {
            var shape = new InternalPath(new LinearLineSegment(new Vector2(0, 0), new Vector2(10, 10)), false);

            var buffer = shape.FindIntersections(new Vector2(0, 10), new Vector2(10, 0)).ToArray();

            Assert.Equal(1, buffer.Length);
            Assert.Equal(new Vector2(5, 5), buffer[0]);
        }
Exemplo n.º 6
0
        public void Intersections_Diagonal_and_straight_Hit()
        {
            var shape = new InternalPath(new LinearLineSegment(new Vector2(0, 0), new Vector2(4, 4)), false);

            var buffer = shape.FindIntersections(new Vector2(3, 10), new Vector2(3, 0)).ToArray();

            Assert.Equal(1, buffer.Length);
            Assert.Equal(new Vector2(3, 3), buffer[0]);
        }
Exemplo n.º 7
0
        public void Intersections_buffer()
        {
            InternalPath shape  = Create(new PointF(0, 0), new Size(10, 10));
            var          buffer = new PointF[shape.PointCount];
            int          hits   = shape.FindIntersections(new PointF(5, -10), new PointF(5, 20), buffer);

            Assert.Equal(2, hits);
            Assert.Equal(new PointF(5, 0), buffer[0]);
            Assert.Equal(new PointF(5, 10), buffer[1]);
        }
Exemplo n.º 8
0
        public void Intersections_enumerabe_openpath()
        {
            InternalPath shape = Create(new PointF(0, 0), new Size(10, 10), false);

            PointF[] buffer = shape.FindIntersections(new PointF(5, -10), new PointF(5, 20)).ToArray();

            Assert.Equal(2, buffer.Length);
            Assert.Equal(new PointF(5, 0), buffer[0]);
            Assert.Equal(new PointF(5, 10), buffer[1]);
        }
        void Start()
        {
            currentPath = new InternalPath()
            {
                halfHeight = halfHeight
            };

            terrain = GameManager.Instance.currentMainHandler.terrainHandler.MyTerrain;

            StartCoroutine(TestOnGround(1f));
        }
Exemplo n.º 10
0
        public void MultipleLineSegmentsSimplePathsAreMerged()
        {
            var seg1 = new LinearLineSegment(new PointF(0, 0), new PointF(2, 2));
            var seg2 = new LinearLineSegment(new PointF(4, 4), new PointF(5, 5));

            var path = new InternalPath(new ILineSegment[] { seg1, seg2 }, true);

            Assert.Contains(new PointF(0, 0), path.Points().ToArray());
            Assert.DoesNotContain(new PointF(2, 2), path.Points().ToArray());
            Assert.DoesNotContain(new PointF(4, 4), path.Points().ToArray());
            Assert.Contains(new PointF(5, 5), path.Points().ToArray());
        }
Exemplo n.º 11
0
        public void Bounds()
        {
            var seg1 = new LinearLineSegment(new Vector2(0, 0), new Vector2(2, 2));
            var seg2 = new LinearLineSegment(new Vector2(4, 4), new Vector2(5, 5));

            var path = new InternalPath(new ILineSegment[] { seg1, seg2 }, true);

            Assert.Equal(0, path.Bounds.Left);
            Assert.Equal(5, path.Bounds.Right);
            Assert.Equal(0, path.Bounds.Top);
            Assert.Equal(5, path.Bounds.Bottom);
        }
Exemplo n.º 12
0
        public void PointInPolygon_OpenPath()
        {
            LinearLineSegment seg1 = new LinearLineSegment(new PointF(0, 0), new PointF(0, 10), new PointF(10, 10), new PointF(10, 0));

            InternalPath p = new InternalPath(seg1, false);

            Assert.False(p.PointInPolygon(new PointF(5, 5)));

            InternalPath p2 = new InternalPath(seg1, true);

            Assert.True(p2.PointInPolygon(new PointF(5, 5f)));
        }
Exemplo n.º 13
0
        public void MultipleLineSegmentsSimplePathsAreMerged()
        {
            var seg1 = new LinearLineSegment(new Vector2(0, 0), new Vector2(2, 2));
            var seg2 = new LinearLineSegment(new Vector2(4, 4), new Vector2(5, 5));

            var path = new InternalPath(new ILineSegment[] { seg1, seg2 }, true);

            Assert.Equal(new Vector2(0, 0), path.Points[0]);
            Assert.Equal(new Vector2(2, 2), path.Points[1]);
            Assert.Equal(new Vector2(4, 4), path.Points[2]);
            Assert.Equal(new Vector2(5, 5), path.Points[3]);
        }
Exemplo n.º 14
0
        public void InternalPathLoosingSelfIntersectingPoint()
        {
            var line1      = new PointF[] { new Vector2(117f, 199f), new Vector2(31f, 210f), new Vector2(35f, 191f), new Vector2(117f, 199f), new Vector2(2f, 9f) };
            var path       = new InternalPath(new LinearLineSegment(line1), false);
            var pathPoints = path.Points();

            // all points must not be in the outline;
            foreach (var v in line1)
            {
                Assert.Contains(v, pathPoints);
            }
        }
Exemplo n.º 15
0
        public void PointInPolygon_OpenPath()
        {
            var seg1 = new LinearLineSegment(new Vector2(0, 0), new Vector2(0, 10), new Vector2(10, 10), new Vector2(10, 0));

            var p = new InternalPath(seg1, false);

            Assert.False(p.PointInPolygon(new Vector2(5, 5)));

            var p2 = new InternalPath(seg1, true);

            Assert.True(p2.PointInPolygon(new Vector2(5, 5f)));
        }
Exemplo n.º 16
0
        public void Bounds()
        {
            LinearLineSegment seg1 = new LinearLineSegment(new PointF(0, 0), new PointF(2, 2));
            LinearLineSegment seg2 = new LinearLineSegment(new PointF(4, 4), new PointF(5, 5));

            InternalPath path = new InternalPath(new ILineSegment[] { seg1, seg2 }, true);

            Assert.Equal(0, path.Bounds.Left);
            Assert.Equal(5, path.Bounds.Right);
            Assert.Equal(0, path.Bounds.Top);
            Assert.Equal(5, path.Bounds.Bottom);
        }
Exemplo n.º 17
0
        public void Intersections_IntersectionRule_Nonezero()
        {
            var shape = new InternalPath(new LinearLineSegment(
                                             new PointF(1, 3),
                                             new PointF(1, 2),
                                             new PointF(5, 2),
                                             new PointF(5, 5),
                                             new PointF(2, 5),
                                             new PointF(2, 1),
                                             new PointF(3, 1),
                                             new PointF(3, 4),
                                             new PointF(4, 4),
                                             new PointF(3, 4)), true);

            PointF[] buffer = shape.FindIntersections(new PointF(0, 2.5f), new PointF(6, 2.5f), IntersectionRule.Nonzero).ToArray();

            Assert.Equal(2, buffer.Length);
        }
Exemplo n.º 18
0
        protected override void CheckFolderStructure()
        {
            var data = Client.GetMetaData("/");

            if (!data.Contents.Any(x => x.Is_Dir && x.Name.ToLower() == InternalPath.ToLower()))
            {
                var newPath = string.Format(@"/{0}", InternalPath);
                Client.CreateFolder(newPath);
                Client.CreateFolder(string.Format(@"{0}/{1}", newPath, PhotoPath));
                Client.CreateFolder(string.Format(@"{0}/{1}", newPath, MemberPath));
                var readMeStream = GetReadmeStream();
                UploadFile("/", "readme.txt", readMeStream);
                readMeStream.Close();
            }

            if (!data.Contents.Any(x => x.Is_Dir && x.Name.ToLower() == ToPublishPath.ToLower()))
            {
                Client.CreateFolder(string.Format(@"/{0}", ToPublishPath));
            }
        }
Exemplo n.º 19
0
        protected override void CheckFolderStructure()
        {
            var data = Task.Run(() => Client.Files.ListFolderAsync(string.Empty)).Result;

            if (!data.Entries.Any(x => x.IsFolder && x.PathLower == InternalPath.ToLower()))
            {
                var newPath = string.Format(@"/{0}", InternalPath);
                Task.Run(() => Client.Files.CreateFolderAsync(newPath)).RunSynchronously();
                Task.Run(() => Client.Files.CreateFolderAsync(string.Format(@"{0}/{1}", newPath, PhotoPath))).RunSynchronously();
                Task.Run(() => Client.Files.CreateFolderAsync(string.Format(@"{0}/{1}", newPath, MemberPath))).RunSynchronously();
                var readMeStream = GetReadmeStream();
                UploadFile("/", "readme.txt", readMeStream);
                readMeStream.Close();
            }

            if (!data.Entries.Any(x => x.IsFolder && x.PathLower == ToPublishPath.ToLower()))
            {
                Task.Run(() => Client.Files.CreateFolderAsync(string.Format(@"/{0}", ToPublishPath)).RunSynchronously());
            }
        }
 public ConfigRole[] Path()
 {
     return(InternalPath.ToArray());
 }
Exemplo n.º 21
0
        private void GetFolderIds()
        {
            var folderItems = GetFolderInformation(AppRootFolder);

            if (!folderItems.Collection.Any())
            {
                return;
            }

            _toPublishFolderId = folderItems.Collection.First(f => f.Folder != null && f.Name.ToLower() == ToPublishPath.ToLower()).Id;
            var internPathId = folderItems.Collection.First(f => f.Folder != null && f.Name.ToLower() == InternalPath.ToLower()).Id;
            var folders      = GetFolderInformation("/drive/items/" + internPathId);

            _photosFolderId = folders.Collection.First(f => f.Folder != null && f.Name.ToLower() == PhotoPath.ToLower()).Id;
            _memberPathOrId = folders.Collection.First(f => f.Folder != null && f.Name.ToLower() == MemberPath.ToLower()).Id;
        }
Exemplo n.º 22
0
        protected override void CheckForGlitchFolder()
        {
            if (!string.IsNullOrEmpty(_glitchPathId))
            {
                return;
            }

            var folderItems = GetFolderInformation(AppRootFolder);

            if (!folderItems.Collection.Any())
            {
                return;
            }

            var internPathId = folderItems.Collection.First(f => f.Folder != null && f.Name.ToLower().Equals(InternalPath.ToLower())).Id;
            var folders      = GetFolderInformation("/drive/items/" + internPathId);
            var folder       = folders.Collection.FirstOrDefault(f => f.Folder != null && f.Name.ToLower().Equals(GlitchPath.ToLower()));

            _glitchPathId = folder == null?CreateFolder("drive/items/" + internPathId, GlitchPath).Id : folder.Id;
        }
Exemplo n.º 23
0
        public void PointInPolygon(TestPoint location, TestSize size, TestPoint point, bool isInside)
        {
            InternalPath shape = Create(location, size);

            Assert.Equal(isInside, shape.PointInPolygon(point));
        }
Exemplo n.º 24
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Polygon" /> class.
 /// </summary>
 /// <param name="segment">The segment.</param>
 public Polygon(ILineSegment segment)
 {
     this.innerPath      = new InternalPath(segment, true);
     this.pathCollection = new[] { this };
 }
Exemplo n.º 25
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Polygon"/> class.
 /// </summary>
 /// <param name="segments">The segments.</param>
 public Polygon(params ILineSegment[] segments)
 {
     this.innerPath      = new InternalPath(segments, true);
     this.pathCollection = new[] { this };
 }