Updates several documentation titles to a more consistent format.
Changes include renaming "Frequently Asked Questions (FAQ)" to "FAQ",
"Getting Started with OMath" to "Getting Started",
"Troubleshooting Guide" to "Troubleshooting", and
"OMath Tutorials" to "Tutorials".
```
Deletes the `dark-overrides.css` file.
This file appears to have been superseded by other theming mechanisms and is no longer needed. Its presence was causing potential conflicts.
Widens the navbar container to accommodate more content.
Adjusts padding of navbar items for tighter spacing.
Prevents line wrapping and enables horizontal scrolling on smaller screens.
Adds documentation for the `omath::ViewAngles` struct,
clarifying its purpose, common usage patterns,
and the definition of the types of pitch, yaw and roll.
Also, adds short explanations of how to use ViewAngles and what tradeoffs exist
between using raw float types and strongly typed Angle<> types.
Moves various image files demonstrating libomath’s usage and featuring artwork from showcases to the improved `docs/images` structure to reorganize the project's documentation in a logical and maintainable fashion.
This change ensures consistency and simplifies updating documentation assets.
Adds comprehensive documentation for the pattern scanning API.
Details parsing behavior, complexity, and usage examples.
Includes troubleshooting tips and minimal test sketches.
Clarifies edge-case handling and implementation notes.
Documents the `omath::collision::Ray` and `LineTracer` types, detailing their purpose, usage, and API.
Includes a description of the Möller–Trumbore algorithm
and provides usage examples for segment-triangle
and infinite ray intersection tests.
Relates to feature/docs
Adds comprehensive documentation for the `Vector4` class, outlining constructors, operators, and utility functions. Includes detailed notes on `clamp` functionality and potential ImGui integration caveats. Incorporates optional ImGui integration with explanations for correct usage and potential improvements.
Applies a dark theme to the documentation site using the `darkly` theme.
Provides a visually appealing dark mode option.
Configures colors to ensure readability and aesthetic consistency.
Initial plan
Initial exploration and analysis complete
Co-authored-by: orange-cpp <59374393+orange-cpp@users.noreply.github.com>
Optimize performance: A* pathfinding, Vector3 hash, pattern scanner, AVX2 code, and serialization
Co-authored-by: orange-cpp <59374393+orange-cpp@users.noreply.github.com>
Add bounds check for navigation mesh serialization
Co-authored-by: orange-cpp <59374393+orange-cpp@users.noreply.github.com>
Document serialization limitation for large neighbor counts
Co-authored-by: orange-cpp <59374393+orange-cpp@users.noreply.github.com>
Add _codeql_build_dir to gitignore
Co-authored-by: orange-cpp <59374393+orange-cpp@users.noreply.github.com>
Removes codeql detected source root
Eliminates the automatically generated file that was causing issues.
This file was added by codeql and no longer needed.
revert
cleaned up gitignore
moved to anon namespace
Improves navigation mesh serialization and clamping
Ensures correct serialization of navigation meshes by clamping neighbor counts to prevent data corruption when exceeding uint16_t limits.
Updates data types to `std::uint8_t` and `std::size_t` for consistency.
Uses `std::copy_n` instead of `std::memcpy` for deserialization.
Configures the default Vcpkg registry and adds an artifact registry
for the microsoft catalog. This enables the tool to find and use
pre-built packages from the Microsoft catalog.
Adds new CMake presets for Darwin platforms, including debug and release configurations with optional Vcpkg integration.
This allows for easier builds on Darwin systems utilizing pre-built libraries from Vcpkg.
Enables features and sets build configurations via Vcpkg manifest.
Adds new presets for Windows and Linux debug/release builds using Vcpkg.
Conditionally enables features (imgui, avx2, tests, benchmark) based on Vcpkg manifest features.
Disables the automatic override of build options by Vcpkg.
This prevents unintended consequences when using Vcpkg and allows for more control over the build process.
Changes the default state of `OMATH_BUILD_TESTS` and `OMATH_BUILD_BENCHMARK` to OFF when built via VCPKG.
Previously, these flags were inherited from the project's top level. This change ensures that these are explicitly enabled via VCPKG manifest features, providing better control over build configuration.
Conditionally links the test target to gtest when it is available,
rather than requiring the OMATH_BUILD_VIA_VCPKG flag to be false.
This allows for a more flexible test setup.
Migrates to CMake presets and enables VCPKG to manage dependencies.
Removes explicit submodule configuration.
Updates benchmark and googletest to be integrated or linked properly.
The goal is to ease the build process and reduce complexity related to linking and dependency management.
Sets up CMake presets to utilize the Vcpkg toolchain.
Specifies the Vcpkg root directory and manifest features.
Defines the installation directory for Vcpkg packages.
Forces the usage of Ninja as the make program.
Configures CMake to utilize vcpkg for dependency management on both Linux and Windows platforms.
This ensures consistent build environments across different operating systems and simplifies the integration of external libraries.
Adds vcpkg setup for Arch Linux and Windows CI jobs.
This ensures consistent dependency management and builds via Vcpkg for both platforms and enables OMath to build via vcpkg.
Clones the vcpkg repository and bootstraps it during the job execution.
Configures CMakePresets.json to utilize vcpkg for dependency management.
Adds support for building with vcpkg.
Adds error message for missing VCPKG_ROOT environment variable.
Adds explicit VCPKG_MANIFEST_FEATURES and VCPKG_INSTALLED_DIR to CMakePresets.json.
Adds benchmark dependency to vcpkg.json.