В настоящем разделе дано описание концепции невидимых линий 2D-видов, созданных интерфейсом.
1. В дополнение к имеющимся сущностям кривых 2D-интерфейсы могут создавать "непрозрачные" заполненные области.
2. Запись таблицы статуса интерфейса, называемая включенной невидимой линией hidden_line_involved (HLI), указывает, включена или нет сущность кривой или сущность заполненной области (созданной интерфейсом) в процесс удаления невидимых линий. Если значение HLI "true", то каждая сущность кривой или сущность заполненной области (созданная функцией интерфейса) должна быть включена в процесс удаления невидимых линий и может подключаться к предварительно определенному стилю затенения изображения api_predefined_occlusion_style интерфейса прикладного программирования. Api_predefined_occlusion_style должен содержать атрибут view_level (представляющий действительное значение высоты сущности в некотором виртуальном 3D-пространстве), а также атрибут имени name, дающий описание того, как следует изменить сущность, если она становится невидимой. Непрозрачная заполненная область скрывает полностью или часть сущности кривой находящегося внутри области и имеющего меньшее значение уровня вида. Заполненная область не должна скрывать сущности кривых с тем же значением уровня вида.
3. Если значение HLI "false", то созданные сущности кривой и заполненной области можно направлять в CAD, если прикладная программа запрашивает выполнение указанной передачи с помощью функции Fix_Ent (функция фиксирования сущности в CAD) или запрашивает их непосредственное создание в CAD в процессе построения вида. Если значение HLI "true", то сущность кривой и сущность заполненной области остаются в интерфейсе до окончания процесса удаления невидимых линий.
4. Если прикладная программа запрашивает передачу в CAD сущности, включенной в процесс удаления невидимых линий, то либо с помощью функции Fix_Ent, либо путем запроса на непосредственное его создание в CAD данная сущность подключается к предварительно определенному виртуальному стилю интерфейса прикладного программирования api_predefined_vitually_sent_style, то есть отправляется виртуально. Если сущность отправлятся виртуально, то указанный виртуальный стиль api_predefined_vitually_sent_style должен содержать атрибут задания имени интерфейса прикладного программирования api_set_name, определяющий (в формате строки) уникальное имя текущего открытого множества.
5. Процесс удаления выполняется после завершения построения вида. В данный процесс включаются только сущности, отправленные виртуально. Сущности временной базы данных не включаются.
6. Если отправленная виртуально сущность кривой частично скрыта заполненной областью, то ее видимая часть имеет текущий стиль кривой. Части виртуально отправленной сущности невидимой кривой обрабатываются в соответствии с атрибутом name и требованиями предварительно определенного стиля затенения визуализации интерфейса прикладного программирования api_predefined_occlusion_style.
Значения атрибута: | Сущности кривой и заполненной области: |
no_change | отправляются без каких-либо изменений; |
dashed (штриховая линия) | отправляются как невидимые линии, если данное свойство существует в используемой системе CAD. В противном случае сущности кривой, границы заполненной области и штриховка отправляются как штриховые линии; |
invisible (невидимая линия) | отправляются как невидимые линии, если настоящее свойство существует в используемой системе CAD. В противном случае отправка не производится. |
Если заполненная область закрыта другой поверхностью, то удаление невидимой части в соответствии с настоящим стандартом производится только на линиях, принадлежащих заполненной области (линии границ, штриховка).
Включение точек в настоящем стандарте не рассматривается.
Удаление невидимых линий не является обязательным. Ввод возможности удаления невидимых линий hidden_line_capability в таблицу описаний интерфейса указывает на доступность данного режима. Ввод режима использования невидимых линий hidden_line в таблицу статуса интерфейса указывает на возможность активизации процесса удаления для следующего вида. Значение атрибута hidden_line по умолчанию присваивается атрибуту hidden_line_capability (если указанная возможность доступна, то она всегда активизируется, если нет других указаний в прикладной программе).
Процесс удаления невидимых линий может быть активизирован только для 2D-видов.
Процесс удаления невидимых линий не должен изменять структуру, заданную прикладной программой в процессе (виртуальной) отправки. Заданная структура регистрируется атрибутом задания имени интерфейса прикладного программирования api_set_name в соответствии с предварительно определенным стилем виртуальной отправки api_predefined_virtualy_sent_style интерфейса прикладного программирования.