Elektrod & RigRanger
Привет, я тут пишу скрипт для проверки целостности ригов, который сканирует на предмет висящих ограничений и несоответствия весов драйверов. Хотел бы посоветоваться с тобой по логике работы – особенно по тем частям, где обрабатываются неиерархические зависимости.
Выглядит как неплохое начало, но убедись, что ты не отмечаешь просто любые ограничения, которые не являются прямыми потомками. Если ты будешь проверять только прямых родителей, ты упустишь косвенные управляющие связи, которые обходят иерархию. Добавь поиск в глубину, чтобы отслеживать всех родителей по цепочке и отмечать любой узел, у которого окажется несколько несвязанных управляющих элементов. И нормализуй значения весов перед сравнением — необработанные числа с плавающей точкой могут ввести в заблуждение, если одно равно 0.999999, а другое — 1.0. Обязательно установи порог допуска. Иначе получишь поток ложных срабатываний для "свисающих" ограничений, которые на самом деле работают нормально.