예제 #1
0
        public override void parseLayers()
        {
            RasterSymbologyBlock symbology_block = new RasterSymbologyBlock();

            symbology_block.LayerDivider      = readHalfWord();
            symbology_block.LayerLength       = readWord();
            symbology_block.LayerPacketCode   = readHalfWord();
            symbology_block.LayerPacketCode2  = readHalfWord();
            symbology_block.LayerPacketCode3  = readHalfWord();
            symbology_block.I_Coord_Start     = readHalfWord();
            symbology_block.J_Coord_Start     = readHalfWord();
            symbology_block.X_Scale_Int       = readHalfWord();
            symbology_block.X_Scale_Fraction  = readHalfWord();
            symbology_block.Y_Scale_Int       = readHalfWord();
            symbology_block.Y_Scale_Fraction  = readHalfWord();
            symbology_block.NumRows           = readHalfWord();
            symbology_block.PackingDescriptor = readHalfWord();
            symbology_block.Rows = new Row[symbology_block.NumRows];
            for (int i = 0; i < symbology_block.NumRows; i++)
            {
                var rowBytes = readHalfWord();
                symbology_block.Rows[i]       = new Row();
                symbology_block.Rows[i].Bytes = rowBytes;
                symbology_block.Rows[i].Data  = new int[0];
                for (int j = 0; j < rowBytes; j++)
                {
                    var tempColorValues = parseRLE();
                    symbology_block.Rows[i].Data = ArrayMerge.Merge(symbology_block.Rows[i].Data, tempColorValues);
                }
            }
            base.symbology_block = symbology_block;
        }
예제 #2
0
        public override void parseLayers()
        {
            RadialSymbologyBlock symbology_block = new RadialSymbologyBlock();

            symbology_block.LayerDivider              = readHalfWord();
            symbology_block.LayerLength               = readWord();
            symbology_block.LayerPacketCode           = readHalfWord();
            symbology_block.LayerIndexOfFirstRangeBin = readHalfWord();
            symbology_block.LayerNumberOfRangeBins    = readHalfWord();
            symbology_block.I_CenterOfSweep           = readHalfWord();
            symbology_block.J_CenterOFSweep           = readHalfWord();
            symbology_block.ScaleFactor               = readHalfWord() / 1000;
            symbology_block.NumberOfRadials           = readHalfWord();
            symbology_block.Radials = new Radial[symbology_block.NumberOfRadials];
            for (int i = 0; i < symbology_block.NumberOfRadials; i++)
            {
                int    bytes      = readHalfWord();
                double startangle = readHalfWord() / 10;
                double angledelta = readHalfWord() / 10;
                symbology_block.Radials[i]             = new Radial();
                symbology_block.Radials[i].StartAngle  = startangle;
                symbology_block.Radials[i].RadialBytes = bytes;
                symbology_block.Radials[i].AngleDelta  = angledelta;
                if (symbology_block.LayerPacketCode == -20705)
                {
                    symbology_block.Radials[i].ColorValues = new int[0];
                    symbology_block.Radials[i].Values      = new double[bytes];
                    for (int j = 0; j < bytes * 2; j++)
                    {
                        var tempcolorvalues = parseRLE();
                        symbology_block.Radials[i].ColorValues = ArrayMerge.Merge(symbology_block.Radials[i].ColorValues, tempcolorvalues);
                    }
                    symbology_block.Radials[i].Values = new double[symbology_block.Radials[i].ColorValues.Length];
                    for (int j = 0; j < symbology_block.Radials[i].ColorValues.Length; j++)
                    {
                        int value = description_block.Threshold[symbology_block.Radials[i].ColorValues[j]];
                        if (description_block.Mode == 1 && (description_block.Code >= 16 && description_block.Code <= 21))
                        {
                            value = ((int)(((double)value / 256.0) * 16));
                        }

                        symbology_block.Radials[i].Values[j] = value;
                    }
                }
                else if (symbology_block.LayerPacketCode == 16)
                {
                    double minval    = (double)description_block.Threshold[0] / 10;
                    double increment = (double)description_block.Threshold[1] / 10;
                    symbology_block.Radials[i].ColorValues = new int[bytes];
                    symbology_block.Radials[i].Values      = new double[bytes];
                    for (int j = 0; j < bytes; j++)
                    {
                        int value = readByte();
                        symbology_block.Radials[i].ColorValues[j] = value / 16;
                        if (value > 2)
                        {
                            symbology_block.Radials[i].Values[j] = (increment * (value - 2)) + minval;
                        }
                    }
                }
            }
            base.symbology_block = symbology_block;
        }
예제 #3
0
        static void Main(string[] args)
        {
            Transaction t1 = new Transaction("001", "8/10/2012", 78900.00);
            Transaction t2 = new Transaction("002", "9/10/2012", 451900.00);
            t1.showTransaction();
            t2.showTransaction();
            Console.ReadKey();

            Int32[] arrInt = new Int32[] { 7, 6, 9, 65, 8, 3, 5, 4 };

            Int32[] arrIntCopy = new Int32[arrInt.Length];
            //arrInt.CopyTo(arrIntCopy, 0);
            ArraySelection<Int32> arrIntSel = new ArraySelection<Int32>();
            arrInt.CopyTo(arrIntCopy, 0);
            arrIntSel.ElementsCollection = arrIntCopy;
            arrIntSel.Sort();
            Console.Write("array selection sort:\n");
            for (int i = 0; i < arrIntSel.ElementsCollection.Length; ++i)
            {
                Console.Write("{0} ", arrIntSel.ElementsCollection.GetValue(i).ToString());
            }
            Console.WriteLine();
            Console.ReadKey();

            ArrayInsert<Int32> arrIntIns = new ArrayInsert<Int32>();
            arrInt.CopyTo(arrIntCopy, 0);
            arrIntIns.ElementsCollection = arrIntCopy;
            arrIntIns.Sort();
            Console.Write("array Insert sort:\n");
            for (int i = 0; i < arrIntIns.ElementsCollection.Length; ++i)
            {
                Console.Write("{0} ", arrIntIns.ElementsCollection.GetValue(i).ToString());
            }
            Console.WriteLine();
            Console.ReadKey();

            ArrayBubble<Int32> arrIntBub = new ArrayBubble<Int32>();
            arrInt.CopyTo(arrIntCopy, 0);
            arrIntBub.ElementsCollection = arrIntCopy;
            arrIntBub.Sort();
            Console.Write("array Buble sort:\n");
            for (int i = 0; i < arrIntBub.ElementsCollection.Length; ++i)
            {
                Console.Write("{0} ", arrIntBub.ElementsCollection.GetValue(i).ToString());
            }
            Console.WriteLine();
            Console.ReadKey();

            ArrayShell<Int32> arrIntShe = new ArrayShell<Int32>();
            arrInt.CopyTo(arrIntCopy, 0);
            arrIntShe.ElementsCollection = arrIntCopy;
            arrIntShe.Sort();
            Console.Write("array Shell sort:\n");
            for (int i = 0; i < arrIntShe.ElementsCollection.Length; ++i)
            {
                Console.Write("{0} ", arrIntShe.ElementsCollection.GetValue(i).ToString());
            }
            Console.WriteLine();
            Console.ReadKey();

            ArrayMerge<Int32> arrIntMer = new ArrayMerge<Int32>();
            arrInt.CopyTo(arrIntCopy, 0);
            arrIntMer.ElementsCollection = arrIntCopy;
            arrIntMer.Sort();
            Console.Write("array Merge sort:\n");
            for (int i = 0; i < arrIntMer.ElementsCollection.Length; ++i)
            {
                Console.Write("{0} ", arrIntMer.ElementsCollection.GetValue(i).ToString());
            }
            Console.WriteLine();
            Console.ReadKey();

            ArrayQuick<Int32> arrIntQui = new ArrayQuick<Int32>();
            arrInt.CopyTo(arrIntCopy, 0);
            arrIntQui.ElementsCollection = arrIntCopy;
            arrIntQui.Sort();
            Console.Write("array Quick sort:\n");
            for (int i = 0; i < arrIntQui.ElementsCollection.Length; ++i)
            {
                Console.Write("{0} ", arrIntQui.ElementsCollection.GetValue(i).ToString());
            }
            Console.WriteLine();
            Console.ReadKey();

            ArrayHeap<Int32> arrIntHea = new ArrayHeap<Int32>();
            arrInt.CopyTo(arrIntCopy, 0);
            arrIntHea.ElementsCollection = arrIntCopy;
            arrIntHea.Sort();
            Console.Write("array Heap sort:\n");
            for (int i = 0; i < arrIntHea.ElementsCollection.Length; ++i)
            {
                Console.Write("{0} ", arrIntHea.ElementsCollection.GetValue(i).ToString());
            }
            Console.WriteLine();
            Console.ReadKey();
        }