This project focuses on approximating principal curvatures of 3D objects using VTK and C++ techniques. It is me trying to expand based on a workshop at my uni ENSI (Tunisia) and aims to provide a visual understanding of curvature estimation.
- Successfully set up a build system using CMake and Visual Studio.
- Resolved integration issues with VTK and OpenGL.
- Started implementing GUI with ImGui for visualizing curvature approximation.
- Resolved initial runtime errors (e.g., invalid
DisplaySize
in ImGui).
- CMake 3.18 or higher
- A C++ compiler (Visual Studio, GCC, etc.)
- VTK (9.4 or compatible version)
- OpenGL (installed with most graphics drivers)
To run the project in its current state, follow these steps:
-
Install Required Software:
- Install CMake.
- Install Visual Studio (ensure the C++ development tools are selected during installation).
- Install VTK 9.4.0.
- Install ImGui.
-
Clone the Repository:
git clone https://github.com/yourusername/ApproximationCourbures3D.git cd ApproximationCourbures3D
-
Build the Project:
mkdir build cd build cmake .. cmake --build .
-
Run the Application:
./ApproximationCourbures3D
- Visit the glad generator, configure the desired OpenGL version (e.g., OpenGL 3.2 or more if you plan to upgrade and modify the project), and download the files.
- Extract and copy the files into the
third_party/glad/
directory:- Place
include/glad/
underthird_party/glad/include/glad/
. - Place
src/glad.c
underthird_party/glad/src/glad.c
.
- Place
- Visit glfw.org and download the source code.
- Extract and place the files in
third_party/glfw/
. - Build GLFW:
cd third_party/glfw cmake . make
- Dockerize the project to improve portability and shareability.
- Optimize curvature estimation algorithms.
- Implement additional visualization techniques for curvature mapping.
Add this section to the README.md
to outline your Dockerization plan:
## Dockerization Plan
The primary goal is to containerize this project for easy deployment. The following steps will be taken:
1. Create a `Dockerfile` to build the application environment.
2. Include all dependencies (VTK, ImGui, C++) in the container.
3. Map necessary ports for GUI rendering (or use an X11 server for Linux hosts).
4. Test and optimize container performance.
5. Push the final image to Docker Hub for distribution.