bool MgCmdDrawGrid::touchBegan(const MgMotion* sender) { if (m_step == 0) { return MgCmdDrawRect::touchBegan(sender); } m_step = 3; return _touchBegan(sender); }
bool MgCmdDrawRect::touchBegan(const MgMotion* sender) { m_step = 1; m_startPt = snapPoint(sender, true); ((MgBaseRect*)dynshape()->shape())->setRect2P(m_startPt, m_startPt); dynshape()->shape()->update(); return _touchBegan(sender); }
bool MgCmdDrawFreeLines::touchBegan(const MgMotion* sender) { ((MgBaseLines*)dynshape()->shape())->resize(2); m_step = 1; dynshape()->shape()->setPoint(0, sender->startPointM); dynshape()->shape()->setPoint(1, sender->pointM); dynshape()->shape()->update(); return _touchBegan(sender); }
bool MgCmdParallelogram::touchBegan(const MgMotion* sender) { if (0 == m_step) { m_step = 1; for (int i = 0; i < 4; i++) { dynshape()->shape()->setPoint(i, sender->pointM); } } else { dynshape()->shape()->setHandlePoint(m_step, snapPoint(sender), 0); } dynshape()->shape()->update(); return _touchBegan(sender); }
bool MgCmdDrawLines::touchBegan(const MgMotion* sender) { if (0 == m_step) { m_step = 1; Point2d pnt(snapPoint(sender, true)); ((MgBaseLines*)dynshape()->shape())->resize(2); dynshape()->shape()->setPoint(0, pnt); dynshape()->shape()->setPoint(1, pnt); } else { dynshape()->shape()->setPoint(m_step, snapPoint(sender)); } dynshape()->shape()->update(); return _touchBegan(sender); }
bool MgCommandDraw::_touchBegan2(const MgMotion* sender) { if (0 == m_step) { m_step = 1; Point2d pnt(snapPoint(sender, true)); for (int i = dynshape()->shape()->getPointCount() - 1; i >= 0; i--) { dynshape()->shape()->setPoint(i, pnt); } setStepPoint(0, pnt); } else { setStepPoint(m_step, snapPoint(sender)); } dynshape()->shape()->update(); return _touchBegan(sender); }
bool MgCmdDrawTriangle::touchBegan(const MgMotion* sender) { MgBaseLines* lines = (MgBaseLines*)dynshape()->shape(); if (0 == m_step) { m_step = 1; lines->setClosed(true); lines->resize(3); Point2d pnt(snapPoint(sender, true)); for (int i = 0; i < 3; i++) { dynshape()->shape()->setPoint(i, pnt); } } else { dynshape()->shape()->setPoint(m_step, snapPoint(sender)); } dynshape()->shape()->update(); return _touchBegan(sender); }
bool MgCmdDrawSplines::touchBegan(const MgMotion* sender) { MgBaseLines* lines = (MgBaseLines*)dynshape()->shape(); if (m_step > 0 && !m_freehand) { m_step++; if (m_step >= dynshape()->shape()->getPointCount()) { lines->addPoint(sender->pointM); dynshape()->shape()->update(); } return _touchMoved(sender); } else { lines->resize(2); m_freehand = !sender->pressDrag; m_step = 1; dynshape()->shape()->setPoint(0, sender->startPointM); dynshape()->shape()->setPoint(1, sender->pointM); dynshape()->shape()->update(); return _touchBegan(sender); } }