# Keybinds and Controls

This guide will help you navigate and interact with the environment using your mouse and keyboard. Below are the keybindings organized into easy-to-read tables, along with detailed descriptions to enhance your experience.

## Table of Contents
- [Mouse Controls](#mouse-controls)
- [Keyboard Controls](#keyboard-controls)
  - [Camera Movement](#camera-movement)
  - [Camera Speed](#camera-speed)
  - [Simulation Controls](#simulation-controls)
  - [Additional Controls](#additional-controls)
  - [Preset Views](#preset-views)

## Mouse Controls

Use your mouse to control the camera's orientation and zoom level.

| **Action**                | **Keybind**                 | **Description**                                           |
|---------------------------|-----------------------------|-----------------------------------------------------------|
| **Orbit Camera**          | Left Mouse Button (Hold)    | Rotate the camera around a focal point by holding the left mouse button and moving the mouse. |
| **Rotate Camera**         | Right Mouse Button (Hold)   | Adjust the camera's rotation by holding the right mouse button and moving the mouse. |
| **Zoom In/Out**           | Mouse Scroll Wheel          | Scroll the wheel up to zoom in and scroll down to zoom out. |

## Keyboard Controls

### Camera Movement

Navigate the camera through the simulation using the following keys:

| **Action**           | **Keys**                           | **Description**                                           |
|----------------------|------------------------------------|-----------------------------------------------------------|
| **Move Forward**     | **W** or **Up Arrow**              | Moves the camera forward in the simulation space.         |
| **Move Left**        | **A** or **Left Arrow**            | Moves the camera to the left side.                        |
| **Move Backward**    | **S** or **Down Arrow**            | Moves the camera backward.                                |
| **Move Right**       | **D** or **Right Arrow**           | Moves the camera to the right side.                       |
| **Move Upward**      | **Q**                               | Raises the camera upward.                                 |
| **Move Downward**    | **E**                               | Lowers the camera downward.                               |

### Camera Speed

Adjust the speed of the camera movement to suit your preference:

| **Action**           | **Keybind**       | **Description**                                           |
|----------------------|-------------------|-----------------------------------------------------------|
| **Increase Speed**   | **Left Shift (Hold)** | Hold down the Left Shift key to move the camera faster.   |
| **Normal Speed**     | *Release Left Shift*  | Releases the Left Shift key to return to normal movement speed. |

### Simulation Controls

Manage the simulation state with these keybinds:

| **Action**           | **Keybind**       | **Description**                                           |
|----------------------|-------------------|-----------------------------------------------------------|
| **Pause/Resume**     | **Spacebar**      | Toggles between pausing and resuming the simulation.     |
| **Restart Simulation** | **R**           | Restarts the simulation from the beginning.               |
| **Toggle Configuration Panel** | **L** | Opens or closes the configuration selector panel for adjusting simulation settings. |

### Additional Controls

Enhance your interaction with the simulation using these additional keybinds:

| **Action**           | **Keybind**       | **Description**                                           |
|----------------------|-------------------|-----------------------------------------------------------|
| **Toggle Auto-Rotate** | **P**           | Enables or disables the camera's auto-rotate feature.     |
| **Quit Application** | **Esc**           | Exits the simulation application.                         |

### Preset Views

Quickly switch to predefined camera angles for different perspectives:

| **Action**           | **Keybind**       | **Description**                                           |
|----------------------|-------------------|-----------------------------------------------------------|
| **Preset View 1**    | **1**             | Switches to the first predefined camera view.             |
| **Preset View 2**    | **2**             | Switches to the second predefined camera view.            |
| **Preset View 3**    | **3**             | Switches to the third predefined camera view.             |
| **Preset View 4**    | **4**             | Switches to the fourth predefined camera view.            |
| **Preset View 5**    | **5**             | Switches to the fifth predefined camera view.             |
| **Preset View 6**    | **6**             | Switches to the sixth predefined camera view.             |

*Note: The implementation for preset views may be added in future updates.*

## Tips for Effective Navigation

- **Combining Controls**: Feel free to combine mouse and keyboard controls for a more dynamic navigation experience. For example, hold the **Left Shift** key while moving the camera forward with the **W** key for faster traversal.
- **Pausing for Adjustments**: Use the **Spacebar** to pause the simulation, allowing you to adjust camera angles or settings without interruption.
- **Exploring Views**: Utilize the preset views to quickly jump to different perspectives, making it easier to explore various aspects of the simulation.

Happy simming!