コード例 #1
0
 bool ClipToolController::AddClipPointPart::doMouseClick(const InputState& inputState) {
     if (!inputState.mouseButtonsPressed(MouseButtons::MBLeft) ||
         !inputState.modifierKeysPressed(ModifierKeys::MKNone))
         return false;
     Vec3 temp;
     return m_callback->addClipPoint(inputState, temp);
 }
コード例 #2
0
 MoveObjectsToolController::MoveInfo MoveObjectsToolController::doStartMove(const InputState& inputState) {
     if (!inputState.modifierKeysPressed(ModifierKeys::MKNone) &&
         !inputState.modifierKeysPressed(ModifierKeys::MKAlt) &&
         !inputState.modifierKeysPressed(ModifierKeys::MKCtrlCmd) &&
         !inputState.modifierKeysPressed(ModifierKeys::MKCtrlCmd | ModifierKeys::MKAlt))
         return MoveInfo();
     
     const Model::PickResult& pickResult = inputState.pickResult();
     const Model::Hit& hit = pickResult.query().pickable().type(Model::Group::GroupHit | Model::Entity::EntityHit | Model::Brush::BrushHit).selected().first();
     if (!hit.isMatch())
         return MoveInfo();
     
     if (!m_tool->startMove(inputState))
         return MoveInfo();
     
     return MoveInfo(hit.hitPoint());
 }
コード例 #3
0
        bool UVRotateTool::doStartMouseDrag(const InputState& inputState) {
            assert(m_helper.valid());
            
            if (!inputState.modifierKeysPressed(ModifierKeys::MKNone) ||
                !inputState.mouseButtonsPressed(MouseButtons::MBLeft))
                return false;

            const Model::PickResult& pickResult = inputState.pickResult();
            const Model::Hit& angleHandleHit = pickResult.query().type(AngleHandleHit).occluded().first();

            if (!angleHandleHit.isMatch())
                return false;

            const Model::BrushFace* face = m_helper.face();
            const Mat4x4 toFace = face->toTexCoordSystemMatrix(Vec2f::Null, Vec2f::One, true);

            const Vec2f hitPointInFaceCoords(toFace * angleHandleHit.hitPoint());
            m_initalAngle = measureAngle(hitPointInFaceCoords) - face->rotation();

            MapDocumentSPtr document = lock(m_document);
            document->beginTransaction("Rotate Texture");
            
            return true;
        }
コード例 #4
0
 bool ResizeBrushesToolController::handleInput(const InputState& inputState) const {
     return ((inputState.modifierKeysPressed(ModifierKeys::MKShift) ||
              inputState.modifierKeysPressed(ModifierKeys::MKShift | ModifierKeys::MKCtrlCmd)) &&
             m_tool->applies());
 }
コード例 #5
0
 bool ClipToolController::AddClipPointPart::doMouseDoubleClick(const InputState& inputState) {
     if (!inputState.mouseButtonsPressed(MouseButtons::MBLeft) ||
         !inputState.modifierKeysPressed(ModifierKeys::MKNone))
         return false;
     return m_callback->setClipFace(inputState);
 }
コード例 #6
0
 bool CameraTool2D::look(const InputState& inputState) const {
     return (inputState.mouseButtonsPressed(MouseButtons::MBRight) &&
             inputState.modifierKeysPressed(ModifierKeys::MKNone));
 }