AnimEngine Source Code Guide

In the majority of use cases, AnimEngine’s source code will need to be modified to meet the needs of the class. The source code is large enough to make navigation difficult. This document is intended to act as an overview of the code’s structure and provide some suggestions for accomplishing likely modifications.

Doxygen pages have also been generated for the source code, but documentation comments are lacking. AnimEngine Doxygen pages

Project Directory Structure Overview

AnimEngine’s project directory structure has several twists and turns, and could be confusing at first. The most important thing to know is the C++ source code for the project lives in src/. The other directories are as follows:

  • shaders/: A directory for all GLSL shader code. The project’s CMake config uses a python script at build time to update a JSON manifest of all shaders in this directory.

  • ext/: Third-party code that will almost always go untouched.

  • docs/: Documentation generation files. Should not be modified unless new features are being added or significantly modified.

  • assets/: Default directory for assets (glTF or otherwise). However AnimEngine can load assets from anywhere on disk, so this directory is often just used for small reference files. Large assets should not be committed to the repo using this directory.

A further overview of the directories nested within src/ can be found in the diagram below.

_images/anim_engine_dir_structure.jpg

Highlighted Classes

The diagram below highlights a selection of classes from AnimEngine’s code that may be of interest to those augmenting the code base. This is not a comprehensive diagram of classes. For a complete look at all classes, refer to Doxygen Class Hierarchy or Doxygen Class List

_images/class_highlights.jpg