void MyController:: windowControlKeyboardChanged(std::shared_ptr<tygra::Window> window, int key_index, bool down) { switch (key_index) { case tygra::kWindowKeyLeft: case 'A': if (down){ scene_->getCamera().aa_ = !scene_->getCamera().aa_; std::cerr << "pressed A " << scene_->getCamera().aa_ ? 1 : 0; std::cerr << std::endl; } // camera_move_speed_[0] = down ? 1.f : 0.f; break; case tygra::kWindowKeyRight: case 'D': camera_move_speed_[1] = down ? 1.f : 0.f; break; case tygra::kWindowKeyUp: case 'W': camera_move_speed_[2] = down ? 1.f : 0.f; break; case tygra::kWindowKeyDown: case 'S': camera_move_speed_[3] = down ? 1.f : 0.f; break; } updateCameraTranslation(); if (!down) return; switch (key_index) { case tygra::kWindowKeyF2: scene_->toggleCameraAnimation(); break; } }
void MyController:: windowControlKeyboardChanged(std::shared_ptr<tygra::Window> window, int key_index, bool down) { switch (key_index) { case tygra::kWindowKeyLeft: case 'A': camera_move_speed_[0] = down ? 1.f : 0.f; break; case tygra::kWindowKeyRight: case 'D': camera_move_speed_[1] = down ? 1.f : 0.f; break; case tygra::kWindowKeyUp: case 'W': camera_move_speed_[2] = down ? 1.f : 0.f; break; case tygra::kWindowKeyDown: case 'S': camera_move_speed_[3] = down ? 1.f : 0.f; break; } updateCameraTranslation(); if (!down) return; // Added keybinds to close the window, change the rendered normal vector line length, a toggels for: //the outline mode, render mode and whether or not to display the normal vector lines switch (key_index) { case tygra::kWindowKeyF1: scene_->toggleCameraAnimation(); break; case tygra::kWindowKeyF2: view_->EnableSpikey(); break; case tygra::kWindowKeyF3: view_->ToggleOutlineMode(); break; case tygra::kWindowKeyF4: view_->RenderMode(); break; case tygra::kWindowKeyF5: view_->ResetConsole(); break; case tygra::kWindowKeyEsc: window->close(); break; } switch (key_index) { case 'Q': view_->AddToLength(-0.1f); break; case 'E': view_->AddToLength(0.1f); break; case 'Z': view_->AddToSpecSmudge(-1.f); break; case 'C': view_->AddToSpecSmudge(1.f); break; } }
void MyController:: windowControlGamepadAxisMoved(std::shared_ptr<tygra::Window> window, int gamepad_index, int axis_index, float pos) { const float deadzone = 0.2f; const float rotate_speed = 3.f; switch (axis_index) { case tygra::kWindowGamepadAxisLeftThumbX: if (pos < -deadzone) { camera_move_speed_[0] = -pos; camera_move_speed_[1] = 0.f; } else if (pos > deadzone) { camera_move_speed_[0] = 0.f; camera_move_speed_[1] = pos; } else { camera_move_speed_[0] = 0.f; camera_move_speed_[1] = 0.f; } break; case tygra::kWindowGamepadAxisLeftThumbY: if (pos < -deadzone) { camera_move_speed_[3] = -pos; camera_move_speed_[2] = 0.f; } else if (pos > deadzone) { camera_move_speed_[3] = 0.f; camera_move_speed_[2] = pos; } else { camera_move_speed_[3] = 0.f; camera_move_speed_[2] = 0.f; } break; case tygra::kWindowGamepadAxisRightThumbX: if (pos < -deadzone || pos > deadzone) { camera_rotate_speed_[0] = -pos; } else { camera_rotate_speed_[0] = 0.f; } scene_->getCamera().setRotationalVelocity( glm::vec2(camera_rotate_speed_[0] * rotate_speed, camera_rotate_speed_[1] * rotate_speed)); break; case tygra::kWindowGamepadAxisRightThumbY: if (pos < -deadzone || pos > deadzone) { camera_rotate_speed_[1] = pos; } else { camera_rotate_speed_[1] = 0.f; } scene_->getCamera().setRotationalVelocity( glm::vec2(camera_rotate_speed_[0] * rotate_speed, camera_rotate_speed_[1] * rotate_speed)); break; } updateCameraTranslation(); }