Ejemplo n.º 1
0
 private void PrintIFICorners(IFI_Perimeter perm)
 {
     Console.WriteLine("IFI Corners: ");
     Console.WriteLine("North East Corner: {0}", perm.NE_corner);
     Console.WriteLine("North west Corner: {0}", perm.NW_corner);
     Console.WriteLine("Press Enter to Continue: ");
     Console.ReadKey();
 }
Ejemplo n.º 2
0
        private IFI_Perimeter CalculateCenter(IFI_Perimeter perm)
        {
            double x1, x2, y1, y2;

            if (!(perm.Corner1.Item1.Equals(perm.Corner2.Item1)) && !(perm.Corner1.Item2.Equals(perm.Corner2.Item2)))
            {
                x1 = perm.Corner1.Item1;
                x2 = perm.Corner2.Item1;

                y1 = perm.Corner1.Item2;
                y2 = perm.Corner2.Item2;
            }

            else if (!(perm.Corner1.Item1.Equals(perm.Corner3.Item1)) && !(perm.Corner1.Item2.Equals(perm.Corner3.Item2)))

            //Corrected

            {
                x1 = perm.Corner1.Item1;
                x2 = perm.Corner3.Item1;

                y1 = perm.Corner1.Item2;
                y2 = perm.Corner3.Item2;
            }
            else
            {
                x1 = perm.Corner1.Item1;
                x2 = perm.Corner4.Item1;

                y1 = perm.Corner1.Item2;
                y2 = perm.Corner4.Item2;
            }

            var Width  = x2 - x1;
            var Height = y2 - y1;
            var x0     = x2;
            var y0     = y2;

            //KB NOTE: Extra variables added to identify fixed corner (NE corner) and then to be used in finding center consistently.
            if (Width < 0)
            {
                Width = Width * -1;
                x0    = x1;
            }
            if (Height < 0)
            {
                Height = Height * -1;
                y0     = y1;
            }


            // KB NOTE: changed perm.Center so that it is always calculated from NE corner (largest x and largest y in block)
            perm.Center = new Tuple <double, double>((x0 - (Width / 2)), (y0 - (Height / 2)));
            perm.Height = Height;
            perm.Width  = Width;

            return(perm);
        }
Ejemplo n.º 3
0
        private void Write_to_file(IFI_Perimeter perm)
        {
            string current_directory = Directory.GetCurrentDirectory();
            string mydocpath         = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

            using (StreamWriter outputFile = new StreamWriter(current_directory + @"\Output.txt"))
            {
                outputFile.Write("perm SECTION VALUES ");
                outputFile.Write(Environment.NewLine);

                outputFile.Write("====================");
                outputFile.Write(Environment.NewLine);

                outputFile.Write("Corner 1: {0} ", p_perm.Corner1);
                outputFile.Write(Environment.NewLine
                                 );

                outputFile.Write("Corner 2: {0} ", p_perm.Corner2);
                outputFile.Write(Environment.NewLine);

                outputFile.Write("Corner 3: {0} ", p_perm.Corner3);
                outputFile.Write(Environment.NewLine);

                outputFile.Write("Corner 4: {0} ", p_perm.Corner4);
                outputFile.Write(Environment.NewLine);

                outputFile.Write("Center : {0}", p_perm.Center);
                outputFile.Write(Environment.NewLine);

                outputFile.Write("perm Dimensions: ");
                outputFile.Write(Environment.NewLine);

                outputFile.Write("==================");
                outputFile.Write(Environment.NewLine);

                outputFile.Write("Width: {0}", p_perm.Width);
                outputFile.Write(Environment.NewLine);

                outputFile.Write("Height: {0}", p_perm.Height);
                outputFile.Write(Environment.NewLine);


                outputFile.Write("IFI Values:");
                outputFile.Write(Environment.NewLine);

                outputFile.Write("============");
                outputFile.Write(Environment.NewLine);

                outputFile.Write("Corner 1: {0}", IFI_Boarder.Corner1);
                outputFile.Write(Environment.NewLine);

                outputFile.Write("Corner 2: {0}", IFI_Boarder.Corner2);
                outputFile.Write(Environment.NewLine);

                outputFile.Write("Corner 3: {0}", IFI_Boarder.Corner3);
                outputFile.Write(Environment.NewLine);

                outputFile.Write("Corner 4: {0}", IFI_Boarder.Corner4);
                outputFile.Write(Environment.NewLine);


                outputFile.Write("IFI Dimensions: ");
                outputFile.Write(Environment.NewLine);

                outputFile.Write("==================");
                outputFile.Write(Environment.NewLine);

                outputFile.Write("Width: {0}", IFI_Boarder.Width);
                outputFile.Write(Environment.NewLine);

                outputFile.Write("Height: {0}", IFI_Boarder.Height);
                outputFile.Write(Environment.NewLine);


                outputFile.Write("Panel/Entities Values:");
                outputFile.Write(Environment.NewLine);

                outputFile.Write("======================");
                outputFile.Write(Environment.NewLine);


                int count2 = 0;
                foreach (var x in PanelList)
                {
                    outputFile.Write("Panel Number {0}: ", count2);
                    outputFile.Write(Environment.NewLine);

                    outputFile.Write("X value: {0}", x.Xvalue.ToString());
                    outputFile.Write(Environment.NewLine);

                    outputFile.Write("Y Value: {0} ", x.Yvalue.ToString());
                    outputFile.Write(Environment.NewLine);

                    outputFile.Write("Center Value: {0}", x.Center.ToString());
                    outputFile.Write(Environment.NewLine);

                    outputFile.Write("Panel NE_Zone: {0}", x.NE_Zone.ToString());
                    outputFile.Write(Environment.NewLine);

                    outputFile.Write("neighborhood panels: ", x.NeighborHood.ToString());
                    outputFile.Write(Environment.NewLine);


                    count2 += 1;
                }

                outputFile.Write("IFI Corners: ");
                outputFile.Write(Environment.NewLine);

                outputFile.Write("North East Corner: {0}", perm.NE_corner);
                outputFile.Write(Environment.NewLine);

                outputFile.Write("North west Corner: {0}", perm.NW_corner);
                outputFile.Write(Environment.NewLine);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Function to organize corners of each perm
        /// c1 = NW corner
        /// c2 = NE corner
        /// c3 = SW corner
        /// c4 = SE corner
        /// </summary>

        private void SetCorners(IFI_Perimeter perm)
        {
            List <Tuple <double, double> > corner_list = new List <Tuple <double, double> >();

            corner_list.Add(perm.Corner1);
            corner_list.Add(perm.Corner2);
            corner_list.Add(perm.Corner3);
            corner_list.Add(perm.Corner4);
            var max_x = corner_list[0].Item1;
            var max_y = corner_list[0].Item2;
            var min_x = corner_list[0].Item1;

            foreach (var x in corner_list)
            {
                if (x.Item1 >= max_x)
                {
                    max_x = x.Item1;
                }
                if (x.Item2 >= max_y)
                {
                    max_y = x.Item2;
                }
                if (x.Item1 <= min_x)
                {
                    min_x = x.Item1;
                }
            }
            if ((perm.Corner1.Item1 == max_x) && (perm.Corner1.Item2 == max_y))
            {
                perm.NW_corner = perm.Corner1;
            }
            else if ((perm.Corner2.Item1 == max_x) && (perm.Corner2.Item2 == max_y))
            {
                perm.NW_corner = perm.Corner2;
            }
            else if ((perm.Corner3.Item1 == max_x) && (perm.Corner3.Item2 == max_y))
            {
                perm.NW_corner = perm.Corner3;
            }
            else
            {
                perm.NW_corner = perm.Corner4;
            }

            if ((perm.Corner1.Item1 == min_x) && (perm.Corner1.Item2 == max_y))
            {
                perm.NE_corner = perm.Corner1;
            }
            else if ((perm.Corner2.Item1 == min_x) && (perm.Corner2.Item2 == max_y))
            {
                perm.NE_corner = perm.Corner2;
            }
            else if ((perm.Corner3.Item1 == min_x) && (perm.Corner3.Item2 == max_y))
            {
                perm.NE_corner = perm.Corner3;
            }
            else
            {
                perm.NE_corner = perm.Corner4;
            }

            return;
        }