BitMiracle.LibTiff.Classic.Tiff.fetchSubjectDistance C# (CSharp) Method

fetchSubjectDistance() private method

private fetchSubjectDistance ( TiffDirEntry dir ) : bool
dir TiffDirEntry
return bool
        private bool fetchSubjectDistance(TiffDirEntry dir)
        {
            if (dir.tdir_count != 1 || dir.tdir_type != TiffType.RATIONAL)
            {
                Tiff.WarningExt(this, m_clientdata, m_name,
                    "incorrect count or type for SubjectDistance, tag ignored");

                return false;
            }

            bool ok = false;

            byte[] b = new byte[2 * sizeof(int)];
            int read = fetchData(dir, b);
            if (read != 0)
            {
                int[] l = new int[2];
                l[0] = readInt(b, 0);
                l[1] = readInt(b, sizeof(int));

                float v;
                if (cvtRational(dir, l[0], l[1], out v))
                {
                    /*
                    * XXX: Numerator -1 means that we have infinite
                    * distance. Indicate that with a negative floating point
                    * SubjectDistance value.
                    */
                    ok = SetField(dir.tdir_tag, (l[0] != -1) ? v : -v);
                }
            }

            return ok;
        }
Tiff