Esempio n. 1
0
        public void SetEye(Vector3 eye)
        {
            ImageArray imageArray = (ImageArray)Image;

            for (int level = 0; level < imageArray.Depth; level++)
            {
                float   levelScale = (float)(1 << (level + 1));
                Vector2 offset     = eye.Xy / levelScale;

                Index2D index = GetInitialIndex(imageArray[level], Image.Size.Width);
                index.Offset((int)offset.X, (int)offset.Y);

                Region2D bounds = imageArray[level].Bounds;

                if (bounds.Index != index)
                {
                    imageArray[level].Bounds = new Region2D(index, bounds.Size);
                    Dirty(level);
                }
            }
        }
Esempio n. 2
0
        public static Index2D[] GetCircumIndices(Index2D centerIndex)
        {
            var circumIndices = new Index2D[]
            {
                centerIndex.Offset(0,2),
                centerIndex.Offset(1,1),
                centerIndex.Offset(1,-1),
                centerIndex.Offset(0,-2),
                centerIndex.Offset(-1,-1),
                centerIndex.Offset(-1,1)
            };

            return circumIndices;
        }