mkdir tmp
cd tmp
cmake -DCMAKE_BUILD_TYPE=mode /path/to/repo
makeДанная последовательность команд сгенерирует Вам исполняемый файл raycmd. Он поддерживает команду --help.
Переменная mode может принимать три возможных значения:
- Release. Компиляция для использования в Ваших проектах.
- RelWithDebInfo. Компиляция производится с опцией
-DDEBUG, что может быть полезно для отладки. - Debug. Компиляция производится с опцией
-DDEBUGи с санитайзерами (в случае Linux) или с опцией-DGLIBCXX_DEBUGиначе.
TODO. Пока читайте код. Также есть примеры конфигов в папке config_examples.
Помимо утилиты raycmd собирается динамическая библиотека libtrace.so. Для её использования подключается заголовок tracing.hpp. Основные функции:
-
check_json_scene. Принимает QJsonObject (конфиг) и проверяет его на наличие всех необходимых аттрибутов. Возвращает структуру verdict, хранящую поле ok (хороший ли конфиг) и msg (сообщения об ошибках).
-
parse_json_scene. Принимает QJsonObject (конфиг). Возвращает пару: сцену (Scene) и доп. параметры рендеринга (Hitinfo), содержащие тип рендеринга (full или preview) и способ пересечения луча со сценой (Simple - простой перебор или Hard - Bounding Volume Hierarchy). Рендеринг осуществляется командой scene->render(hitinfo) и возвращает QImage.