This commit introduces Doxygen for documentation generation and a Gitea
workflow for continuous integration.
- Adds a `Doxyfile` to configure Doxygen to build a documentation
website with diagrams.
- Updates `AGENTS.md` to require Doxygen-compatible comments for all
code.
- Adds Doxygen comments to existing C++ source files to comply with
the new standard.
- Creates a Gitea workflow (`.gitea/workflows/build.yml`) that:
- Builds the project on every push.
- Generates Doxygen documentation.
- Uploads the compiled library and the documentation website as
artifacts.
2.7 KiB
Agent Instructions for MedicalLib
This document provides instructions for developers and agents working on the MedicalLib C++ project.
Project Purpose
MedicalLib is a C++ library for detailed mathematical simulations of various medical information. Its goal is to provide a robust set of tools for applications that require calculations related to:
- Heart rate and EKG readings
- Body metrics (e.g., BMI, body fat percentage)
- Physiological responses to injuries
- Other life-requirement math simulations
Project Structure
This project is structured as a software-agnostic C++ library, designed for easy integration into various larger projects, including game engines like Unreal Engine.
/include: Contains all public header files./include/MedicalLib: Headers for the MedicalLib library are placed here to prevent naming conflicts.
/src: Contains the implementation (.cpp) files for the library./examples: Contains example code showing how to use the library./build: This directory is created by the build scripts and contains the compiled library and example executables. It is not tracked by git.CMakeLists.txt: The root CMake file for building the project.
Building the Project
To build the project, use the provided build scripts:
- On Linux or macOS:
./build.sh - On Windows:
build.bat
The compiled library will be placed in build/lib, and the example executable will be in build/examples/.
Coding Standards
Doxygen Documentation
All functions, classes, structs, enums, and public member variables must be documented using Doxygen-compatible comments. This ensures that the code is easy to understand and that high-quality documentation can be automatically generated.
- Use
/** ... */for multi-line comments. - Use
///for single-line comments. - Use
@briefto provide a short description. - Use
@paramto document function parameters. - Use
@returnto describe the return value.
Example:
/**
* @brief Calculates the Body Mass Index (BMI).
* @param weight_kg The weight in kilograms.
* @param height_m The height in meters.
* @return The calculated BMI.
*/
MEDICAL_LIB_API double calculateBMI(double weight_kg, double height_m);
Integration with Unreal Engine
To use this library in an Unreal Engine plugin:
- Copy the contents of the
includedirectory into your plugin'sThirdParty/MedicalLib/includedirectory. - Compile the library for the desired platforms (e.g., Win64, Linux) and copy the compiled library files (e.g.,
.lib,.so,.a) into your plugin'sThirdParty/MedicalLib/lib/<Platform>directory. - In your plugin's
.Build.csfile, add the necessary paths for the include files and link against the compiled library.