Example #1
0
 public Node(XYPT xypt, eMaterial material)
 {
     m_coord         = xypt;
     m_material      = material;
     m_segmentIDList = new List <int>();
     m_areaIDList    = new List <int>();
 }
Example #2
0
        public void PointInPolygontopleft()
        {
            XYPT    point4 = new XYPT(-2, 2);
            Polygon big    = new Polygon();

            big.AddPoint(new XYPT(-2, -2));
            big.AddPoint(new XYPT(2, -2));
            big.AddPoint(new XYPT(2, 2));
            big.AddPoint(new XYPT(-2, 2));

            Assert.AreEqual(true, big.PointInPolygon(point4));
        }
Example #3
0
        public void PointMustBeInPolygonLineTop()
        {
            XYPT    point4 = new XYPT(21, 40);
            Polygon big    = new Polygon();

            big.AddPoint(new XYPT(20, 20));
            big.AddPoint(new XYPT(40, 20));
            big.AddPoint(new XYPT(40, 40));
            big.AddPoint(new XYPT(20, 40));


            Assert.AreEqual(true, big.PointInPolygon(point4));
        }
Example #4
0
        public void PointMustNotBeInPolygonTriangle()
        {
            XYPT point4 = new XYPT(20, 0);

            Polygon big = new Polygon();

            big.AddPoint(new XYPT(20, 20));
            big.AddPoint(new XYPT(180, 0));
            big.AddPoint(new XYPT(80, 120));


            Assert.AreNotEqual(true, big.PointInPolygon(point4));
        }
Example #5
0
        public void PointInPolygonbotright()
        {
            XYPT point2 = new XYPT(2, -2);

            Polygon big = new Polygon();

            big.AddPoint(new XYPT(-2, -2));
            big.AddPoint(new XYPT(2, -2));
            big.AddPoint(new XYPT(2, 2));
            big.AddPoint(new XYPT(-2, 2));

            Assert.AreEqual(true, big.PointInPolygon(point2));
        }
Example #6
0
        public void PointInPolygon()
        {
            XYPT point1 = new XYPT(1.999999999, 1.999999999);

            Polygon big = new Polygon();

            big.AddPoint(new XYPT(-2, -2));
            big.AddPoint(new XYPT(2, -2));
            big.AddPoint(new XYPT(2, 2));
            big.AddPoint(new XYPT(-2, 2));

            Assert.AreEqual(true, big.PointInPolygon(point1));
        }
Example #7
0
        static void Main(string[] args)
        {
            XYPT    point = new XYPT(21, 40);
            Polygon big   = new Polygon();

            big.AddPoint(new XYPT(20, 20));
            big.AddPoint(new XYPT(40, 20));
            big.AddPoint(new XYPT(40, 40));
            big.AddPoint(new XYPT(20, 40));

            big.PointInPolygon(point);


            //foreach (var point in Unsorted.Points)
            //{
            //    Console.WriteLine(point.x + " " + point.y);
            //}

            Console.Read();
        }
Example #8
0
        private static Polygon MeshPolygonSequential(Polygon polygon)
        {
            Stopwatch st = new Stopwatch();

            st.Start();

            var tempPolygon = new Polygon();
            int xCount      = (int)((polygon.BoundingPoints[1].x - polygon.BoundingPoints[0].x) / MeshSize) + 1;
            int yCount      = (int)((polygon.BoundingPoints[1].y - polygon.BoundingPoints[0].y) / MeshSize) + 1;

            for (int j = 0; j < yCount; j++)
            {
                for (int i = 0; i < xCount; i++)
                {
                    XYPT currentPoint = new XYPT(polygon.BoundingPoints[0].x + i * MeshSize, polygon.BoundingPoints[0].y + j * MeshSize);

                    Polygon innerPoly = new Polygon();
                    innerPoly.AddPoint(currentPoint);
                    innerPoly.AddPoint(currentPoint + new XYPT(MeshSize, 0));
                    innerPoly.AddPoint(currentPoint + new XYPT(MeshSize, MeshSize));
                    innerPoly.AddPoint(currentPoint + new XYPT(0, MeshSize));

                    if (polygon.PolygonInPolygon(innerPoly, 0.7f))
                    {
                        foreach (var pt in innerPoly.Points)
                        {
                            tempPolygon.AddPoint(pt);
                        }
                    }
                }
            }
            st.Stop();
            string time          = (st.ElapsedMilliseconds / 1000).ToString();
            var    MeshedPolygon = new Polygon(tempPolygon.Points.Distinct().OrderBy(x => x.XX).ToList());

            return(MeshedPolygon);
        }