Именование граней, рёбер и вершин

Грани, рёбра и вершины в структуре данных имеют имя MbName. Класс MbName объявлен в файле name_item.h. Именование граней, рёбер и вершин выполняется геометрическим ядром C3D при построении множества граней MbFaceShell во всех формообразующих операциях. В параметрах каждой формообразующей операции присутствует объект MbSNameMaker. Объект MbSNameMaker содержит главное имя операции и контейнер простых имён типа SimpleName, которые используются для именования граней. Объект MbSNameMaker выполняет именование построенных граней с помощью элементов контейнера простых имён. Контейнер простых имён может иметь или набор уникальных чисел, или одно целое число, или ни одного целого числа.

Если контейнер простых имён содержит одно число, то остальные требуемые простые имена MbSNameMaker создаст сам путём прибавления к исходному числу чисел натуральной последовательности. Если контейнер простых имён пуст, то стартовым числом будет нуль. Каждое число из контейнера простых имён будет соответствовать одному из геометрических входных параметров (сегменту формообразующего контура операции, обрабатываемому ребру операции, модифицируемой грани операции и тому подобное) и будет использоваться для именования новой грани, рождённой операцией.

Имена граней будут уникальными при уникальности элементов контейнера простых имён. Рёбра получают имена хешированием имён соединяемых ими граней. Вершины получают имена хешированием имён стыкующихся в них рёбер. В качестве идентификатора грани, ребра или вершины можно использовать число, которое выдаст метод MbName::Hash() соответствующего топологического объекта. Грани, рёбра и вершины в теле можно искать по известному имени MbName методами FindFaceByName(…), FindEdgeByName(…), FindVertexByName(…).

Кроме того, объект MbSNameMaker содержит версию способа построения и обеспечивает сохранение старых способов построений при их модификации в процессе развития геометрического ядра.