Exemple #1
0
        bool VertexAtBoundary(OECPVertex vtx, RectangleF square)
        {
            var leftLine  = new OECPLine(new OECPVertex(square.Left, square.Top), new OECPVertex(square.Left, square.Bottom), true);
            var rightLine = new OECPLine(new OECPVertex(square.Right, square.Top), new OECPVertex(square.Right, square.Bottom), true);
            var topLine   = new OECPLine(new OECPVertex(square.Left, square.Top), new OECPVertex(square.Right, square.Top), true);
            var botLine   = new OECPLine(new OECPVertex(square.Left, square.Bottom), new OECPVertex(square.Right, square.Bottom), true);

            bool onLeft = leftLine.VertexOnLine(vtx);

            if (onLeft)
            {
                _projVtx = leftLine.GetProjectVertex(vtx);
                return(true);
            }
            bool onRight = rightLine.VertexOnLine(vtx);

            if (onRight)
            {
                _projVtx = rightLine.GetProjectVertex(vtx);
                return(true);
            }
            bool onTop = topLine.VertexOnLine(vtx);

            if (onTop)
            {
                _projVtx = topLine.GetProjectVertex(vtx);
                return(true);
            }
            bool onBot = botLine.VertexOnLine(vtx);

            if (onBot)
            {
                _projVtx = botLine.GetProjectVertex(vtx);
                return(true);
            }
            return(false);
        }