Программа stga.exe предназначена для анализа и визуализации графа смарт-террейнов проекта "Чистое небо". Она строит ориентированный граф, где лагери представлены в виде вершин, а их взаимосвязи - в виде рёбер, выводит в лог список потенциально проблемных вершин, и позволяет сохранить визуализацию в файл .png или .svg (последний формат интерактивный и позволяет увидеть содержимое лагеря).
Для визуализации используется движок Graphviz.
Программа написана на C++20, собрана в MVS2022CE, требует зависимости для этой версии.
Установка и использование
1. Скачать и установить Graphviz , проследить, чтобы он добавился в переменную PATH
2. Скопировать .ltx-конфиги (если пишете лагеря в них) и/или файлы spawn.part (если пишете лагеря через LE) в папку с программой
3. Запустить stga.exe
4. Посмотреть на вывод в консоли
5. Открыть в папке с программой файл с расширением .png или .svg
Конфиг программы снабжён комментариями и в подробных пояснениях не нуждается.
Краткая справка по графу и принятым обозначениям
Под вершиной имеется в виду лагерь (смарт-террейн), под ребром - направленная связь между двумя лагерями.
Висячие вершины бывают двух типов:
- стоки (имеют входящие связи, но не имеют исходящих; выделены оранжевой обводкой)
- источники (имеют исходящие связи, но не имеют входящих; выделены оранжевой обводкой)
Изолированная вершина не имеет ни входящих, ни исходящих связей; она никак не связана с другими вершинами. Такие вершины существуют в "Чистом небе", их наличие не является ошибкой. Выделены красной заливкой.
Под виртуальной вершиной имеется в виду такая вершина, которая упомянута в параметре targets, но отсутствует в файлах .ltx и/или .part. Такие вершины - явный признак ошибки, либо неполного графа. Выделены оранжевой пунктирной обводкой.
Пурпурной жирной обводкой выделяются важные вершины (important_point=true).
Зелёным цветом обозначены двунаправленные рёбра, синим - однонаправленные. Это корректные связи.
Красным цветом выделяются рёбра, ведущие в вершину-сток. Это опасный случай: если отряд направится в такую вершину, то симуляция рухнет.
Дублирование рёбер выделяется утолщённой пунктирной линией и числовой меткой (чем больше вес ребра, тем толще линия; число обозначает вес).
Поддержка
Вопросы, предложения, обновления - в теме на форуме xray-engine.org или здесь.
Цветастое ридми на вике