Настоящий подраздел объявляет групповые ресурсы сущностей заполненной области, определенные стандартом ИСО 10303-46 и являющиеся частью схемы api_abstract_schema. Заполненные области моделируются посредством сущности заполненных областей комментариев annotation_fill_area. В контексте схемы api_abstract_schema данная сущность допустима только для 2D-видов, то есть если интерфейс открыт с уровнем геометрической мощности geometrical_power_level, равным 1. Сущность annotation_fill_area представляет собой плоскую многосвязную фигуру, внешние и внутренние границы которой являются контурами api_contour интерфейса прикладного программирования. Максимальное число внутренних границ, допустимое заданной реализацией интерфейса, должно быть не меньше величины, определенной в разделе 9 настоящего стандарта. Все контуры должны лежать в одной плоскости и не должны пересекаться. Все контуры внутренних границ заполненной области должны лежать внутри внешнего контура границ и не должны пересекаться. В контексте схемы api_abstract_schema и annotation_fill_area не содержат комментариев. Они играют две вспомогательные роли:
1) область может быть заштрихована. При этом штриховка определяется сущностью annotation_fill_area_occurrence, задающей стиль штриховки fill_area_style_hatching элемента представления annotation_fill_area;
2) область может быть просто закрашена. Область имеет фоновый цвет, который затеняет прочие сущности. При этом глобальные значения записей таблицы статуса интерфейса равны: "оn" - для записи hidden_line, "true" -для записи hidden_line_involved.
6.1.15.1 Сущность annotation_fill_area
Сущность annotation_fill_area задает множество замкнутых кривых со штриховкой, затенением, закрашиванием или клеточным заполнением. Данная сущность задается границами, представленными непересекающимися и несамопересекающимися замкнутыми кривыми curve. Указанные границы задают плоские области, заполненные в соответствии со стилем annotation_fill_area. Правила заполнения области:
- кривая, не окруженная какими-либо другими кривыми, является границей между незаполненной областью снаружи и заполненной областью внутри.
Примечание 1 - См. рисунок 9 а);
- кривая (кривая 2 на рисунке) окружает незаполненную область, если она окружена другой кривой (кривая 1 на рисунке), заполненной изнутри.
Примечание 2 - См. рисунок 9 б);
- если кривая 3 (кривая 3 на рисунке 9 а) размещается внутри кривой 2, то данная кривая окружает заполненную область.
Примечание 3 - См. рисунок 9 в);
- для каждой дополнительной кривой используется аналогичная процедура.
Filled - заполненная область; curve - кривая; unfilled - незаполненная область
Рисунок 9 - Заполнение области сущностью annotation_fiIl_aгеа
Спецификация на языке EXPRESS:
*)
ENTITY annotation_fill_area
SUBTYPE OF (geometric_representation_item);
boundaries : SET [1:?] OF curve;
WHERE
api_WR1: SIZEOF (QUERY ( temp <* SELF.boundaries |
'API_ABSTRACT_SCHEMA.API_CONTOUR' IN TYPEOF (SELF) )
) = SIZEOF (SELF.boundaries) ;
END_ENTITY;
(*
Определение атрибута:
boundaries: множество кривых curve, определяющих границы заполненной области.