# TerraVisor

TerraVisor is a 3D visualization tool designed for rendering and exploring terrain data. It leverages OpenGL for high-performance rendering and provides users with interactive features to manipulate and visualize complex terrain models.

## Features

- **Real-Time Rendering**: Utilize the power of OpenGL for fast, real-time terrain visualization.
- **Interactive Tools**: Rotate, zoom, and pan the terrain model for detailed exploration.
- **Custom Shaders**: Supports custom GLSL shaders for advanced rendering effects.

## Installation

### Prerequisites

Before building TerraVisor, ensure that you have the following prerequisites installed on your system:

- **Git**: Used for cloning the repository and managing source code.
- **CMake**: Build system generator used to configure the project.
- **Ninja**: Fast build system used to compile the project.
- **vcpkg**: Package manager for acquiring C++ libraries.

### Installation Steps

1. **Clone the Repository**: 

   First, clone the repository from GitLab
   ```bash
   git clone http://git.jackmchristensen.com/jack/terravisor.git
   cd terravisor
   ```

2. **Install vcpkg**: 

   If you haven’t installed `vcpkg` yet, follow these steps to set it up:
   ```bash
   git clone https://github.com/microsoft/vcpkg.git
   cd vcpkg
   ./bootstrap-vcpkg.sh   # Use .\bootstrap-vcpkg.bat on Windows
   ```
   Optionally, integrate `vcpkg` with your system:
   ```bash
   ./vcpkg integrate install
   ```

3. **Install Dependencies**: \
   Use `vcpkg` to install dependencies:
   ```bash
    ./vcpkg install glm glew glfw3 assimp
   ```

4. **Configure the Project**: 

   Navigate back to the project root directory and configure the project using CMake and Ninja. Be sure to specify the `vcpkg` toolchain file:
   ```bash
   cd ..
   cmake -B build -S . -G Ninja -DCMAKE_TOOLCHAIN_FILE=./vcpkg/scripts/buildsystems/vcpkg.cmake
   ```

5. **Build the Project**: 

   Build the project using Ninja:
   ```bash
   cmake --build build
   ```

6. **Run the Application**:

   Once the build process is complete, you can run the TerraVisor application:
   ```bash
   ./build/TerraVisor
   ```

## Acknowledgements

GLEW - OpenGL Extension Wrangler Library \
GLFW - OpenGL Framework \
GLM - OpenGL Mathematics \
ASSIMP - Open Asset Import Library \
Dear ImGui

## Contact
For questions or support, please reach out to Jack Christensen at <contact@jackmchristensen.com>