Example #1
0
        internal override TiffInfoCollection toInfoCollection()
        {
            StkInfoCollection infoC = new StkInfoCollection(Convert.ToUInt32(numPlane), base.toInfoCollection());

            TiffDirData uic2test = search(StkInfoCollection.UIC2Tag);

            if (uic2test == null || UIC2data == null)
            {
                return(infoC);
            }

            uint[] uicContent = (uint[])UIC2data.getContent();
            if (uicContent.Length < 6 * numPlane)
            {
                return(infoC);
            }

            for (int i = 0; i < numPlane; i++)
            {
                infoC.setZdistance(uicContent[6 * i], uicContent[6 * i + 1], i);
                infoC.setCreationDatetime(uicContent[6 * i + 2], uicContent[6 * i + 3], i);
                infoC.setModifiedDatetime(uicContent[6 * i + 4], uicContent[6 * i + 5], i);
            }

            TiffDirData uic3test = search(StkInfoCollection.UIC3Tag);

            if (uic3test != null && UIC3data != null)
            {
                uicContent = (uint[])UIC3data.getContent();
                if (uicContent.Length < 2 * numPlane)
                {
                    return(infoC);
                }

                for (int i = 0; i < numPlane; i++)
                {
                    infoC.setWavelength(uicContent[2 * i], uicContent[2 * i + 1], i);
                }
            }

            TiffDirData uic4test = search(StkInfoCollection.UIC4Tag);

            if (uic4test != null && UIC4data != null && UIC4data.Count > 0)
            {
                foreach (KeyValuePair <ushort, TiffData[]> pair in UIC4data)
                {
                    if (pair.Value.Length != numPlane)
                    {
                        continue;
                    }
                    TiffInfo[] temp = new TiffInfo[numPlane];
                    for (int j = 0; j < numPlane; j++)
                    {
                        temp[j] = new TiffInfo(StkInfoCollection.UIC4Tag, "UIC4", (pair.Value)[j]);
                    }
                    infoC.forceAddUIC4Data(pair.Key, temp);
                }
            }

            TiffDirData uic1test = search(StkInfoCollection.UIC1Tag);

            if (uic1test != null && UIC1data != null && UIC1data.Count > 0)
            {
                foreach (KeyValuePair <uint, TiffData[]> pair in UIC1data)
                {
                    TiffInfo[] uic1info = new TiffInfo[pair.Value.Length];
                    for (int i = 0; i < pair.Value.Length; i++)
                    {
                        uic1info[i] = new TiffInfo(StkInfoCollection.UIC1Tag, "UIC1", pair.Value[i]);
                    }
                    infoC.forceAddUIC1Data(pair.Key, uic1info);
                }
            }

            return(infoC);
        }