For convenience the include/vsg/all.h header is provided that includes all headers for you. While quick to add to your code it will likely slow compilation compared to explicitly including just the headers you need.
#include <vsg/all.h> // prefer convenience over compile speed
The headers that provide the library classes and definitions are organized in subdirectories with the include/vsg/directory_name based on the category of functionality the header provides. All C++ classes and function definitions provided are enclosed in vsg namespace. The vsg subdirectories/categories are:
- include/vsg/core - Base classes & memory management
- include/vsg/maths - GLSL style maths classes
- include/vsg/io - File system, stream and native file format support
- include/vsg/threading - Threading class that build upon std::thread.
- include/vsg/utils - Utility classes/template functions
- include/vsg/vk - Vulkan integration classes - application level rather than scene grah lelve
- include/vsg/commands - VkCmd related scene graph classes
- include/vsg/state - VkDescritorSet/VkDescriptor state related scene graph classes
- include/vsg/nodes - Scene graph node classes
- include/vsg/text - Scene graph node classes that provide high quality Text support
- include/vsg/rtx - RTX Raytracing and mesh shader related scene graph classes
- include/vsg/traversals - Graph traversals
- include/vsg/ui - User Interface Event classes
- include/vsg/platform - Platform specific Windowing/support classes
- include/vsg/viewer - Viewer/Windowing classes