public static float GetClipPlanePosition(ClipPlaneType plane)
        {
            float pos = 0;

            switch(plane)
            {
                case ClipPlaneType.XMIN:
                    pos = clipVertices[24].Position.X;
                    break;

                case ClipPlaneType.XPLUS:
                    pos = clipVertices[16].Position.X;
                    break;

                case ClipPlaneType.YMIN:
                    pos = clipVertices[8].Position.Y;
                    break;

                case ClipPlaneType.YPLUS:
                    pos = clipVertices[0].Position.Y;
                    break;

                case ClipPlaneType.ZMIN:
                    pos = clipVertices[32].Position.Z;
                    break;

                case ClipPlaneType.ZPLUS:
                    pos = clipVertices[40].Position.Z;
                    break;
            }

            return pos;
        }
        /// <summary>
        /// Przesuwa płaszczyzny obcinające
        /// </summary>
        /// <param name="plane">Która płaszczyzna jest przesuwana</param>
        /// <param name="value">Wartość przesunięcia w jednostkach sceny</param>
        public void ShiftClipPlane(ClipPlaneType plane, float value)
        {
            int i = -1;

            switch(plane)
            {
                case ClipPlaneType.XMIN:
                    i = 16;
                    break;

                case ClipPlaneType.XPLUS:
                    i = 24;
                    break;

                case ClipPlaneType.YMIN:
                    i = 0;
                    break;

                case ClipPlaneType.YPLUS:
                    i = 8;
                    break;

                case ClipPlaneType.ZMIN:
                    i = 40;
                    break;

                case ClipPlaneType.ZPLUS:
                    i = 32;
                    break;
            }

            int j = i + 8;
            if(i == 0)
            {
                float newValue = clipVertices[i].Position.Y + value;
                if(newValue < clipVertices[i + 8].Position.Y)
                {
                    value = clipVertices[i + 8].Position.Y - clipVertices[i].Position.Y;
                }
                for(; i < j; ++i)
                {
                    clipVertices[i].Position.Y += value;
                }
            }
            else if(i == 8)
            {
                float newValue = clipVertices[i].Position.Y + value;
                if(newValue > clipVertices[i - 8].Position.Y)
                {
                    value = clipVertices[i - 8].Position.Y - clipVertices[i].Position.Y;
                }
                for(; i < j; ++i)
                {
                    clipVertices[i].Position.Y += value;
                }
            }
            else if(i == 16)
            {
                float newValue = clipVertices[i].Position.X + value;
                if(newValue < clipVertices[i + 8].Position.X)
                {
                    value = clipVertices[i + 8].Position.X - clipVertices[i].Position.X;
                }
                for(; i < j; ++i)
                {
                    clipVertices[i].Position.X += value;
                }
            }
            else if(i == 24)
            {
                float newValue = clipVertices[i].Position.X + value;
                if(newValue > clipVertices[i - 8].Position.X)
                {
                    value = clipVertices[i - 8].Position.X - clipVertices[i].Position.X;
                }
                for(; i < j; ++i)
                {
                    clipVertices[i].Position.X += value;
                }
            }
            else if(i == 32)
            {
                float newValue = clipVertices[i].Position.Z + value;
                if(newValue > clipVertices[i + 8].Position.Z)
                {
                    value = clipVertices[i + 8].Position.Z - clipVertices[i].Position.Z;
                }
                for(; i < j; ++i)
                {
                    clipVertices[i].Position.Z += value;
                }
            }
            else if(i == 40)
            {
                float newValue = clipVertices[i].Position.Z + value;
                if(newValue < clipVertices[i - 8].Position.Z)
                {
                    value = clipVertices[i - 8].Position.Z - clipVertices[i].Position.Z;
                }
                for(; i < j; ++i)
                {
                    clipVertices[i].Position.Z += value;
                }
            }
        }