Одни атрибуты задаются полностью независимыми, другие — всегда зависимыми от графической станции. Но для большинства атрибутов прикладная программа может указать, какой из двух возможных способов задания она выбирает. Независимые атрибуты устанавливаются функциями ЯГС глобально. Это означает, что действие атрибута после его установки распространяется на все создаваемые, начиная с этого момента, примитивы вплоть до изменения значения атрибута.
Например,
ЗАДАТЬ ВЫСОТУ ЛИТЕРЫ (h)
ТЕКСТ (точка,'ABC'){этот текст будет выведен литерами высотой h}
Для задания зависимых от графической станции атрибутов (за исключением цвета и фигур шаблона) используется связанный с примитивами данного типа индекс. Он указывает на элементы таблицы, реализованной на каждой графической станции для примитивов различного типа. Множество зависимых атрибутов примитива данного типа называется связкой (boundle), а таблица, объединяющая связки атрибутов с разными значениями, - таблицей связок. Например, ИНДЕКС ЛОМАНОЙ указывает на элемент таблицы связок ломаной, содержащий значения толщины линии, типа линии и индекса цвета (рис. 9). ИНДЕКС ЛОМАНОЙ, ИНДЕКС ПОЛИМАРКЕРА, ИНДЕКС ТЕКСТА и ИНДЕКС ПОЛИГОНАЛЬНОЙ ОБЛАСТИ устанавливаются глобально, распространяя тем самым свое действие на изображение всех впоследствии создаваемых примитивов соответствующего типа.
Рисунок 9 - Схема связи атрибутов ломаной
Для каждого атрибута, допускающего зависимый или независимый от станции способ задания, имеется глобальный переключатель. Он устанавливает режим связывания атрибута (attribute binding mode). Каждый из переключателей, называемых флагами выборки атрибута (Aspect Source Flag - ASF) - может находиться в одном из двух состояний - СВЯЗАННЫЙ (зависимый) или ИНДИВИДУАЛЬНЫЙ (независимый).
Индекс связки — указатель на элемент таблицы связок для примитивов вывода данного типа. Определяет зависимые от графической станции характеристики представления примитива.
Таблица связок - зависимая от станции таблица, связанная с примитивами вывода данного типа. Элементы таблицы (связки) описывают все зависимые характеристики представления примитива на станции. В ЯГС таблицы связок существуют для следующих примитивов вывода: ломаной, полимаркера, текста и полигональной области.
Таблица связок ломаной — таблица, связывающая конкретные значения всех зависимых характеристик представления ломаной на станции с индексом связки ломанор. В ЯГС каждый элемент этой таблицы содержит значения типа линии, масштаба толщины линии и индекса цвета.
Таблица связок полимаркера - таблица, связывающая конкретные значения всех зависимых характеристик представления полимаркера на станции с индексом связки полимаркера. В ЯГС каждый элемент этой таблицы содержит значения типа маркера, масштаба макера и индекса цвета.
Таблица связок текста — таблица, связывающая конкретные значения всех зависимых характеристик представления текста на станции с индексом связки текста. В ЯГС каждый элемент этой таблицы содержит значения шрифта, точности текста, масштаба расширения литеры, межлитерного просвета и индекса цвета.
Значения элементов таблиц связок предопределяются разработчиком системы исходя из возможностей графической станции. Тем не менее, в процессе выполнения эти значения могут изменяться функциями ЯГС. Таким же образом начальное задание флагов выборки атрибутов зависит от реализации. Но в любой момент они могут быть по отдельности переустановлены прикладной программой.
Важным свойством зависимых атрибутов является то, что они могут оказывать воздействие на представление изображения, уже находящегося на носителе изображения станции. Если изменить какой-либо из этих атрибутов, например значение КЗС-интенсивностей в таблице цвета, то соответственно изменится и внешнее представление уже выведенных примитивов, использующих эти атрибуты (сказанное будет отработано правильно только для примитивов внутри сегментов). Атрибуты, назначенные примитивами в состоянии ИНДИВИДУАЛЬНЫЙ впоследствии изменить уже нельзя.
Цвет является зависимым от станции атрибутом и адресуется с помощью индекса цвета, который находится в таблицах связок. Индекс цвета указывает на элемент таблицы цвета, которая связывает КЗС-интенсивности с различными значениями индексов цвета. Если изменяются элементы таблицы цвета в процессе воспроизведения изображения на станции, то изменяется и окраска соответствующих выводимых примитивов.
Таблица цвета — зависимая от графической станции таблица, каждый элемент которой содержит значения интенсивностей (оттенков) красного, зеленого и синего цветов, определяющих конкретную окраску.
На рис. 10 показана взаимосвязь атрибутов ломаной, когда все флаги выборки атрибутов находятся в состоянии СВЯЗАННЫЙ. Похожие схемы могут быть представлены для полимаркеров и текстов.
На рис. 11 показана взаимосвязь атрибутов ломаной, когда все флаги выборки атрибутов находятся в состоянии ИНДИВИДУАЛЬНЫЙ.
Рисунок 10 Схема связи атрибутов полигональной области в режиме СВЯЗАННЫЙ
Рисунок 11 - Схема связи атрибутов полигональной области - в режиме ИНДИВИДУАЛЬНЫЙ
Такая же базовая схема справедлива для полигональной области, за исключением того, что связка ее атрибутов (и альтернативный набор индивидуально назначаемых, атрибутов) содержит индекс заполнителя, используемый при выборке типа шаблона или штриховки. Если вид заполнения имеет значение ПО ШАБЛОНУ, то индекс указывает на элементы таблицы, содержащей размеры и индексы цвета матриц шаблона. Для заполнения области будет применяться шаблон, на который указывает индекс заполнителя, вместе со статически задаваемыми атрибутами — размером шаблона и точкой его привязки. Если вид заполнения имеет значение ШТРИХОВКА, то индекс заполнителя служит для выбора одного из типов штриховки, поддерживаемых реализацией. Других. видов штриховки, кроме определяемых реализацией, не существует.
Таблица связок полигональной области — таблица, связывающая конкретные значения всех зависимых характеристик представления полигональной области на станции с индексом связки полигональной области. В ЯГС каждый элемент этой таблицы содержит значения вида заполнения, индекса заполнителя и индекса цвета. Представление о взаимосвязи атрибутов полигональной области в случае, когда все флаги выборки атрибутов находятся в состоянии СВЯЗАННЫЙ, дается на рис. 11. Аналогичная картина взаимосвязи всех атрибутов этого примитива, но при состоянии флагов ИНДИВИДУАЛЬНЫЙ показана на рис. 12.
Рисунок 11 – Задание цвета для примитива МАТРИЦА ЯЧЕЕК
Схема задания атрибутов выглядит совершенно иначе для матрицы ячеек — набор индексов цвета указывается непосредственно при вызове функции примитива. Эти индексы прямо указывают на таблицу цвета (рис. 12).
Рисунок 12 - Схема связи атрибутов полигональной области
Связанная иди индивидуальная форма задания атрибутов обобщенного примитива вывода целиком зависит от разработчика Ядра графической системы. Специальные связки атрибутов обобщенного примитива вывода не определены.