2.4.1. Примитивы вывода
2.4.1.1. Графическая информация, которая генерируется ЯГС и направляется на все активные станции, строится из основных элементов, называемых графическими примитивами вывода. В ЯГС имеется шесть видов примитивов вывода:
ЛОМАНАЯ - набор связанных между собой отрезков прямых линий, определяемых последовательностью точек;
ПОЛИМАРКЕР - графические символы одного типа, центрированные в заданных позициях;
ТЕКСТ - строка литер в заданной позиции;
ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ - многоугольник, который может быть либо пуст, либо закрашен одним цветом, либо заполнен узором, либо заштрихован;
МАТРИЦА ЯЧЕЕК - матрица ячеек, каждая из которых имеет свой индивидуальный цвет;
ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОДА (ОПВ) - ЯГС обращается к специальным дополнительным возможностям геометрического вывода станции. Таким как, например, вычерчивание сплайновых кривых, дуг окружностей и эллипсов. Объекты вывода характеризуются идентификатором, набором точек и дополнительными данными. ЯГС применяет все преобразования к точкам, но оставляет их интерпретацию за станцией.
2.4.2. Атрибуты графических примитивов вывода
2.4.2.1. Каждый примитив вывода имеет три типа атрибутов: геометрический, негеометрический и идентификационный. Первые два типа атрибутов определяют точное представление примитива вывода, а третий тип атрибутов используется совместно с вводом. Значения атрибутов устанавливаются по мере необходимости и заносятся в таблицу состояния ЯГС. Предоставляются отдельные функции ЯГС для установки отдельно каждого из атрибутов примитива (за исключением флагов выборки атрибутов (ФВА), которые описаны ниже), что позволяет прикладной программе задавать значения атрибута, не обязательно задавая значения других атрибутов. Во время создания примитива вывода (а именно, когда вызывается одна из функций ЯГС для генерации примитива вывода) значения атрибутов связываются с примитивом и не могут впоследствии быть изменены.
2.4.2.2. Атрибуты первого типа управляют геометрическими характеристиками примитивов, которые влияют на форму и размер всего примитива (например ВЫСОТА ЛИТЕРЫ для примитивов ТЕКСТ). Атрибуты этого типа не зависят от станции. Они представляют координатные данные (точки или смещения) и задаются в мировых координатах, либо принимают одно из перечисленных значений. Геометрические атрибуты задаются отдельно для каждого из видов примитивов. Примитивы могут иметь один или несколько геометрических атрибутов или не иметь ни одного атрибута такого типа.
Текущие значения геометрических атрибутов запоминаются в мировых координатах. Когда они связываются с соответствующими примитивами, их значения подвергаются тем же преобразованиям, что и геометрические данные, содержащиеся в параметрах примитива. Следовательно, на них не влияют изменения в преобразовании нормирования и преобразовании станции.
2.4.2.3. Атрибуты второго типа управляют негеометрическими характеристиками примитивов, которые влияют на визуальное представление примитива (например тип линии для примитива ЛОМАНАЯ или индекс цвета для всех примитивов, за исключением примитива МАТРИЦА ЯЧЕЕК). Негеометрические характеристики не представляют координатных данных.
Негеометрические характеристики примитива могут задаваться одним из двух способов: через связку или индивидуально.
2.4.2.4. Для каждого примитива существует атрибут - ИНДЕКС <примитива>, который является указателем в таблице связок примитива. Для каждого примитива, за исключением ОБОБЩЕННОГО ПРИМИТИВА ВЫВОДА и примитива МАТРИЦА ЯЧЕЕК, имеется таблица связок. Негеометрические характеристики при задании через связку являются зависимыми от станции. Каждая станция имеет свой набор таблиц связок, находящихся в таблице состояния станции. Данные в конкретной связке или запись в таблице связок могут быть различными для разных станций.
2.4.2.5. При индивидуальном задании характеристик существует отдельный атрибут для каждой негеометрической характеристики. Как и атрибуты, управляющие геометрическими характеристиками, эти атрибуты являются независимыми от станции и точно так же запоминаются в таблице состояния ЯГС. Поскольку каждая негеометрическая характеристика встречается только в одном типе связки примитива, каждый из этих атрибутов применяется только к одному виду примитива.
2.4.2.6. Для заданной негеометрической характеристики значение соответствующего компонента связки подобно значению атрибута при индивидуальном задании. Поскольку связки задаются отдельно для каждой станции, значения их компонентов ограничены допустимыми значениями для этой станции и запоминаются в таблице состояний станции. В случае индивидуального задания атрибута такие ограничения не налагаются. Определены стандартные действия, которые будут выполняться при отображении примитива, если этот примитив будет создаваться со значениями индивидуально заданных атрибутов, ошибочными для данной станции.
2.4.2.7. Примитивы ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОДА (ОПВ) и МАТРИЦА ЯЧЕЕК не имеют ассоциированных таблиц связок и соответствующих индивидуально задаваемых атрибутов. Если примитив ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОДА (ОПВ) подобен примитиву ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ, то следует использовать таблицу связок полигональной области или набор ее индивидуально задаваемых атрибутов. Примитив МАТРИЦА ЯЧЕЕК содержит информацию об индексе цвета как часть своего задания и не имеет других негеометрических характеристик, поэтому нет необходимости в использовании ни таблицы связок, ни набора индивидуально задаваемых атрибутов.
2.4.2.8. Способ задания негеометрических атрибутов примитива может быть выбран отдельно для каждого атрибута. Группа атрибутов, называемая ФЛАГАМИ ВЫБОРКИ АТРИБУТОВ (ФВА), которые принимают значения ИНДИВИДУАЛЬНЫЙ или СВЯЗАННЫЙ, позволяет выбрать тот или иной способ задания. Эти атрибуты запоминаются в таблице состояния ЯГС. Для каждой негеометрической характеристики каждого примитива имеется свой ФВА. Начальные значения всех ФВА одинаковы: они могут иметь значения или ИНДИВИДУАЛЬНЫЙ, или СВЯЗАННЫЙ в зависимости от реализации. Если начальные значения не изменяются, система будет работать в режимах:
индивидуальное задание негеометрических атрибутов не поддерживается системой, если все ФВА имеют значения СВЯЗАННЫЙ;
задание негеометрических характеристик посредством связок не поддерживается системой, если начальными значениями всех ФВА являются - ИНДИВИДУАЛЬНЫЙ.
Флаги могут быть установлены в любой момент после открытия ЯГС с помощью функции ЗАДАТЬ ФЛАГИ ВЫБОРКИ АТРИБУТОВ. Это позволяет одни негеометрические атрибуты примитива задавать индивидуально, а другие - через связки.
2.4.2.9. При отображении примитива значения негеометрических характеристик определяются следующим образом:
если ФВА имеет значение ИНДИВИДУАЛЬНЫЙ, то на всех станциях используется значение соответствующего индивидуально заданного атрибута;
если ФВА имеет значение СВЯЗАННЫЙ, то используется значение соответствующей компоненты связки, указанной индексом в таблице связок этого примитива на этой станции.
2.4.2.10. Цвет является негеометрическим атрибутом примитива, он задается индексом в таблице цвета. На каждой станции имеется таблица, в которой указаны все индексы цвета. Другие поля в связках или соответствующие им индивидуально задаваемые атрибуты могут быть индексами либо другой таблицы станции (например, индекс заполнителя, когда используется вид заполнения ПО ШАБЛОНУ), либо индексами некоторого фиксированного списка (например тип линии для примитива ЛОМАНАЯ).
2.4.2.11. Для каждого примитива существует только один атрибут третьего типа - ИДЕНТИФИКАТОР УКАЗАНИЯ. Он используется для идентификации примитива или группы примитивов в сегменте при указании на этот сегмент.