Beispiel #1
0
void Ellipse::process(Canvas &canvasMain, Canvas &canvasTemp,
    const MouseState &mouse, const PaintParameters &param)
{
    canvasTemp.clear();
    if (!m_leftClicked && mouse.isLeftPressed())
    {
        if (mouse.isOnCanvas())
        {
            m_ellipseStart = mouse.getPos();
            m_ellipseStart -= canvasMain.getPos();
            m_startOnCanvas = true;
        }
        else
        {
            m_startOnCanvas = false;
        }
    }
    else if (m_leftClicked && mouse.isLeftPressed() && m_startOnCanvas)
    {
        m_ellipseEnd = mouse.getPos();
        m_ellipseEnd -= canvasMain.getPos();
        drawEllipse(*canvasTemp.ptr(), m_ellipseStart, m_ellipseEnd, param);
    }
    else if (m_leftClicked && !mouse.isLeftPressed() && m_startOnCanvas)
    {
        drawEllipse(*canvasMain.ptr(), m_ellipseStart, m_ellipseEnd, param);
    }
    m_leftClicked = mouse.isLeftPressed();
}