Exemple #1
0
        } // CreateUniform

        static int GetCoverSide(Frame rc, int inflate)
        {
            long s = 0;

            if (rc.w > rc.h)
            {
                s = (long)rc.w;
            }
            else
            {
                s = (long)rc.h;
            }

            if (BitOps.IsPow2(s) && s <= MaxQuadSide && s >= MinQuadSide)
            {
                return((int)s);
            }

            s += inflate * 2;
            s  = BitOps.NextPow2(s);
            while (s < MinQuadSide)
            {
                s *= 2;
            }
            while (s > MaxQuadSide)
            {
                s /= 2;
            }
            return((int)s);
        }
Exemple #2
0
        private void spMaxQuadSide_ValueChanged(object sender, System.EventArgs e)
        {
            int val = (int)spMaxQuadSide.Value;

            if (BitOps.IsPow2((long)val))
            {
                return;
            }
            if (val > MaxQuadSide)
            {
                MaxQuadSide = (int)BitOps.NextPow2((long)val);
            }
            else
            {
                MaxQuadSide = (int)BitOps.PrevPow2((long)val);
            }
            if (MaxQuadSide > RectPartition.c_MaxQuadSide)
            {
                MaxQuadSide = RectPartition.c_MaxQuadSide;
            }
            spMaxQuadSide.Value = MaxQuadSide;
        }