bool LandscapeEditorBase::Input(DAVA::UIEvent *touch) { Vector2 point; bool isIntersect = GetLandscapePoint(touch->point, point); point.x = (float32)((int32)point.x); point.y = (float32)((int32)point.y); landscapePoint = point; UpdateCursor(); if(INVALID_TOUCH_ID == touchID || touchID == touch->tid) { if(UIEvent::BUTTON_1 == touch->tid) { inverseDrawingEnabled = IsKeyModificatorPressed(DVKEY_ALT); if(UIEvent::PHASE_BEGAN == touch->phase) { touchID = touch->tid; if(isIntersect) { prevDrawPos = Vector2(-100, -100); InputAction(touch->phase, isIntersect); } return true; } else if(UIEvent::PHASE_DRAG == touch->phase) { InputAction(touch->phase, isIntersect); if(!isIntersect) { prevDrawPos = Vector2(-100, -100); } return true; } else if(UIEvent::PHASE_ENDED == touch->phase || UIEvent::PHASE_CANCELLED == touch->phase) { touchID = INVALID_TOUCH_ID; if(isIntersect) { InputAction(touch->phase, isIntersect); prevDrawPos = Vector2(-100, -100); } return true; } } } return false; }
bool LandscapeEditorBase::Input(DAVA::UIEvent *touch) { Vector2 point; bool isIntersect = GetLandscapePoint(touch->point, point); point.x = (int32)point.x; point.y = (int32)point.y; landscapePoint = point; UpdateCursor(); if(INVALID_TOUCH_ID == touchID || touchID == touch->tid) { if(UIEvent::BUTTON_1 == touch->tid) { inverseDrawingEnabled = InputSystem::Instance()->GetKeyboard()->IsKeyPressed(DVKEY_ALT); if(UIEvent::PHASE_BEGAN == touch->phase) { touchID = touch->tid; if(isIntersect) { prevDrawPos = Vector2(-100, -100); InputAction(touch->phase, isIntersect); } return true; } else if(UIEvent::PHASE_DRAG == touch->phase) { InputAction(touch->phase, isIntersect); if(!isIntersect) { prevDrawPos = Vector2(-100, -100); } return true; } else if(UIEvent::PHASE_ENDED == touch->phase || UIEvent::PHASE_CANCELLED == touch->phase) { touchID = INVALID_TOUCH_ID; if(isIntersect) { InputAction(touch->phase, isIntersect); prevDrawPos = Vector2(-100, -100); } return true; } } } if(UIEvent::PHASE_KEYCHAR == touch->phase) { if(DVKEY_Z == touch->tid && InputSystem::Instance()->GetKeyboard()->IsKeyPressed(DVKEY_CTRL)) { UndoAction(); return true; } if(DVKEY_Z == touch->tid && InputSystem::Instance()->GetKeyboard()->IsKeyPressed(DVKEY_SHIFT)) { RedoAction(); return true; } } return false; }