// Token: 0x0600002E RID: 46 RVA: 0x00002644 File Offset: 0x00000844
        private static PointFlags clipFlagsToPointFlags(ClipFlags clipFlags)
        {
            PointFlags pointFlags = PointFlags.NONE;

            if ((clipFlags & ClipFlags.ClipLandStep) != ClipFlags.ClipNone)
            {
                pointFlags |= PointFlags.ONLAND;
            }
            else if ((clipFlags & ClipFlags.ClipLandUnder) != ClipFlags.ClipNone)
            {
                pointFlags |= PointFlags.UNDERLAND;
            }
            else if ((clipFlags & ClipFlags.ClipLandAbove) != ClipFlags.ClipNone)
            {
                pointFlags |= PointFlags.ABOVELAND;
            }
            else if ((clipFlags & ClipFlags.ClipLandKeep) != ClipFlags.ClipNone)
            {
                pointFlags |= PointFlags.KEEPLAND;
            }
            if ((clipFlags & ClipFlags.ClipDecalStep) != ClipFlags.ClipNone)
            {
                pointFlags |= PointFlags.DECAL;
            }
            else if ((clipFlags & ClipFlags.ClipDecalVertical) != ClipFlags.ClipNone)
            {
                pointFlags |= PointFlags.VDECAL;
            }
            if ((clipFlags & (ClipFlags)209715200) != ClipFlags.ClipNone)
            {
                pointFlags |= PointFlags.NOLIGHT;
            }
            else if ((clipFlags & (ClipFlags)212860928) != ClipFlags.ClipNone)
            {
                pointFlags |= PointFlags.FULLLIGHT;
            }
            else if ((clipFlags & (ClipFlags)211812352) != ClipFlags.ClipNone)
            {
                pointFlags |= PointFlags.HALFLIGHT;
            }
            else if ((clipFlags & (ClipFlags)210763776) != ClipFlags.ClipNone)
            {
                pointFlags |= PointFlags.AMBIENT;
            }
            if ((clipFlags & ClipFlags.ClipFogStep) != ClipFlags.ClipNone)
            {
                pointFlags |= PointFlags.NOFOG;
            }
            else if ((clipFlags & ClipFlags.ClipFogSky) != ClipFlags.ClipNone)
            {
                pointFlags |= PointFlags.SKYFOG;
            }
            int num = (int)((clipFlags & ClipFlags.ClipUserMask) / ClipFlags.ClipUserStep);

            return(pointFlags | (PointFlags)(65536 * num));
        }
Beispiel #2
0
        private static uint UpdateClipFlags(uint flags,
                                            ClipFlags clipFlags,
                                            float distance,
                                            float xExtent,
                                            float yExtent,
                                            float zExtent)
        {
            flags &= clipFlags.all;
            var d = distance + xExtent;

            if (d < 0)
            {
                flags &= (uint)(clipFlags.yFlags | clipFlags.zFlags);
                if (d + yExtent < 0)
                {
                    flags &= clipFlags.zFlags;
                }
                if (d + zExtent < 0)
                {
                    flags &= clipFlags.yFlags;
                }
            }
            d = distance + yExtent;
            if (d < 0)
            {
                flags &= (uint)(clipFlags.zFlags | clipFlags.xFlags);
                if (d + zExtent < 0)
                {
                    flags &= clipFlags.xFlags;
                }
            }
            d = distance + zExtent;
            if (d < 0)
            {
                flags &= (uint)(clipFlags.xFlags | clipFlags.yFlags);
            }
            return(flags);
        }