2.3. Концепции
2.3.1. Графический вывод, генерируемый ЯГС, строится на основе двух групп элементов - примитивов вывода и атрибутов примитивов. Примитивы вывода являются абстракцией основных действий, которые может выполнять устройство, например рисование линий и отображение строк литер.
Атрибуты управляют характеристиками примитивов вывода, например типом линий, цветом, высотой литер. Негеометрическими характеристиками, такими как цвет, управление осуществляется индивидуально для каждой станции, что позволяет полнее использовать ее возможности.
2.3.2. Графическая информация, вводимая от устройств, как результат действий оператора, преобразуется ЯГС в шесть классов ввода. Каждый класс ввода характеризуется типом вводимых данных. Представленное таким образом устройство называется логическим устройством ввода. Эффект действий по вводу отображается на носитель изображения в виде подсказки и эха индивидуально для каждого логического устройства ввода.
2.3.3. Две абстрактные концепции (абстрактный вывод и абстрактный ввод) являются основополагающими для определения так называемой абстрактной станции. Станция ЯГС содержит один (либо ни одного) носитель изображения и, возможно, несколько устройств ввода, таких, как, например, алфавитно-цифровая клавиатура, планшет и световое перо. Станция представляет эти устройства прикладной программе как конфигурацию абстрактных устройств, скрывая тем самым особенности аппаратуры.
2.3.4. Геометрическая информация (координаты), содержащаяся в примитивах вывода, атрибутах и значениях данных логического ввода (при вводе позиции или последовательности позиций) подвергается преобразованиям. Эти преобразования связывают следующие, принятые в ЯГС, системы координат:
1) мировые координаты (МК), используемые прикладным программистом;
2) нормированные координаты (НК), используемые для задания единой для всех станций системы координат;
3) координаты устройства (КУ): одна система координат на каждую станцию, в этой системе представляются координаты пространства изображения станции.
2.3.5. Примитивы вывода и атрибуты преобразуются из МК в НК посредством преобразования нормирования, из НК - в НК посредством преобразований сегмента и из НК в КУ посредством преобразований станции. Входные данные устройства ввода позиции преобразуются из КУ в НК посредством преобразования, обратного преобразованию станции, и посредством одного из преобразований, обратных к преобразованию нормирования из НК в МК.
2.3.6. Примитивы вывода и атрибуты примитивов могут быть объединены в сегмент. Сегменты являются неделимыми единицами при манипуляциях и изменениях. Манипуляции включают в себя создание, удаление и переименование. Изменение включает в себя преобразование сегмента, изменение его видимости и выделение сегмента. Сегментация является также основной для оперативного и не зависящего от устройства способа хранения изображений. Такая область хранения, определяемая как особая станция (называемая общей памятью сегментов) позволяет вставлять сегменты в другие сегменты и передавать сегменты на другие станции.
2.3.7. Атрибуты, управляющие внешним видом компонентов изображения (примитивов вывода, сегментов, подсказок и эха устройств ввода) на носители изображения, организованы следующим образом. Две группы атрибутов влияют на внешний вид каждого примитива вывода: атрибуты примитивов, которые не зависят от станции, и атрибуты станции. Атрибуты примитивов задаются по мере необходимости и связываются с примитивом во время его создания. Атрибуты примитива определяют его геометрические характеристики, такие как, например, высота литеры для примитива ТЕКСТ и размер шаблона для примитива ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ. Негеометрическими характеристиками примитивов атрибуты управляют одним из двух способов; либо все негеометрические характеристики примитива задаются одним атрибутом-индексом, указывающим на зависящее от станции представление (набор значений), либо каждая негеометрическая характеристика примитива задается отдельным, не зависящим от станции, атрибутом. Первый способ - задание связками, второй - индивидуальное задание.
2.3.8. Атрибуты станции включают связки негеометрических атрибутов примитивов, указываемые индексами. Связка ломаной, например, содержит значение типа линии, коэффициента масштабирования толщины линии и индекс цвета. Кроме того, атрибуты станции задают таблицу цвета, таблицу шаблонов и управляют задержкой изменения изображения. Атрибуты станции могут изменяться динамически.
2.3.9. Визуальное представление сегментов определяется атрибутами сегментов, включающими преобразование сегмента, видимость, выделение и чувствительность к указанию. Их также можно изменять динамически. Атрибуты сегмента могут служить основой для организации обратной связи во время манипуляции изображением (например при использовании выделения).
2.3.10. Атрибуты, управляющие работой логических устройств ввода, задаются либо во время инициализации, либо при подготовке устройств ввода. При инициализации могут быть определены начальные значения, тип подсказки и эха и область на экране, где они будут появляться. С помощью записи данных при инициализации можно задавать специфичные для данного устройства дополнительные атрибуты. Во время подготовки устройства ввода может быть выбран режим работы и включено или выключено эхо. Режимы работы логических устройств ввода определяют, кто (оператор или прикладная программа) имеет инициативу: данные ввода в режиме ОПРОС получаются непосредственно прикладной программой, данные ввода в режиме ЗАПРОС задаются оператором непосредственно в ответ на запрос прикладной программы, в режиме СОБЫТИЕ генерируются оператором асинхронно и накапливаются в очереди, доступной для обработки прикладной программой.
2.3.11. Во время работы ЯГС может находиться в пяти функциональных состояниях. Каждому состоянию соответствует набор функций, допустимых в этом состоянии, и набор переменных состояния. Концепция функционального состояния и переменные состояния позволяют четко определить параметры инициализации (например при обращении к функции ОТКРЫТЬ СТАНЦИЮ) и правильно интерпретировать действия различных функций, особенно для обеспечения независимости от устройств. Существует особый набор функций, называемых справочными функциями, который допускается во всех состояниях. Эти функции могут обращаться к таблицам состояния в режиме чтения. Ряд справочных функций имеет доступ в режиме чтения к описаниям станций, что дает возможность прикладной программе адаптироваться к конкретным возможностям станции. Справочные функции никогда не вызывают ошибок. Наоборот, полученная от них информация позволяет определить, правильно ли был сделан запрос.
2.3.12. В ЯГС предусмотрено запоминание графической информации с целью ее долговременного хранения и обмена между системами. Станция вывода в метафайл ЯГС выполняет запись графической информации в так называемый метафайл, станция ввода из метафайла ЯГС считывает данные из метафайла. Кроме обычных функций вывода ЯГС, станция вывода в метафайл может принимать записи, содержащие неграфическую информацию. Ввод из метафайла осуществляется при помощи операций чтения и интерпретации, которые приводят к тем же результатам, как и при обращении к соответствующим функциям непосредственно из прикладной программы.