ГОСТ 27817-88
Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы

     ГОСТ 27817-88
(CT СЭВ 6177-88)

Группа П85

     
     
ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР

Системы обработки информации

МАШИННАЯ ГРАФИКА

Функциональное описание ядра графической системы

Information processing systems. Computer graphics. Functional description of graphical kernel system


     
ОКСТУ 0014

Дата введения 1989-07-01

     
ИНФОРМАЦИОННЫЕ ДАННЫЕ

1. УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Государственного комитета СССР по стандартам от 31.08.88 N 3090
     

2. Стандарт полностью соответствует СТ СЭВ 6177-88
     

3. Стандарт соответствует международному стандарту ИСО 7942 и национальному стандарту США ANSI Х.3.1241 (1985)
     

4. Срок проверки - 1992 г., периодичность проверки - 5 лет.
     

5. ВВЕДЕН ВПЕРВЫЕ
     

6. ССЫЛОЧНЫЕ НОРМАТИВНО-ТЕХНИЧЕСКИЕ ДОКУМЕНТЫ
     

Обозначение НТД, на который дана ссылка

Номер пункта, подпункта, перечисления, приложения

СТ СЭВ 359-76

пп.2.4.5.9, 2.4.5.11, 3.4.1.10

СТ СЭВ 356-86

п.3.4.2.3

СТ СЭВ 5712-86

Приложение 1


     
     Настоящий стандарт распространяется на программные и технические средства машинной графики, реализующие и использующие ядро графической системы (ЯГС), и устанавливает общие положения, концепции ядра графической системы, структуру данных и функции ядра графической системы, используемые в системах автоматизированного проектирования (САПР), в автоматизированных системах управления (АСУ) и других областях, где применяются средства машинной графики.
     
     Настоящий стандарт соответствует ИСО 7942, за исключением:
     
     раздел 0 ИСО 7942 включен в стандарт как приложение 2;
     
     раздел 2 ИСО 7942 включен в стандарт как приложение 1;
     
     опущен раздел 4.12 ИСО 7942 и все примечания относительно "International Register of Graphikal Items ISO";
     
     дополнительно к ИСО 7942 введен минимальный уровень реализации ЯГС - уровень М (в соответствии с документом ANSI Х3.124.1-1985).
     
     

1. СФЕРА ДЕЙСТВИЯ И ОБЛАСТЬ ПРИМЕНЕНИЯ

1. СФЕРА ДЕЙСТВИЯ И ОБЛАСТЬ ПРИМЕНЕНИЯ

1.1. Устанавливаемый настоящим стандартом набор функций ЯГС предназначен для использования в прикладных задачах, которые вырабатывают спроектированные с помощью ЭВМ двухмерные изображения для векторных и растровых графических устройств вывода.
     

1.2. ЯГС должно обеспечивать ввод данных и взаимодействие с оператором графических устройств при помощи графической информации и сегментации изображений и обеспечивать их запоминание и изменение.
     

1.3. ЯГС представляет собой набор функций, которые могут быть реализованы программно или аппаратно, и служит для обеспечения связи между прикладной программой и графическими устройствами ввода и вывода.
     

1.4. Одним из основных понятий ЯГС является понятие графической рабочей станции (далее - станция), состоящей из набора устройств ввода и одного устройства вывода. Несколько станций могут использоваться параллельно.
     

1.5. В ЯГС включены функции записи информации во внешний файл и чтения из него.
     

1.6. Функции ЯГС объединены в двенадцать совместимых между собой уровней от минимального уровня до уровня, обеспечивающего все возможности ЯГС. Описание уровней приведено в подразд.2.10. В реализацию ЯГС должны входить функции только одного уровня. Реализацию следует считать неправильной, если она находится между двумя определенными уровнями или вне уровней. В реализациях доступ ко всем возможностям графических станций, который может быть осуществлен посредством функций ЯГС, должен осуществляться только через ЯГС.
     

1.7. ЯГС не зависит от особенностей языков программирования. Для связи с языками программирования необходимо описать имена функций и типы данных в терминах конкретного языка программирования.
     

1.8. Реализация ЯГС дает возможность пользователям машинной графики разрабатывать прикладные программы, которые будут переноситься между различными вычислительными системами и различными графическими устройствами.
     

1.9. Понятия и пояснения, применяемые в настоящем стандарте, приведены в приложении 1.
     
     

2. ЯДРО ГРАФИЧЕСКОЙ СИСТЕМЫ

2.1. Состав стандарта

2.1.1. Стандарт содержит 4 раздела и 9 приложений.
     
     

2.2. Введение в ЯГС

2.2.1. Ядро графической системы представляет собой функциональный интерфейс между прикладной программой и конфигурацией графических устройств ввода и вывода. Функциональный интерфейс содержит все основные функции для интерактивной и неинтерактивной графики и применим для широкого диапазона графического оборудования.
     

2.2.2. Этот интерфейс составлен таким образом, что позволяет прикладной программе не учитывать особенности аппаратуры. В результате получается интерфейс, представляющий единообразные для всех устройств примитивы вывода: ЛОМАНАЯ, ПОЛИМАРКЕР, ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ, МАТРИЦА ЯЧЕЕК, ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОДА, и единообразные классы устройств ввода: ВВОД ПОЗИЦИИ, ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ, ВВОД ЧИСЛА, ВЫБОР, УКАЗАНИЕ, ВВОД СТРОКИ.
     

2.2.3. В подразд.2.3 рассматриваются основные концепции ввода и вывода. Вводится основное понятие ЯГС, реализующее независимость от устройств, - графическая станция.
     

2.2.4. Средства манипуляции и изменения изображений вводятся посредством сегментации, динамических атрибутов и преобразований. Общее описание этих методов приведено в п.2.5.3 с учетом принятой концепции станции.
     

2.2.5. Совокупность станций позволяет осуществлять одновременный обмен данными с различными устройствами отображения. ЯГС предоставляет с помощью специальных станций средства для хранения графических данных как вне, так и внутри ядра. В последнем случае эта специальная станция дает возможность передавать графические данные непосредственно из нее на другие станции.
     

2.2.6. Полный набор функций поддерживается не каждой реализацией ЯГС. Каждая реализация ЯГС включает функции одного уровня. Уровни совместимы снизу вверх.
     

2.2.7. ЯГС определяет только независимое от языков программирования ядро графической системы. Для объединения с языком программирования ЯГС следует встроить в зависимый от языка слой, содержащий языковые соглашения, например, параметры и имена.
     

2.2.8. Модель функционирования ЯГС в графической системе представлена на черт.1. Каждый уровень программ может вызывать функции примыкающих нижних уровней. В основном прикладная программа будет использовать проблемно-ориентированный и языково-зависимый уровни, а также другие зависящие от применения уровни и ресурсы операционной системы. Все возможности станции, к которым можно обращаться через ЯГС, следует использовать только через ЯГС. Связь с языками программирования описана в приложении 5.
     

Черт.1. Модель функционирования ЯГС в графической системе

Модель функционирования ЯГС в графической системе

ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы

Черт.1

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. В ЯГС предусмотрено запоминание графической информации с целью ее долговременного хранения и обмена между системами. Станция вывода в метафайл ЯГС выполняет запись графической информации в так называемый метафайл, станция ввода из метафайла ЯГС считывает данные из метафайла. Кроме обычных функций вывода ЯГС, станция вывода в метафайл может принимать записи, содержащие неграфическую информацию. Ввод из метафайла осуществляется при помощи операций чтения и интерпретации, которые приводят к тем же результатам, как и при обращении к соответствующим функциям непосредственно из прикладной программы.
     
     

2.4. Графический вывод

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. Для каждого примитива существует только один атрибут третьего типа - ИДЕНТИФИКАТОР УКАЗАНИЯ. Он используется для идентификации примитива или группы примитивов в сегменте при указании на этот сегмент.
     

2.4.2.12. Таким образом к каждому примитиву вывода применяются три типа атрибутов (атрибуты, управляющие негеометрическими характеристиками, геометрические атрибуты и ИДЕНТИФИКАТОР УКАЗАНИЯ).
     

ЛОМАНАЯ:

ИНДЕКС ЛОМАНОЙ;

ТИП ЛИНИИ;

МАСШТАБ ТОЛЩИНЫ ЛИНИЙ;

ИНДЕКС ЦВЕТА ЛОМАНОЙ;

ФВА ТИПА ЛИНИИ;

ФВА МАСШТАБА ТОЛЩИНЫ ЛИНИЙ;

ФВА ИНДЕКСА ЦВЕТА ЛОМАНОЙ;

ИДЕНТИФИКАТОР УКАЗАНИЯ.

ПОЛИМАРКЕР:

ИНДЕКС ПОЛИМАРКЕРА;

ТИП МАРКЕРА;

МАСШТАБ МАРКЕРА;

ИНДЕКС ЦВЕТА ПОЛИМАРКЕРА;

ФВА ТИПА МАРКЕРА;

ФВА МАСШТАБА МАРКЕРА;

ФВА ИНДЕКСА ЦВЕТА ПОЛИМАРКЕРА;

ИДЕНТИФИКАТОР УКАЗАНИЯ.

ТЕКСТ:

ИНДЕКС ЦВЕТА;

ШРИФТ И ТОЧНОСТЬ ТЕКСТА;

МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ;

МЕЖЛИТЕРНЫИ ПРОСВЕТ;

ИНДЕКС ЦВЕТА ТЕКСТА;

ФВА ШРИФТА И ТОЧНОСТИ ТЕКСТА;

ФВА МАСШТАБА РАСШИРЕНИЯ ЛИТЕРЫ;

ФВА ИНДЕКСА ЦВЕТА ТЕКСТА;

ВЫСОТА ЛИТЕРЫ;

ВЕРТИКАЛЬ ЛИТЕРЫ;

НАПРАВЛЕНИЕ ТЕКСТА;

ВЫРАВНИВАНИЕ ТЕКСТА;

ИДЕНТИФИКАТОР УКАЗАНИЯ.

ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ:

ИНДЕКС ПОЛИГОНАЛЬНОЙ ОБЛАСТИ;

ВИД ЗАПОЛНЕНИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ;

ИНДЕКС ЗАПОЛНИТЕЛЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ;

ИНДЕКС ЦВЕТА ПОЛИГОНАЛЬНОЙ ОБЛАСТИ;

ФВА ВИДА ЗАПОЛНЕНИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ;

ФВА ИНДЕКСА ЗАПОЛНИТЕЛЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ;

ФВА ИНДЕКСА ЦВЕТА ПОЛИГОНАЛЬНОЙ ОБЛАСТИ;

РАЗМЕР ШАБЛОНА;

ТОЧКА ПРИВЯЗКИ ШАБЛОНА;

ИДЕНТИФИКАТОР УКАЗАНИЯ.

МАТРИЦА ЯЧЕЕК:

ИДЕНТИФИКАТОР УКАЗАНИЯ.

ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОДА:

Содержит или не содержит ни одного из приведенных выше наборов. Наличие атрибута ИДЕНТИФИКАТОР УКАЗАНИЯ обязательно.


     Взаимосвязи атрибутов приведены на черт.2.
     
     

Черт.2. Связь атрибутов

Связь атрибутов

ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы

Примечание. Атрибут ИДЕНТИФИКАТОР УКАЗАНИЯ выделен среди других атрибутов примитивов (только на этом чертеже) для наглядности. Полный список атрибутов содержится в п.2.4.2.12.
     

Черт.2


     
     Атрибуты примитивов, кроме ИДЕНТИФИКАТОРА УКАЗАНИЯ, описаны в подразд.2.4. В описании атрибуты печатаются прописными буквами (например, ВЫСОТА ЛИТЕРЫ, ИДЕНТИФИКАТОР УКАЗАНИЯ), характеристики печатаются как прописными, так и строчными буквами по контексту. Геометрические характеристики всегда регулируются геометрическими атрибутами и печатаются прописными буквами (например, ВЫСОТА ЛИТЕРЫ).
     
     Негеометрические характеристики могут регулироваться через ИНДЕКС примитива или посредством индивидуально определенных атрибутов. Негеометрические характеристики печатаются строчными буквами, если не используются соответствующие индивидуально определенные атрибуты, в противном случае они печатаются прописными буквами (например характеристика, тип линии и индивидуально определенный атрибут ТИП ЛИНИИ).
     

2.4.2.13. Поля в таблицах связок, шаблонов и цвета могут быть установлены отдельно для каждой станции. Некоторые стандартные предопределенные значения для полей таблицы содержатся в таблице описания станции и используются как начальные значения. Прикладная программа может выбрать стандартное значение или задать значение характеристики определенного поля явно. Для каждой станции вывода или ввода-вывода следует заранее определять лишь наиболее часто используемые (или предполагаемые для использования) комбинации значений характеристик. Другие комбинации значений могут быть заданы функцией ЗАДАТЬ ПРЕДСТАВЛЕНИЕ <примитива IшаблонаI цвета> (возможно после выяснения возможностей станции).
     
     На каждой станции категории ВЫВОД, ВВОД-ВЫВОД или МВЫВОД (вывод в метафайл) имеются таблицы связок ломаной, связок полимаркера, связок текста, связок полигональной области, шаблонов, цвета. Они являются атрибутами станции.
     
     Значения данных в этих таблицах могут быть динамически изменены. Изменение таблицы связок является единственным способом изменения изображения ранее выведенного примитива.
     
     Изменение в полях таблицы связок может отражаться на изображении примитива только в случае, если соответствующие ФВА (этого примитива) для характеристик из таблицы связок имеют значения СВЯЗАННЫЙ. Поле "восприятие динамического обновления" в таблице описания станции указывает, какие изменения приводят к неявной повторной генерации (НПГ) (возможно задержанной), а какие изменения могут быть выполнены немедленно (НОИ - немедленное обновление изображения).
     
     Если изменения выполняются немедленно, то их действие может распространяться на примитивы, находящиеся как вне, так и внутри сегментов.
          

2.4.3. Атрибуты примитива ЛОМАНАЯ

2.4.3.1. Ломаная не имеет геометрических атрибутов. Представлением ломаной на станции управляет ИНДЕКС ЛОМАНОЙ или набор индивидуально заданных атрибутов ломаной (ТИП ЛИНИИ, МАСШТАБ ТОЛЩИНЫ ЛИНИИ и ИНДЕКС ЦВЕТА ЛОМАНОЙ) или некоторая комбинация этих двух способов, в зависимости от значений ФВА для типа линии, масштаба толщины линии или индекса цвета ломаной. Атрибут ИНДЕКС ЛОМАНОЙ является указателем в таблице связок ломаной, каждое поле которой содержит значения для типа линии, масштаба толщины линии и индекса цвета ломаной.
     

2.4.3.2. Типы линий с 1 до 4 задают сплошную, штриховую, пунктирную и штрихпунктирную линии соответственно. Эти типы линий различают и реализуют все станции вывода и ввода-вывода. Значения типов линии больше 4 резервируют для будущей стандартизации. Типы линии с отрицательными значениями зависят от реализации. Тип линии определяет последовательность отрезков линии и промежутков между ними, которые повторяются при изображении ломаной. Будет ли эта последовательность начинаться заново или продолжаться при начале ломаной, при начале вычерчивания усеченной части ломаной, в каждой вершине ломаной, зависит от станции.
     

2.4.3.3. Толщина линии вычисляется как номинальная толщина, умноженная на масштаб толщины линии. Это значение преобразуется станцией в ближайшую по назначению доступную толщину линии.
          

2.4.4. Атрибуты примитива ПОЛИМАРКЕР

2.4.4.1. Полимаркер не имеет геометрических атрибутов. Представлением полимаркера на станции управляет ИНДЕКС ПОЛИМАРКЕРА или набор индивидуально заданных атрибутов полимаркера (ТИП МАРКЕРА, МАСШТАБ МАРКЕРА или ИНДЕКС ЦВЕТА ПОЛИМАРКЕРА) или комбинация этих двух способов в зависимости от значений ФВА для типа маркера, масштаба маркера и индекса цвета полимаркера. ИНДЕКС ПОЛИМАРКЕРА является указателем в таблице связок полимаркера, каждое поле которой содержит тип маркера, масштаб маркера и индекс цвета полимаркера.
     

2.4.4.2. Устанавливаются обязательные типы маркеров с 1 по 5: точка, знак плюс, звездочка, окружность и диагональный крест. Каждый из них центрируется в позиции, которую отмечает. Все станции вывода и ввода-вывода должны поддерживать типы маркеров с 1 по 5, обеспечивая хорошую их распознаваемость в данных позициях. Типы маркеров больше 5 резервируются для будущей стандартизации. Типы маркеров с отрицательными значениями зависят от реализации.
     
     Размер маркера вычисляется как номинальный размер, умноженный на масштаб маркера. Этот размер преобразуется станцией в ближайший реально доступный размер. Маркер типа 1 всегда изображается в виде наименьшей отображаемой точки. Маркер видим только тогда, когда позиция маркера находится внутри прямоугольника, по которому проводится отсечение (прямоугольник отсечения). Характер отсечения частично видимых маркеров зависит от реализации.
          

2.4.5. Атрибуты примитива ТЕКСТ

2.4.5.1. Текст имеет геометрические атрибуты ВЫСОТА ЛИТЕРЫ, ВЕРТИКАЛЬ ЛИТЕРЫ, НАПРАВЛЕНИЕ ТЕКСТА, ВЫРАВНИВАНИЕ ТЕКСТА.
     
     Примитив ТЕКСТ имеет также два неявно задаваемых атрибута: ШИРИНА ЛИТЕРЫ и ГОРИЗОНТАЛЬ ЛИТЕРЫ. Они неявно определяются функциями ЗАДАТЬ ВЫСОТУ ЛИТЕРЫ и ЗАДАТЬ ВЕРТИКАЛЬ ЛИТЕРЫ соответственно. Эти атрибуты отличны от обычных геометрических атрибутов - их значения связываются с примитивами ТЕКСТ в момент создания этих примитивов, они не могут быть изменены впоследствии и их значения подвергаются тем же преобразованиям, что и другие геометрические данные, содержащиеся в описании примитива.
     

2.4.5.2. Представлением текста на станции управляет ИНДЕКС ТЕКСТА или набор индивидуально задаваемых атрибутов текста (ШРИФТ и ТОЧНОСТЬ ТЕКСТА, МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ, МЕЖЛИТЕРНЫЙ ПРОСВЕТ, и ИНДЕКС ЦВЕТА ТЕКСТА) или некоторая комбинация этих двух способов в зависимости от значений ФВА для шрифта и точности текста, масштаба расширения литер, межлитерного просвета и индекса цвета текста. ИНДЕКС ТЕКСТА является указателем в таблице связок текста, каждое поле которой содержит значения для шрифта и точности представления текста, масштаба расширения литеры, межлитерного просвета и индекса цвета текста.
     

2.4.5.3. Точное управление визуальным представлением ТЕКСТА на станции обеспечивается следующими характеристиками: ВЫСОТА ЛИТЕРЫ, ШИРИНА ЛИТЕРЫ, МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ, НАПРАВЛЕНИЕ ТЕКСТА, ВЕРТИКАЛЬ ЛИТЕРЫ, ГОРИЗОНТАЛЬ ЛИТЕРЫ, МЕЖЛИТЕРНЫЙ ПРОСВЕТ и ВЫРАВНИВАНИЕ ТЕКСТА.
     
     Использование этих значений в отображаемом тексте определяется установленным значением атрибута шрифта и точности представления текста (шрифт и точность представления текста являются компонентами одного и того же атрибута). ВЫСОТА ЛИТЕРЫ определяет номинальную ширину литеры, реальная ширина определяется отношением ширины литеры к ее высоте, которое установлено разработчиком шрифта и может меняться от литеры к литере. Масштаб расширения литеры определяет отклонение отношения ширины к высоте литеры от отношения, указанного разработчиком шрифта. ВЕРТИКАЛЬ ЛИТЕРЫ задает вертикальное направление литеры. ГОРИЗОНТАЛЬ ЛИТЕРЫ определяет направление основания литеры. Имеют значение только направления, но не длины этих векторов.
     
     Для атрибута НАПРАВЛЕНИЕ ТЕКСТА возможными значениями являются ВПРАВО, ВЛЕВО, ВВЕРХ и ВНИЗ. Этот атрибут определяет направление вычерчивания строки текста. Для значения ВПРАВО строка текста пишется вдоль линии основания литеры в направлении, указываемом атрибутом ГОРИЗОНТАЛЬ ЛИТЕРЫ. Для значения ВЛЕВО направление текста противоположно направлению, указываемому атрибутом ГОРИЗОНТАЛЬ ЛИТЕРЫ. Для значения ВВЕРХ направление текста совпадает с направлением, определяемым атрибутом ВЕРТИКАЛЬ ЛИТЕРЫ. При значении ВНИЗ направление текста противоположно направлению, указываемому атрибутом ВЕРТИКАЛЬ ЛИТЕРЫ. При значениях ВВЕРХ и ВНИЗ литеры располагаются так, что их центры лежат на прямой линии в направлении, определяемом атрибутом ВЕРТИКАЛЬ ЛИТЕРЫ.
     

2.4.5.4. Значение межлитерного просвета определяет размер дополнительного промежутка между двумя соседними литерами. Если значение этого атрибута равняется нулю, литеры располагаются одна за другой вдоль направления, указываемого атрибутом НАПРАВЛЕНИЕ ТЕКСТА, без какого-либо дополнительного промежутка между ними. Отрицательное значение межлитерного просвета приведет к перекрытию соседних литер. Межлитерный просвет определяется как дробный множитель к номинальной высоте литер для данного типа шрифта.
     

2.4.5.5. Действие атрибутов ВЫСОТА ЛИТЕРЫ, ШИРИНА ЛИТЕРЫ, МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ, НАПРАВЛЕНИЕ ТЕКСТА, МЕЖЛИТЕРНЫЙ ПРОСВЕТ и ШРИФТ ТЕКСТА заключается в определении (воображаемого) прямоугольника со сторонами, параллельными осям координат, внутри которого расположен текст. Граничные стороны прямоугольника строятся следующим образом. Если значение атрибута НАПРАВЛЕНИЕ ТЕКСТА равно ВЛЕВО или ВПРАВО, то высота прямоугольника совпадает с высотой литеры выбранного шрифта, левая сторона прямоугольника совпадает с левой стороной самой левой литеры текста, а правая сторона прямоугольника - с правой стороной самой правой литеры текста и, аналогично, нижняя сторона прямоугольника совпадает с нижней стороной самой нижней литеры текста; ширина прямоугольника равна ширине самой широкой литеры выбранного шрифта.
     

2.4.5.6. Действие атрибутов ВЕРТИКАЛЬ ЛИТЕРЫ и ГОРИЗОНТАЛЬ ЛИТЕРЫ заключается в преобразовании прямоугольника, в результате чего получается параллелограмм (результат поворота и сдвига прямоугольника) - граничный параллелограмм текста.
     

2.4.5.7. Атрибут ВЫРАВНИВАНИЕ ТЕКСТА управляет расположением граничного параллелограмма относительно заданной позиции текста. Для простоты атрибут ВЫРАВНИВАНИЕ ТЕКСТА определяется, исходя из стандартных значений по умолчанию для ВЕРТИКАЛИ ЛИТЕРЫ и ГОРИЗОНТАЛИ ЛИТЕРЫ, когда граничный параллелограмм представляет собой прямоугольник. Горизонтальный компонент атрибута ВЫРАВНИВАНИЕ ТЕКСТА имеет четыре значения: ЛЕВОЕ, ЦЕНТРАЛЬНОЕ, ПРАВОЕ и ОБЫЧНОЕ. Если значение горизонтального компонента ЛЕВОЕ, то левая сторона граничного параллелограмма текста проходит через заданную позицию текста. Если значение горизонтального компонента ЦЕНТРАЛЬНОЕ, позиция текста лежит посредине между левой и правой сторонами граничного параллелограмма текста. Таким образом, если значение атрибута НАПРАВЛЕНИЕ ТЕКСТА ВВЕРХ или ВНИЗ, то прямая линия, проходящая через центральные линии литер, также проходит через позицию текста. Вертикальный компонент атрибута ВЫРАВНИВАНИЕ ТЕКСТА имеет шесть значений: ПО ВЕРХУ, ПО ЗАГЛАВНОЙ, ПО ЦЕНТРУ, ПО ОСНОВАНИЮ, ПО НИЗУ и ОБЫЧНОЕ. Каждое из этих значений относится к одной из специфических шрифтовых горизонтальных линий в определении литеры, как показано на черт.3. При значении ПО ВЕРХУ верхняя сторона граничного параллелограмма текста проходит через позицию текста. При значении ПО ЗАГЛАВНОЙ позиция текста лежит на линии заглавной всей строки (НАПРАВЛЕНИЕ ТЕКСТА равно ВЛЕВО или ВПРАВО) или на линии заглавной самой высокой литеры в строке (НАПРАВЛЕНИЕ ТЕКСТА равно ВЛЕВО или ВПРАВО), или на линии, равноотстоящей от центральных линий верхней и нижней литер (НАПРАВЛЕНИЕ ТЕКСТА равно ВВЕРХ или ВНИЗ). При значении ПО ОСНОВАНИЮ позиция текста лежит на линии основания всей строки (НАПРАВЛЕНИЕ ТЕКСТА равно ВЛЕВО или ВПРАВО) или на базовой линии нижней литеры строки (НАПРАВЛЕНИЕ ТЕКСТА равно ВВЕРХ или ВНИЗ).
     
     

Черт.3. Система координат шрифта

Система координат шрифта

ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы


Черт.3


     
     При значении ПО НИЗУ нижняя сторона граничного параллелограмма проходит через позицию текста.
     
     В общем случае ориентация, называемая горизонтальной, определяется направлением вектора ГОРИЗОНТАЛЬ ЛИТЕРЫ при значении ВПРАВО и противоположно ему при значении ВЛЕВО. Аналогично ориентация, которую называем вертикальной, определяется направлением вектора ВЕРТИКАЛЬ ЛИТЕРЫ при значении ВВЕРХ и противоположному ему при значении ВНИЗ.
     

2.4.5.8. Каждый компонент ВЫРАВНИВАНИЕ ТЕКСТА может иметь значение ОБЫЧНОЕ. Для каждого значения атрибута НАПРАВЛЕНИЕ ТЕКСТА действие определенного компонента, имеющего значение ОБЫЧНОЕ, эквивалентно одному из других значений этого компонента. В каждом случае значение эквивалентного выравнивания выбирается так, чтобы добиться естественного выравнивания для этого значения атрибута НАПРАВЛЕНИЕ ТЕКСТА. Полный список эквивалентных значений приведен в табл.1.
     
     

Таблица 1

НАПРАВЛЕНИЕ ТЕКСТА

Значение ОБЫЧНОЕ для горизонтального и вертикального выравниваний

ВПРАВО

(ЛЕВОЕ, ПО ОСНОВАНИЮ)

ВЛЕВО

(ПРАВОЕ, ПО ОСНОВАНИЮ)

ВВЕРХ

(ЦЕНТРАЛЬНОЕ, ПО ОСНОВАНИЮ)

ВНИЗ

(ЦЕНТРАЛЬНОЕ, ПО ВЕРХУ)


     
     Начальные значения геометрических атрибутов текста следующие: ВЫСОТА ЛИТЕРЫ МК - 0,01 (т.е. 1% высоты окна, принятого по умолчанию);
     
     ВЕРТИКАЛЬ ЛИТЕРЫ МК - (0,1);
     
     НАПРАВЛЕНИЕ ТЕКСТА - ВПРАВО;
     
     ВЫРАВНИВАНИЕ ТЕКСТА - (ОБЫЧНОЕ, ОБЫЧНОЕ).
     
     Начальные значения неявно задаваемых геометрических атрибутов текста следующие:
     
     ШИРИНА ЛИТЕРЫ МК - 0,01 (т.е. то же значение, что и ВЫСОТА ЛИТЕРЫ);
     
     ГОРИЗОНТАЛЬ ЛИТЕРЫ МК - (1,0).
     

2.4.5.9. Шрифт и точность представления текста вместе составляют единый атрибут текста. Значение номера шрифта текста используется для выбора определенного шрифта на станции. Каждая станция должна обеспечивать не менее одного шрифта, который позволял бы генерировать графическое представление литер, определенных в СТ СЭВ 359-76. Такой шрифт должен иметь номер 1. Номера шрифтов, большие 1, резервируются для будущей стандартизации. Номера шрифтов меньше нуля зависят от реализации.
     

2.4.5.10. Значение точности представления текста используется для выбора "степени близости" представления текста на графической станции к представлению текста, задаваемому атрибутами текста, не зависящими от станции, а также применяемыми в данный момент преобразованием и отсечением. Точность представления текста имеет следующие возможные значения:
     
     ДО СТРОКИ - строка литер генерируется с заданным шрифтом и располагается в заданной позиции текста. ВЫСОТА ЛИТЕРЫ, ШИРИНА ЛИТЕРЫ и масштаб расширения литеры учитываются в зависимости от возможностей станции. Атрибуты ВЕРТИКАЛЬ ЛИТЕРЫ, ГОРИЗОНТАЛЬ ЛИТЕРЫ, НАПРАВЛЕНИЕ ТЕКСТА, ВЫРАВНИВАНИЕ ТЕКСТА и межлитерный просвет нет необходимости использовать. Отсечение выполняется методом, зависящим от реализации и от графической станции;
     
     ДО ЛИТЕРЫ - строка литер генерируется с заданным шрифтом. Для представления каждой отдельной литеры характеристики ВЫСОТА ЛИТЕРЫ, ШИРИНА ЛИТЕРЫ, направление вертикали ВЕРТИКАЛЬ ЛИТЕРЫ и масштаб расширения литеры определяются способом, зависящим от станции. Расстояние между литерами вычисляется точно, причем для этой цели используются идеальные литеры, точно вычисленные с учетом характеристик текста и размеров шрифта. Положение результирующего граничного параллелограмма определяется атрибутом ВЫРАВНИВАНИЕ ТЕКСТА и позицией текста. Отсечение выполняется, как минимум, с точностью до одной литеры;
     
     ДО ШТРИХА - строка литер заданного шрифта изображается в позиции текста с использованием всех атрибутов текста. Строка литер усекается точно по границе прямоугольника отсечения. Точность представления текста ДО ШТРИХА не обязательно означает, что изображение строится из коротких вектор-штрихов; при условии, что шрифт удовлетворяет правилам, определяющим точность ДО ШТРИХА, он может быть реализован в любом виде, например в виде растрового представления.
     

2.4.5.11. Реализация ЯГС уровня вывода нуль должна поддерживать точность представления текста ДО СТРОКИ и ДО ЛИТЕРЫ. Если уровень вывода реализации выше чем нуль, то точности представления текста поддерживаются следующим образом. Станция может использовать точность представления текста более высокую, чем от нее требуется, т.е. если в конкретном шрифте поддерживается точность ДО ШТРИХА, то подразумевается, что точности ДО СТРОКИ и ДО ЛИТЕРЫ также доступны для этого шрифта, хотя графическая станция не обязательно должна поддерживать все точности данного шрифта (т.е. для заданного шрифта может отсутствовать точность ДО ШТРИХА или обе точности ДО ШТРИХА и ДО ЛИТЕРЫ). Шрифт текста и точность должны быть обязательно реализованы на станции. То есть для любого уровня ЯГС, поддерживающего шрифт точности ДО ШТРИХА, каждая станция, реализованная на конкретном оборудовании, должна поддерживать не менее одного текстового шрифта точности ДО ШТРИХА. Это должен быть шрифт с номером 1, содержащий набор литер в соответствии со СТ СЭВ 359-76. Это означает, что для тех реализаций, которые имеют недостаточно развитую аппаратную часть, для текста точности ДО ШТРИХА потребуется программный генератор литер. Не обязательно, чтобы все станции поддерживали все шрифты, но для тех из них, которые имеют такую возможность, для выбора одинаковых шрифтов следует использовать один и тот же номер шрифта.
     

2.4.5.12. Шрифты определяются только в реализации ЯГС. Разработчик шрифта задает форму каждой литеры, описывая ее в локальной двумерной декартовой системе координат шрифта. Шрифт может быть равномерным или пропорциональным. Для каждой литеры в системе координат шрифта определяются прямоугольник литеры, линия основания шрифта, средняя линия шрифта, линия заглавной и центральная линия (черт.3).
     
     Для равномерных шрифтов прямоугольники всех литер имеют одинаковый размер. Для пропорциональных шрифтов ширина прямоугольников литер может быть различной для разных литер. Границы прямоугольника литеры должны быть параллельны осям системы координат шрифта. Линия основания шрифта, средняя линия и линия заглавной должны быть параллельны оси Х и находиться в пределах, ограниченных вертикальными линиями прямоугольника литеры. Положение средней линии шрифта задается разработчиком шрифта с целью выравнивания строк текста. Центральная линия параллельна оси Y и делит литеру пополам. Точное положение центральных линий для всех литер определяется разработчиком шрифта.
     

2.4.5.13. Высота литеры в системе координат шрифта задается расстоянием от линии основания шрифта до линии заглавной. Ширина литеры может включать в себя промежуток с любой стороны реальной литеры и этот промежуток в общем случае поровну делится между левой и правой сторонами литеры. Предполагается, что литеры имеют одинаковые размеры, за исключением литер с выносными элементами (кернами), которые могут выходить за границы области представления литер.
     
     В общем случае верхняя граница области представления литер для шрифта совпадает или очень близка к линии заглавной или к линии верхней границы выносного элемента, а нижняя граница - к линии нижней границы выносного элемента. В промежутке между верхней линией и линией заглавной, если он существует, может располагаться дополнительный знак, размещаемый над литерой, например знак ударения. Эти и другие детали определяются разработчиком шрифта. При горизонтальном размещении литер в вертикальном направлении должны исключаться наложения верхних и нижних выносных элементов соседних литер (соответствует типографскому термину "плотный набор").
     

2.4.5.14. Значения атрибутов ВЫСОТА ЛИТЕРЫ и ВЕРТИКАЛЬ ЛИТЕРЫ задаются в мировых координатах, в то же время сами литеры генерируются на станции в координатах устройства, используя зависящие от станции шрифт и точность. Поэтому геометрические атрибуты должны быть преобразованы так, чтобы станция имела возможность приемлемо создавать литеры. Вместе с кодами литер передаются значения вектора высоты литеры, параллельного вектору ВЕРТИКАЛЬ ЛИТЕРЫ и имеющего длину, равную значению атрибута ВЫСОТА ЛИТЕРЫ, и вектора ширины, параллельного вектору ГОРИЗОНТАЛЬ ЛИТЕРЫ и имеющего длину, равную значению атрибута ШИРИНА ЛИТЕРЫ. Эти векторы подвергаются преобразованию нормирования, преобразованию сегмента, если текст входит в состав сегмента, и преобразованию станции. Они также запоминаются в сегментах. Затем векторы могут быть использованы генератором литер на станции. Таким образом форма отдельных литер может быть искажена преобразованием нормирования с различными коэффициентами по осям Х и Y и преобразованием сегментов.
     

2.4.5.15. Высота литеры на станции определяется длиной преобразованного вектора высоты. Направление вертикали литеры определяется направлением преобразованного вектора высоты. Ширина литеры задается длиной преобразованного вектора ширины, умноженного на отношение ширины литеры заданного шрифта к ее высоте и на масштаб расширения литеры. Направление линии основания литеры определяется направлением преобразованного вектора ширины. Литеры размещаются в граничном параллелограмме текста последовательно в соответствии со значениями атрибута НАПРАВЛЕНИЕ ТЕКСТА и МЕЖЛИТЕРНЫЙ ПРОСВЕТ.
     
     Граничный параллелограмм текста затем располагается в соответствии со значением атрибута ВЫРАВНИВАНИЕ ТЕКСТА и позиции текста, содержащейся в задании примитива ТЕКСТ.
     
     На черт.4-7 приведены примеры действия различных значений атрибутов текста. На черт.8 показаны примеры, иллюстрирующие воздействия различных преобразований нормирования на вид изображаемого текста.
     
     

Черт.4. Влияние измерений геометрических атрибутов текста

Влияние измерений геометрических атрибутов текста

ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы


     Примечания:
     

1. В показанных примерах текст имеет точность ДО ШТРИХА, коэффициент расширения литеры равен 1 и межлитерный просвет равен 0.
     

2. В этих примерах линия заглавной совпадает с верхней линией.
     

3. Измененные атрибуты подчеркнуты.
          

Черт.4


     

Черт.5. Влияние изменений негеометрических атрибутов текста

Влияние изменений негеометрических атрибутов текста

ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы


     Примечания:
     

1. В показанных примерах значения геометрических атрибутов приняты по умолчанию, а точность представления текста ДО ШТРИХА.
     

2. Измененные атрибуты подчеркнуты.
          

Черт.5

Черт.6. Влияние комбинированных изменений атрибутов текста


Влияние комбинированных изменений атрибутов текста

ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы


     Примечания:
     

1. Подчеркнуты изменения относительно верхнего примера, показанного на черт.4 и 5.
     

2. В последнем примере показаны средняя линия и все прямоугольники литер.
          

Черт.6


     

Черт.7. Влияние нескольких изменений в атрибутах текста

Влияние нескольких изменений в атрибутах текста

ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы


     Примечание.
     
     Подчеркнуты изменения относительно верхнего примера черт.4 и 5.
          

Черт.7


    

Черт.8. Влияние различных преобразований нормирования на текст точности до ШТРИХА


Влияние различных преобразований нормирования
на текст точности до ШТРИХА

ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы


Черт.8

2.4.6. Атрибуты примитива ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ

2.4.6.1. Полигональная область имеет геометрический атрибут ТОЧКА ПРИВЯЗКИ ШАБЛОНА, а также два неявно задаваемых атрибута ВЕРТИКАЛЬ ШАБЛОНА и ГОРИЗОНТАЛЬ ШАБЛОНА. Они неявно определяются функцией ЗАДАТЬ РАЗМЕР ШАБЛОНА. Их значения связываются с примитивами ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ при создании примитивов и не могут быть изменены впоследствии. На значения этих атрибутов действуют те же преобразования, что и на геометрические данные, содержащиеся в описании примитива.
     

2.4.6.2. Представлением полигональной области на графической станции управляет ИНДЕКС ПОЛИГОНАЛЬНОЙ ОБЛАСТИ или набор индивидуально задаваемых атрибутов полигональной области (ВИД ЗАПОЛНЕНИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ, ИНДЕКС ЗАПОЛНИТЕЛЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ и ИНДЕКС ЦВЕТА ПОЛИГОНАЛЬНОЙ ОБЛАСТИ или некоторая комбинация этих двух способов в зависимости от значений ФВА для вида заполнения индекса заполнителя и индекса цвета полигональной области.


     ИНДЕКС ПОЛИГОНАЛЬНОЙ ОБЛАСТИ является указателем в таблице связок полигональной области, каждая запись которой содержит значения вида заполнения, индекса заполнителя и индекса цвета полигональной области.
     

2.4.6.3. Вид заполнения полигональной области используется для определения способа заполнения области. Он может иметь следующие значения:
     
     ПУСТО - область не заполняется, а только вычерчивается граничная ломаная цветом, задаваемым индексом цвета полигональной области, который выбран либо через связку полигональной области, или индивидуально в зависимости от значения соответствующего ФВА. Тип линии и толщина линии зависят от реализации.
     
     ЗАЛИВКА ЦВЕТОМ - внутренность многоугольника заполняется одним цветом, задаваемым индексом цвета полигональной области, который выбран либо через связку полигональной области, либо индивидуально в зависимости от значения соответствующего ФВА.
     
     ПО ШАБЛОНУ - внутренность многоугольника заполняется с использованием индекса заполнителя полигональной области, который выбран через связку полигональной области, или индивидуально в зависимости от значения соответствующего ФВА. В этом контексте индекс вида заполнителя может рассматриваться как индекс шаблона.
     
     ШТРИХОВКА - внутренность многоугольника заполняется с использованием индекса цвета полигональной области и индекса заполнителя полигональной области, которые выбраны через связку полигональной области или индивидуально в зависимости от значения соответствующего ФВА. Индекс заполнителя полигональной области используется как показатель в списке видов штриховки; в этом случае он иногда рассматривается как индекс штриховки.
     

2.4.6.4. Для вида заполнения ПО ШАБЛОНУ шаблон определяется представлением шаблона, которое задается матрицей индексов цвета размером (NXГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системыNY), являющихся указателями в таблице цвета. Размер и позиция начала шаблона определяются полем шаблона. Поле шаблона, представляющее собой параллелограмм, задается атрибутами ГОРИЗОНТАЛЬ ШАБЛОНА и ВЕРТИКАЛЬ ШАБЛОНА, определяемыми относительно атрибута ТОЧКА ПРИВЯЗКИ ШАБЛОНА. Концептуально поле шаблона подразделяется на сетку ячеек размером (NXГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системыNY). Матрица индексов цвета связывается с ячейками следующим образом: элемент (1, NY) связывается с ячейкой, один из углов которой определяется значением атрибута ТОЧКА ПРИВЯЗКИ ШАБЛОНА; элементы с возрастающим первым индексом связываются с последовательными ячейками в направлении, указываемом атрибутом ГОРИЗОНТАЛЬ ШАБЛОНА; элементы с убывающим вторым индексом связываются с последовательными ячейками в направлении, указываемом атрибутом ВЕРТИКАЛЬ ШАБЛОНА. Атрибуты, определяющие поле шаблона, подвергаются всем преобразованиям, которые формируют преобразованное поле шаблона. Шаблон отражается на многоугольник путем многократного повторения преобразованного поля шаблона в направлениях, параллельных его сторонам, до заполнения всего многоугольника.
   

2.4.6.5. Отображение преобразованных ячеек шаблона на пиксели растрового дисплея выполняется по следующим правилам:
     
     если центр пикселя лежит внутри параллелограмма, определяемого ячейкой, то ему приписывается цвет этой ячейки;
     
     пикселю присваивается цвет ячейки, соответствующий центру пикселя.
     
     Для станции, в которой могут применяться шаблоны, но нет средств для их преобразования, для заполнения многоугольника возможна генерация непреобразованных шаблонов.
     

2.4.6.6. Для вида заполнения ШТРИХОВКА индекс штриховки выбирается из видов штриховки. Виды штриховки больше нуля резервируются для будущей стандартизации; виды штриховки меньше нуля зависят от станции.
     
     Будет ли штриховка подвергаться преобразованиям или нет зависит от станции.
     

2.4.6.7. Вид заполнения ПУСТО должен быть реализован на каждой станции вывода или ввода-вывода. Реализация остальных видов заполнения ЗАЛИВКА ЦВЕТОМ, ПО ШАБЛОНУ и ШТРИХОВКА зависит от конкретной станции.
          

2.4.7. Атрибуты примитива МАТРИЦА ЯЧЕЕК

2.4.7.1. Матрица ячеек не имеет атрибутов, кроме ИДЕНТИФИКАТОРА УКАЗАНИЯ. При этом матрица индексов цвета, которые являются указателями в таблице цвета, является частью задания матрицы ячеек.
          

2.4.8. Атрибуты примитива ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОДА

2.4.8.1. Обобщенный примитив вывода (ОПВ) не имеет явно задаваемых метрических атрибутов. Подобная информация может быть задана в блоке данных ОПВ. Представлением ОПВ на станции управляют наборы атрибутов ломаной, полимаркера, текста, полигональной области, но это представление может и не зависеть ни от одного из этих наборов. Будут ли при этом использованы индексы связок или индивидуально задаваемые атрибуты, зависит от значений соответствующих ФВА. Наборы атрибутов, наиболее подходящие для заданной функции ОПВ, включаются в состав ОПВ как часть его задания и записываются в таблицу описания станции. Например, если ОПВ является матрицей ячеек, то матрица индексов цвета должна присутствовать в блоке данных этого ОПВ.
          

2.4.9. Цвет

2.4.9.1. В ЯГС цвет определяется в нескольких различных ситуациях. Он может быть атрибутом примитива, тогда он задается через связку этого примитива, или как индивидуальный атрибут цвета этого примитива. Он может быть частью шаблона для примитива ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ, когда задается массив значений цвета, или цвет может быть частью самого примитива, называемого МАТРИЦА ЯЧЕЕК, когда также задается массив значений цветов. В каждом случае цвет определяется как индекс в таблице цвета на станции. На каждой станции имеется таблица цвета, в которой указаны все индексы цвета.
     

2.4.9.2. Размер таблицы цвета зависит от станции, но записи с номерами ноль и единица обязательны. Запись с номером ноль соответствует цвету фона. Цвет фона - это цвет поверхности визуализации после того, как она очищена. Запись с номером единица является цветом накладываемого изображения, принимаемым по умолчанию, а записи с номерами больше единицы относятся к альтернативным цветам накладываемого изображения. Записи в таблице могут быть установлены функцией ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА, которая определяет цвет как комбинацию интенсивностей красного, зеленого и синего компонентов. Заданный цвет преобразуется в ближайший доступный цвет, поддерживаемый станцией. На некоторых станциях может оказаться невозможным изменить цвет фона, в этом случае преобразование заданного цвета в ближайший доступный цвет для фона может отличаться от аналогичного преобразования того же цвета, но когда он является цветом накладываемого изображения.
     

2.4.9.3. Некоторые станции не имеют возможности воспроизводить цвета (например станции могут воспроизводить цвет лишь с одним значением интенсивности красной, зеленой, синей составляющих либо они могут генерировать цвета только в виде интенсивностей одного и того же цвета); будем называть такие станции монохромными станциями. Способность станции воспроизводить цвета отмечается в поле "возможность цветопередачи" в таблице описания станции. На монохромных станциях интенсивность вычисляется из значений цвета зависящим от станции способом.
     
     

2.5. Станции

2.5.1. Характеристики станции

2.5.1.1. В основе ЯГС лежит концепция абстрактных станций. Они представляют собой логический интерфейс, через который прикладная программа управляет физическими устройствами. Некоторые специальные станции обеспечивают средства для хранения и обмена графической информацией.
     

2.5.1.2. Для каждого типа станции, поддерживаемого реализацией ЯГС (за исключением специальных станций), имеется таблица описания станции, содержащая возможности и характеристики этой станции. Прикладная программа может сделать запрос об имеющихся возможностях и соответствующим образом скорректировать свой режим работы. Если станция не обеспечивает запрошенных возможностей, предусмотрена стандартная реакция на ошибку. Минимальный набор возможностей станции детально описан в подразд.2.10.
     

2.5.1.3. Абстрактная станция с максимальными возможностями:
     
     имеет одну адресуемую поверхность визуализации с фиксированной разрешающей способностью;
     
     допускает использование только прямоугольных пространств визуализации (пространство визуализации не может состоять из нескольких отдельных частей);
     
     позволяет определить и использовать пространство отображения меньше максимально возможного с гарантией, что никакое изображение не появится вне заданного пространства визуализации;
     
     поддерживает несколько типов линий, шрифтов текста, размеров литер и т.д. для обеспечения возможности изображения примитивов вывода с различными атрибутами;
     
     имеет одно или несколько логических устройств ввода для каждого класса ввода;
     
     позволяет производить ввод в режимах ЗАПРОС, ОПРОС, СОБЫТИЕ;
     
     дает возможность устанавливать логические устройства ввода в режим ЗАПРОС, ОПРОС и СОБЫТИЕ независимо друг от друга;
     
     запоминает сегменты и обеспечивает средства для измерения сегментов и манипуляции с ними.
     
     Совсем не обязательно, чтобы станция обладала всеми перечисленными возможностями.
     

2.5.1.4. Каждый тип станции может быть отнесен к одной из шести категорий: станция вывода (ВЫВОД), станция ввода (ВВОД); станция ввода и вывода (ВВОД-ВЫВОД), общая память сегментов (ОПС), вывод в метафайл (МВЫВОД), ввод из метафайла (МВВОД).
     

2.5.1.5. Станция категории ВЫВОД позволяет осуществлять только вывод графической информации. Она может изображать все примитивы вывода, кроме, возможно, ОБОБЩЕННОГО ПРИМИТИВА ВЫВОДА, который является необязательным. Минимальные требования к средствам изображения примитивов ТЕКСТ и ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ перечислены в п.2.4, а для примитива МАТРИЦА ЯЧЕЕК - в п.3.3.
     

ЯГС допускает различную форму представления примитивов вывода на разных станциях, позволяя наилучшим образом использовать специфические возможности каждой станции. Вариации могут быть описаны с помощью следующих возможностей:
     
     представление ломаной линии;
     
     представление полимаркера;
     
     представление текста;
     
     представление полигональной области;
     
     представление шаблона;
     
     представление цвета;
     
     режим задержки;
     
     преобразование станции.
     
     На черт.2 отражены взаимосвязи атрибутов станции.
     

2.5.1.6. Станция категории ВВОД имеет не менее одного логического устройства ввода и не содержит средств вывода.
     

2.5.1.7. Станция категории ВВОД-ВЫВОД имеет средства ввода и вывода. Кроме того, станция этой категории при реализации ЯГС представляет дополнительные требования, касающиеся логических устройств ввода.
     

2.5.1.8. Станции категории ОПС, МВЫВОД и МВВОД являются специальными средствами ЯГС, которые обеспечивают возможности временного или постоянного хранения графической информации. Они считаются станциями только с целью сохранения единообразия управления, но в остальном обладают совершенно различными характеристиками.
     
     Реальные станции могут представлять более широкие возможности, чем те, которые предусмотрены в таблице описания станции. Они не могут быть использованы ЯГС. Однако, если станция обладает собственными вычислительными ресурсами, эти дополнительные возможности могут быть доступны через ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОДА или РАСШИРЕНИЕ, либо они могут быть использованы локально оператором станции. Например, если станция имеет два носителя изображения, то оператор может локально подключать то или другое устройство, не сообщая об этом ЯГС или прикладной программе. С помощью ЯГС можно управлять более чем одним носителем изображения, определяя отдельную станцию для каждого носителя изображения.
          

2.5.2. Выбор станции

2.5.2.1. Прикладная программа указывает станцию посредством идентификатора станции. Связь со станцией устанавливается функцией ОТКРЫТЬ СТАНЦИЮ, которая связывает идентификатор станции с типом станции и идентификатором соединения (например номером устройства в ФОРТРАНе). Состояние каждой открытой станции отражено в таблице состояния станции.
     
     Манипуляции над сегментами и ввод могут выполняться на всех открытых станциях. Отображение примитивов вывода и сохранение сегментов производятся только на активных станциях. Открытая станция становится активной после обращения к функции АКТИВИРОВАТЬ СТАНЦИЮ.
     

2.5.2.2. При помощи функции ДЕАКТИВИРОВАТЬ СТАНЦИЮ активная станция становится неактивной. Открытая станция закрывается функцией ЗАКРЫТЬ СТАНЦИЮ.
     
     Следующая последовательность функций иллюстрирует выбор станций:
     
     ОТКРЫТЬ СТАНЦИЮ (H1, инд. связи 1, станция типа А);
     
     ОТКРЫТЬ СТАНЦИЮ (Н2, инд. связи 2, станция типа В),
     
     АКТИВИРОВАТЬ СТАНЦИЮ (H1);
     
     Функции вывода; {генерируются только на H1};
     
     функции ввода; {возможны H1, H2};
     
     АКТИВИРОВАТЬ СТАНЦИЮ (H2);
     
     Функции вывода; {генерируются на H1, H2};
     
     ДЕАКТИВИРОВАТЬ СТАНЦИЮ (H1);
     
     Функции вывода; {генерируются только на H2};
     
     Функции ввода; {возможны H1, H2};
     
     ЗАКРЫТЬ СТАНЦИЮ (H1);
     
     ДЕАКТИВИРОВАТЬ СТАНЦИЮ (H2);
     
     ЗАКРЫТЬ СТАНЦИЮ (H2).
          

2.5.3. Задержка изменений изображения

2.5.3.1. Носитель изображения на станции должен в максимальной степени отражать действительное состояние изображения в том виде, в каком оно создается прикладной программой. Однако для более эффективного использования возможностей станции ЯГС позволяет задерживать на некоторый промежуток времени действия, запрашиваемые прикладной программой. В течение этого промежутка времени состояние станции может быть неопределенным.
     

2.5.3.2. Функция ЗАДАТЬ РЕЖИМ ЗАДЕРЖКИ позволяет прикладной программе при помощи двух атрибутов выбрать тот режим задержки, который учитывает возможности станции и требования прикладной программы. Режим задержки позволяет управлять моментом времени, когда проявляются визуальные эффекты работы функции вывода. Неявная повторная генерация управляет моментом времени, когда проявляются визуальные эффекты работы функций вывода (под изменением изображения подразумевается любое измерение, а не только добавление примитивов к изображению).


     Концепция задержки относится только к видимым эффектам функций ЯГС. Воздействия функций на память сегментов или на состояние станции (концептуально) не задерживаются.
     

2.5.3.3. Момент обновления управляет возможной задержкой функции вывода; например данные, передаваемые в устройство, могут быть буферизованы, чтобы оптимизировать передачу данных. Режим задержки может быть следующим (расположены в порядке увеличения задержки):
     
     БЫСТРО (с максимальной быстротой) - визуальный эффект действия функции проявляется на станции с максимальной быстротой. ЯГС гарантирует, что действия, необходимые для достижения этого визуального эффекта, инициируются до того как управление будет возвращено прикладной программе, вследствие возможных задержек не под влиянием ЯГС, эти действия не обязательно заканчиваются до момента передачи управления;
     
     ГЛОБ (до глобального взаимодействия) - визуальный эффект действия каждой функции проявляется на станции до начала следующего взаимодействия с логическим устройством ввода на любой станции. Если взаимодействие на какой-либо станции уже началось, то визуальный эффект будет проявляться с максимальной быстротой;
     
     ЛОК (до локального взаимодействия) - визуальный эффект действия каждой функции проявляется на станции до начала следующего взаимодействия с логическим устройством ввода на этой станции. Если взаимодействие уже началось, то эффект будет проявляться с максимальной быстротой;
     
     ЛЮБОЙ (в любое время) - визуальный эффект действия каждой функции появится на станции через некоторое время.
     

2.5.3.4. Задержка применяется к следующим функциям, генерирующим вывод:
     
     ЛОМАНАЯ;
     
     ПОЛИМАРКЕР;
     
     ТЕКСТ;
     
     ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ;
     
     МАТРИЦА ЯЧЕЕК;
     
     ВСТАВИТЬ СЕГМЕНТ;
     
     СВЯЗАТЬ СЕГМЕНТ СО СТАНЦИЕЙ;
     
     ВЫВЕСТИ СЕГМЕНТ НА СТАНЦИЮ;
     
     ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ.
     

2.5.3.5. Не существует каких-либо обязательных значений режима задержки, которые применялись бы для задержки визуального эффекта функций вывода. Задержка может быть достигнута с помощью средств хранения сегментов и манипулирования с атрибутами видимости. Таким образом, буфер для отложенных действий может быть выбран способом, зависящим от реализации.
     

2.5.3.6. Некоторые функции на определенных станциях выполняются немедленно, в то время как на других станциях для их выполнения требуется повторная генерация всего изображения. Например, когда для внесения изменений в изображение требуется положить новый лист бумаги на графопостроитель. Значения параметра "допустимость динамического обновления" в таблице описания станции указывают:
     
     какие изменения приводят к неявной повторной генерации (НПГ);
     
     какие изменения выполняются немедленно (НОИ).
     
     Если изменения выполняются немедленно, то они оказывают воздействия на все примитивы как внутри сегментов, так и вне их. В случае повторной генерации все примитивы вне сегментов будут удалены.
     

2.5.3.7. НПГ эквивалентна вызову функции ПЕРЕРИСОВАТЬ ВСЕ СЕГМЕНТЫ. Задержка этого действия управляется режимом НПГ, содержащимся в таблице состояния станции. Этот режим принимает следующие значения:
     
     ЗАПРЕЩЕНА - НПГ запрещена до тех пор, пока не будет явного запроса, т.е. поле "при обновлении необходим вывод нового кадра" не примет значение ДА;
     
     РАЗРЕШЕНА - НПГ изображения разрешена.
     

2.5.3.8. НПГ необходима в следующих ситуациях:
     

а) если перечисленные ниже функции оказывают видимый эффект:
     

1) если поле "допустимость динамического обновления" в таблице описания станции имеет значение НПГ для соответствующих представлений:
     
     ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ;
     
     ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА;
     
     ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА;
     
     ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ;
     
     ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА;
     
     ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА;
     

2) если поле "допустимость динамического обновления" в таблице описания станции имеет значение НПГ для преобразований станции:
     
     ЗАДАТЬ ОКНО СТАНЦИИ;
     
     ЗАДАТЬ ПОЛЕ ВЫВОДА СТАНЦИИ;
     

3) если поле "допустимость динамического обновления допустимо" в таблице описания станции имеет значение НПГ для приоритета сегмента:
     
     если в открытый сегмент, перекрывающий сегмент с более высоким приоритетом, добавляются примитивы;
     
     ЛОМАНАЯ;
     
     ПОЛИМАРКЕР;
     
     ТЕКСТ;
     
     ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ;
     
     МАТРИЦА ЯЧЕЕК;
     
     ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОДА;
     
     ВСТАВИТЬ СЕГМЕНТ;
     
     если выполнение одной из следующих функций влияет на приоритет сегмента:
     
     УДАЛИТЬ СЕГМЕНТ;
     
     УДАЛИТЬ СЕГМЕНТ СО СТАНЦИИ;
     
     СВЯЗАТЬ СЕГМЕНТ СО СТАНЦИЕЙ;
     
     ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА;
     
     ЗАДАТЬ ВИДИМОСТЬ;
     
     ЗАДАТЬ ПРИОРИТЕТ СЕГМЕНТА;
     

4) если поле "допустимость динамического обновления" в таблице описания станции имеет значение НПГ для преобразования сегмента:
     
     ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА;
     

5) если поле "допустимость динамического обновления" в таблице описания станции имеет значение НПГ для видимости - видимый становится невидимым:
     
     ЗАДАТЬ ВИДИМОСТЬ (НЕВИДИМЫЙ);
     

6) если поле "допустимость динамического обновления" в таблице описания станции имеет значение НПГ для видимости - невидимый становится видимым:
     
     ЗАДАТЬ ВИДИМОСТЬ (ВИДИМЫЙ);
     

7) если поле "допустимость динамического обновления" в таблице описания станции имеет значение НПГ для выделения:
     

ЗАДАТЬ ВЫДЕЛЕНИЕ;
     

8) если поле "допустимость динамического обновления" в таблице описания станции имеет значение НПГ для удаления сегмента:
     
     УДАЛИТЬ СЕГМЕНТ;
     
     УДАЛИТЬ СЕГМЕНТ СО СТАНЦИИ;
     

б) если одна из вышеперечисленных ситуаций возникает как результат обращения к функции ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ.
     

2.5.3.9. НПГ должна выполняться (включая удаление примитивов, находящихся вне сегментов) только в тех случаях, когда действие какой-либо из перечисленных функций вызывает видимый эффект на экране дисплея. Например, если удаляется невидимый сегмент, повторную генерацию не выполняют. Допускается, чтобы в конкретной реализации выполнялась неявная повторная генерация в любом из приведенных выше случаев. Эффект задержанных действий может стать видимым в любой момент времени, если воспользоваться функцией ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ или соответствующим образом изменить состояние задержки.
          

2.5.4. Очистка носителя изображения

2.5.4.1. Существуют два варианта проведения очистки носителя изображения:
     
     очистка носителя изображения производится даже в том случае, если он пуст;
     
     производится проверка, заполненность носителя изображения, чтобы избежать бесполезной дополнительной очистки.
     
     Второй вариант означает, что носитель изображения очищается лишь в случае необходимости. Обычно такая ситуация возникает, когда носитель изображения не пуст (т.е. когда запись "заполненность носителя изображения" в таблице состояния станции имеет значение НЕ ПУСТ). Запись "носитель изображения пуст" в таблице состояния станции устанавливается равной НЕ ПУСТ, если выходные данные были направлены на устройство. Значение НЕ ПУСТ может быть установлено даже в том случае, если выходные данные не появились на носителе изображения (например, примитив ОПВ, который в результате операции отсечения на устройстве был полностью исключен).
     
     Оба варианта очистки носителя изображения доступны пользователю через функцию ОЧИСТИТЬ СТАНЦИЮ. Второй вариант используется также в функциях ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ и ПЕРЕРИСОВАТЬ ВСЕ СЕГМЕНТЫ на СТАНЦИИ.
          

2.5.5. Удаление примитивов, находящихся вне сегментов

2.5.5.1. Удаление примитивов, находящихся вне сегментов, производится в следующих ситуациях:
     

а) при обращении к функциям ЯГС:
     
     ОЧИСТИТЬ СТАНЦИЮ;
     
     ПЕРЕРИСОВАТЬ ВСЕ СЕГМЕНТЫ НА СТАНЦИИ;
     
     ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ,
     
если параметр "флаг повторной генерации" имеет значение ВЫПОЛНИТЬ и если поле "при обновлении необходим вывод нового кадра" в таблице состояния станции имеет значение ДА.
     
     ЗАДАТЬ РЕЖИМ ЗАДЕРЖКИ, если параметр "режим неявной повторной генерации" имеет значение РАЗРЕШЕНО и поле "при обновлении необходим вывод нового кадра" имеет значение ДА;
     

б) если необходима неявная повторная генерация и параметр "режим неявной повторной генерации" имеет значение РАЗРЕШЕНО;
     

в) если любая из вышеописанных ситуаций возникает как результат работы функции ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ.
          

2.5.6. Передача сообщений на станцию


     Функция СООБЩЕНИЕ позволяет передать на станцию строку литер. Прикладная программа не может управлять расположением и формой представления строки литер, и в конкретной реализации допускается помещать устройство, не входящее в состав станции, но связанное с ней.
     
     

2.6. Системы координат и преобразования

2.6.1. Преобразования нормирования

2.6.1.1. В ЯГС прикладной программист может строить графическое изображение из отдельных частей, каждая из которых концептуально определяется в своей собственной системе мировых координат (МК). Взаимное расположение этих частей описывается в едином для всех пространстве нормированных координат (НК), в которое отображаются все заданные системы мировых координат. Набор преобразований нормирования определяет преобразования из систем мировых координат в единое пространство нормированных координат, которое можно рассматривать как независимый от станций абстрактный носитель изображения. Такое нормированное изображение можно запомнить и затем подвергнуть преобразованиям через механизм сегментации; оно также может быть записано в метафайл.
     

2.6.1.2. В любой момент времени одно из преобразований нормирования является текущим для вывода примитивов и используется для преобразования МК, заданных, например в примитивах вывода и геометрических атрибутах, в нормированные координаты.
     

2.6.1.3. Преобразование нормирования определяется путем задания границ области в системе МК (ОКНО), которая должна быть отображена в заданную область в пространстве нормированных координат (поле вывода). Границы окна и поля вывода определяют прямоугольники, стороны которых параллельны осям координат в МК и НК. Границы включаются в состав прямоугольников. Преобразование нормирования производит отображение МК в НК, которое включает перенос и масштабирование с положительными коэффициентами (возможно различными) для обеих координатных осей.
     

2.6.1.4. Хотя пространство НК концептуально простирается до бесконечности, та его часть, в которой должно быть размещено поле вывода и которую можно увидеть на станции, ограничивается диапазоном [0., 1.]ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы[0., 1.]. Кроме того, в конкретной реализации может поддерживаться только ограниченный диапазон НК. Однако этот диапазон всегда существенно больше, чем квадрат [0., 1.]ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы[0., 1.], что позволяет эффективно использовать функцию ВСТАВИТЬ СЕГМЕНТ. В частности, всегда должен быть обеспечен диапазон изменения НК в пределах [-7., 7.]ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы[-7., 7.].
  

2.6.1.5. Каждое преобразование нормирования идентифицируется номером - целым числом в диапазоне от нуля до зависящего от реализации ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы, которое содержится в таблице состояния ЯГС. Преобразование нормирования с номером нуль является тождественным преобразованием, отображающим область [0., 1.,]ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы[0., 1.,] МК в область [0., 1.,]ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы[0., 1.,] НК. Это преобразование не может быть изменено.
     
     Первоначально все другие преобразования нормирования устанавливаются равными преобразованию с номером ноль. После того как ЯГС открыто, эти преобразования в любой момент могут быть заменены на другие преобразования. ЯГС поддерживает несколько различных преобразований нормирования, прикладная программа может их определять до начала вывода графического изображения. Перед началом вывода отдельных частей изображения осуществляется выбор определенного преобразования нормирования. Переопределение преобразований нормирования допускается и в процессе графического вывода.
     
     Текущее преобразование нормирования задается функцией ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ и используется для вывода до тех пор, пока не будет выбрано другое преобразование. По умолчанию выбирается преобразование с номером ноль.
          

2.6.2. Отсечение

2.6.2.1. Поле вывода и окно, задающие определенное преобразование нормирования, используются также для задания прямоугольника отсечения. Поле "прямоугольник отсечения" в таблице состояния ЯГС устанавливается равным полю вывода текущего преобразования нормирования при определении поля вывода текущего преобразования нормирования или при выборе преобразования нормирования. Отсечение по границам поля вывода может быть разрешено или не разрешено. Имеется единый глобальный переключатель (индикатор отсечения), указывающий, будет ли прямоугольник отсечения использоваться для отсечения.
     

2.6.2.2. Отсечение не проводится непосредственно во время выполнения преобразования нормирования, оно задерживается до того момента, когда примитивы будут выводиться на носитель изображения графической станции. Прямоугольник отсечения, связанный с примитивами вывода, входящими в состав сегментов, хранится вместе с координатами этих примитивов, преобразованными в НК. Функция ВСТАВИТЬ СЕГМЕНТ позволяет заменить прямоугольник отсечения, записанный вместе с примитивом вывода при создании сегмента, на прямоугольник отсечения, взятый из таблицы состояния ЯГС.
     
     Примитивы, посланные на станцию категории МВЫВОД, отсечению не подвергаются.
          

2.6.3. Преобразование станции

2.6.3.1. Пространство нормированных координат может рассматриваться как независимый от станции абстрактный носитель изображения. Для каждой открытой станции независимо выбирается некоторая часть пространства НК в диапазоне [0., 1.]ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы[0., 1.], которая будет отображаться на носитель изображения. Преобразование станции отображает НК в координаты устройства (КУ) данной станции.
     
     Координаты устройства измеряются в метрах для устройств, способных генерировать точно масштабируемые изображения (например для большинства графопостроителей), или в зависящих от станции единицах (например для дисплеев, размер монитора которых неизвестен).
     
     В любом случае координаты устройства отображаются в пространство изображения следующим образом:
     

а) начало системы координат устройства находится в левом нижнем углу изображения;
     

б) единицы измерения КУ соотносятся с пространством изображения так, чтобы квадрат в КУ выглядел квадратом на поверхности изображения (это условие правильно выполняется, если единицами измерения в КУ являются метры);
     

в) координаты Х и Y возрастают соответственно слева направо и снизу вверх.
     
     На некоторых устройствах единицы измерения КУ могут не совпадать с адресуемыми единицами (например, в случаях, когда адресуемые единицы не удовлетворяют вышеуказанным условиям).
     
     Размер пространства изображения, выраженный в единицах измерения КУ, заносится в таблицу описания станции.
    

2.6.3.2. Преобразование станции представляет собой неискажающее преобразование НУ в КУ, т.е. выполняет перенос и одинаковое масштабирование по обеим осям с положительными коэффициентами. Таким образом для композиции изображений можно воспользоваться преобразованиями нормирования, тогда как преобразование станции позволяет отображать на разных станциях различные части скомпонированной картины.
     
     Например, чертеж можно вывести на графопостроитель в истинном масштабе и одновременно некоторую часть чертежа отобразить на полный экран дисплея интерактивного терминала.
     
     Преобразование станции может быть определено в любой момент времени после открытия станции. Изменение преобразования станции может вызвать неявную повторную генерацию изображения.
     

2.6.3.3. Преобразование станции определяется заданием границ области в системе нормированных координат в диапазоне [0., 1.]ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы[0., 1.] - окна станции, которая должна быть отображена в определенную область пространства координат устройства - поле вывода станции. Границы окна и поля вывода станции определяют прямоугольники со сторонами, параллельными осям координат в системах НК и КУ. Границы входят в состав прямоугольников.
    

2.6.3.4. Для предотвращения выхода выводимого изображения за пределы окна на станции в ЯГС производится обязательное отсечение по окну станции, которое не может быть отменено. Поскольку окно станции задается в диапазоне [0., 1.]ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы[0., 1.] НК, то гарантируется, что на любой станции может быть визуализирована только часть пространства НК, лежащая в пределах [0., 1.]ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы[0., 1.].
   

2.6.3.5. Для обеспечения одинакового масштабирования по каждой оси преобразование станции должно отображать окно станции на самый большой прямоугольник, который может быть размещен в пределах поля вывода станции так, чтобы было сохранено соотношение сторон и нижний левый угол окна станции отображался в нижний левый угол поля вывода станции. Таким образом, если соотношение сторон окна и поля вывода станции различны, то часть пространства сверху и справа от поля вывода останется неиспользованным.
     

2.6.3.6. Преобразование станции по умолчанию устанавливается таким, чтобы отображать пространство НК [0., 1.]ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы[0., 1.] во все пространство изображения станции. Если пространство изображения не является квадратом, то применяются те же правила, что описаны выше, для достижения одинакового масштабирования по каждой оси.
    

2.6.3.7. Преобразование станции может быть изменено функциями ЗАДАТЬ ОКНО СТАНЦИИ или ЗАДАТЬ ПОЛЕ ВЫВОДА СТАНЦИИ. Поскольку изменение преобразования станции может быть задержано (см. п.2.5.3), эти функции производят лишь запись значений параметров "требуемое поле вывода станции" в таблицу состояния станции. Записи "текущее окно станции" и "текущее поле вывода станции" продолжают содержать ранее установленные значения параметров преобразования. Только после модификации изображения текущим значениям присваиваются требуемые значения.
     
     Полная схема потока данных для графического вывода приведена на черт.9, где системы координат МК, НК и КУ являются двумерными декартовыми системами координат.
     
     

Черт.9. Схема потока данных для графического вывода в ЯГС

Схема потока данных для графического вывода в ЯГС

ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы


Черт.9

2.6.4. Преобразование входных данных устройства ввода позиции

2.6.4.1. Прикладной программист запрашивает входные данные устройства ввода позиции, чтобы определить позицию в наиболее подходящей системе мировых координат.
     
     Для этого входные данные преобразуются из КУ в НК с помощью преобразования, обратного преобразованию станции. В качестве входных данных для устройства ввода позиций могут выступать только те позиции, которые лежат внутри части поля вывода станции, на которую отображается окно станции (это может быть часть поля вывода станции, если соотношение сторон у поля вывода станции и у окна станции различны). Следовательно, входные данные устройства ввода позиции всегда определяют позицию в НК в диапазоне [0., 1.]ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы[0., 1.].
    

2.6.4.2. Чтобы передать прикладной программе позицию в мировых координатах, позиция должна быть преобразована из НК в МК с помощью преобразования, обратного одному из преобразований нормирования. Для каждого преобразования нормирования определен приоритет поля вывода, при вводе который относится к вводу позиций и последовательности позиций. Преобразования нормирования упорядочены в соответствии со значениями входных приоритетов поля вывода. При инициализации ЯГС инициируется некоторое число преобразований нормирования, для которых окна и поля вывода задаются в виде единичных квадратов, а приоритеты поля вывода при вводе устанавливаются в соответствии с номером преобразования, причем преобразование с номером ноль имеет наивысший приоритет, преобразование с номером единица следующий по величине и т.д. Входной приоритет поля вывода при вводе преобразования нормирования может быть изменен в любой момент времени.
     

2.6.4.3. Позиция в пространстве НК, полученная от устройства ввода позиции, сравнивается с полями вывода преобразований нормирования с целью найти такое преобразование нормирования, поле вывода которого содержит данную позицию и имеет наивысший входной приоритет ввода. Введенная позиция преобразуется в соответствующую систему МК с помощью преобразования, обратного этому преобразованию нормирования. Позиция, введенная с помощью устройства ввода позиции, передается прикладной программе в МК вместе с номером использованного преобразования нормирования.
     

2.6.4.4. Поскольку преобразование с номером ноль является тождественным и неизменяемым преобразованием, связанным с полем вывода [0., 1.]ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы[0., 1.], всегда обеспечивается попадание позиции, полученной от устройства ввода позиции, по крайней мере в одно из полей вывода.
     
     Схема потока данных для устройства ввода позиции приведена на черт.10.
     
     

Черт.10. Схема потока входных данных для устройства ввода позиции

Схема потока входных данных для устройства ввода позиции

ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы


Черт.10


     

2.6.4.5. Преобразование с номером ноль имеет вначале наивысший входной приоритет ввода, поэтому входные данные устройства ввода позиции в МК будут совпадать с НК до тех пор, пока не будет задано преобразование нормирования с более высоким приоритетом ввода. Если какое-либо преобразование нормирования больше не будет использоваться для преобразования входных данных устройства ввода позиции в МК, оно может быть сделано фактически недоступным путем назначения ему более низкого входного приоритета поля вывода, чем у преобразования с номером ноль.
     
     Допускается изменять входной приоритет поля вывода при вводе и у преобразования с номером ноль.
     

2.6.4.6. В отчете о событии, помещенным в очередь событий устройством ввода позиций в режиме СОБЫТИЕ, позиция из КУ преобразована в соответствующую позицию в МК. Если во время выполнения преобразований станции и нормирования их параметры изменяются, то может возникнуть конфликтная ситуация. Поэтому при реализации следует рассматривать преобразования как ресурсы, которые могут захватываться и освобождаться конкурирующими процессами.
     

2.6.4.7. В течение промежутка времени между занесением отчета о событии в очередь событий и выполнением функции ОЖИДАТЬ СОБЫТИЕ, при котором из очереди удаляются входные данные устройства ввода позиции, прикладная программа может изменить параметры преобразования нормирования и преобразования станции. Чтобы введенная позиция в КУ соответствовала позиции в МК, полученной из очереди событий, прикладная программа не должна изменять параметры преобразований, пока устройство ввода позиций находится в режиме СОБЫТИЕ.
          

2.6.5. Преобразование входных данных устройства ввода последовательности позиций
     

2.6.5.1. Замечания, которые касались преобразования данных, вводимых с устройства ввода позиций, применимы и к преобразованию входных данных устройства ввода последовательности позиций, но они усложняются тем, что преобразование осуществляется над множеством точек.
     
     При генерации каждой точки последовательности позиций координаты этой точки преобразуются из КУ в НК с помощью преобразования, обратного преобразованию станции. Входные данные устройства ввода последовательности позиций можно получить лишь для позиций, лежащих внутри той части текущего поля вывода станции, на которую отображается текущее окно станции (по аналогии с получением входных данных устройства ввода позиции). Таким образом, входные данные устройства ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИИ всегда состоят из точек в НК в диапазоне [0., 1.]ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы[0., 1.].
    

2.6.5.2. Чтобы передать прикладной программе значения координат точек в мировых координатах, координаты точки должны быть преобразованы из НК в КУ преобразованием, обратным одному из преобразований нормирования. Позиции в НК, полученные от устройства ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ, сравниваются с полями вывода преобразований нормирования с целью найти такое преобразование нормирования, поле вывода которого содержит все эти точки и имеет наивысший приоритет.
     

2.6.5.3. Точки, полученные от устройства ввода последовательности позиций, затем преобразуются с помощью преобразования, обратного этому преобразованию нормирования, и передаются прикладной программе в МК вместе с номером использованного преобразования нормирования.
     
     Если устройство ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ находится в режиме ОПРОС, то используемое преобразование нормирования может изменяться между последовательными опросами.
     
     При работе в режиме СОБЫТИЕ может возникнуть конфликтная ситуация, аналогичная той, которая возникает при работе с устройством ввода позиции. В течение промежутка времени между занесением отчета о событии в очередь событий и выполнением функции ОЖИДАТЬ СОБЫТИЕ, при котором из очереди удаляются входные данные устройства ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ, прикладная программа может изменить параметры преобразования нормирования и преобразования станции. Чтобы введенные оператором позиции в КУ соответствовали позициям в МК, полученным из очереди событий, прикладная программа не должна менять параметры преобразований нормализации, пока устройство ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ находится в режиме СОБЫТИЕ.
     
     

2.7. Сегменты

2.7.1. Понятие о сегментах

2.7.1.1. В ЯГС графические примитивы вывода могут быть объединены в сегменты, а также могут создаваться вне сегментов. Каждый сегмент имеет свое уникальное имя, задаваемое из прикладной программы. Допускаются следующие действия над сегментами:
     
     преобразование;
     
     изменение видимости (видимый/невидимый);
     
     выделение (например мерцанием);
     
     упорядочение отображения сегментов, что влияет на изображение перекрывающихся примитивов;
     
     изменение чувствительности к указанию;
     
     удаление;
     
     изменение имени;
     
     вставление сегмента в отрытый* сегмент или в поток примитивов вне сегментов.

________________

* Текст соответствует оригиналу. - Примечание изготовителя базы данных.     
     
     Этим операциям подвергаются только примитивы, входящие в состав сегментов. Прикладная программа не имеет доступа к примитивам, созданным вне сегментов, после того, как они были сгенерированы.
     

2.7.1.2. Каждый примитив в сегменте имеет связанный с ним ИДЕНТИФИКАТОР УКАЗАНИЯ, который образует второй уровень именования. Единственной задачей ИДЕНТИФИКАТОРА УКАЗАНИЯ является идентификация примитивов, его нельзя использовать для других целей. Этот уровень именования введен в ЯГС для уменьшения накладных расходов при работе с сегментами в приложениях, где при вводе необходимо различать большое число отдельных частей изображения, а необходимость в преобразованиях сегментов менее важна.
     

2.7.1.3. В то время, как имена сегментов являются уникальными, идентификатор указания может быть произвольно приписан как к одиночному примитиву вывода, так и к группе примитивов вывода в сегменте, как показано в следующей последовательности функций:
     
     ЗАДАТЬ ИДЕНТИФИКАТОР УКАЗАНИЯ (4);
     
     СОЗДАТЬ СЕГМЕНТ (1);
     
     Функции вывода; {сегмент-1, ИДЕНТИФИКАТОР УКАЗАНИЯ-4}
     
     ЗАДАТЬ ИДЕНТИФИКАТОР УКАЗАНИЯ (2);
     
     Функции вывода; {сегмент-1, ИДЕНТИФИКАТОР УКАЗАНИЯ-2}
     
     ЗАКРЫТЬ СЕГМЕНТ (1);
     
     Функции вывода; {примитивы не указываемы, ИДЕНТИФИКАТОР УКАЗАНИЯ-2}
     
     ЗАДАТЬ ИДЕНТИФИКАТОР УКАЗАНИЯ (5);
     
     Функции вывода; {примитивы не указываемы, ИДЕНТИФИКАТОР УКАЗАНИЯ-5}
     
     СОЗДАТЬ СЕГМЕНТ (2);
     
     Функции вывода; {сегмент-2, ИДЕНТИФИКАТОР УКАЗАНИЯ-5}
     
     ЗАДАТЬ ИДЕНТИФИКАТОР УКАЗАНИЯ (3);
     
     Функции вывода; {сегмент-2, ИДЕНТИФИКАТОР УКАЗАНИЯ-3}
     
     ЗАКРЫТЬ СЕГМЕНТ (2).
     

2.7.1.4. После закрытия сегмента примитивы, входящие в его состав, уже не могут быть изменены; нельзя также добавить в сегмент новые примитивы или удалить существующие. Не предусмотрено никаких функций по расширению сегмента после его закрытия. Вместе с примитивами в памяти сегментов сохраняются прямоугольники отсечения и атрибуты примитивов (геометрические атрибуты, атрибуты, управляющие негеометрическими характеристиками и ИДЕНТИФИКАТОР УКАЗАНИЯ). Однако допускается выполнять геометрические преобразования, изменять атрибуты сегмента, вносить изменения в таблицы связок станции и таблицы цвета, на которые есть ссылки внутри сегмента. Все значения, описывающие состояние сегмента (например имя, атрибуты сегмента и список станций, активных во время создания сегмента), запоминаются в таблице состояния сегмента, которая хранится в ЯГС в течение всего времени существования сегмента.
     

2.7.1.5. Каждый сегмент запоминается на всех станциях, активных в момент создания сегмента (СОЗДАТЬ СЕГМЕНТ). Его можно удалить со всех графических станций функцией УНИЧТОЖИТЬ СЕГМЕНТ. Он может быть удален также с конкретной станции функцией УДАЛИТЬ СЕГМЕНТ ИЗ СТАНЦИИ. Можно удалить все сегменты, записанные в память определенной станции, путем обращения к функции ОЧИСТИТЬ СТАНЦИЮ.
     

2.7.1.6. Память сегментов на станциях ВЫВОД и ВВОД/ВЫВОД называется памятью сегментов станции (ПСС). ЯГС поддерживает также и другую систему памяти для независимого от станции хранения изображений во время выполнения прикладной задачи, которая называется общей памятью сегментов (ОПС). Сегменты из ППС нельзя пересылать на другие станции, в то время как из ОПС можно.


     Сегменты имеют свои уникальные имена в пределах всей памяти сегментов. Реализация ЯГС должна обеспечивать достаточно большое число доступных имен сегментов (например 32000).
          

2.7.2. Атрибуты сегментов

2.7.2.1. Атрибуты сегментов воздействуют на все примитивы, входящие в состав сегмента. Имеются следующие атрибуты сегмента:
     
     ПРЕОБРАЗОВАНИЕ СЕГМЕНТА;
     
     ВИДИМОСТЬ - сегмент изображается или не изображается;
     
     ВЫДЕЛЕНИЕ - видимый сегмент выделяется (например мерцанием) или не выделяется;
     
     ПРИОРИТЕТ СЕГМЕНТА - если части сегментов (например ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ, МАТРИЦА ЯЧЕЕК) перекрываются, то предпочтение отдается сегменту с большим приоритетом как в случае изображения этих сегментов, так и при указании на них;
     
     ЧУВСТВИТЕЛЬНОСТЬ К УКАЗАНИЮ - возможность выбора сегмента с помощью устройства указания.
     

2.7.2.2. Атрибуты сегмента уникальны для каждого сегмента и не могут изменяться на станциях. Атрибуты сегмента по умолчанию (тождественное преобразование, видимый, нормальный, приоритет ноль, неуказываемый) приписываются сегменту в момент создания. Атрибуты можно изменить у любого существующего сегмента, включая открытый сегмент.
     

2.7.2.3. Приоритет сегментов воздействует только на изображаемые сегменты (т.е. на преобразование сегмента и преобразование станции, включая отсечение для каждого примитива сегмента). Если части примитивов перекрываются другими видимыми сегментами с более высоким приоритетом, то эти части могут быть невидимыми. Поддерживает ли станция эту возможность или нет, указывается в таблице описания станции. Предполагается, что реализация этой возможности должна быть аппаратной. При этом не обязательно реализовывать операцию экранирования на нерастровых дисплеях. Когда примитивы в сегменте перекрываются, решение вопроса о визуальном представлении перекрывающихся частей оставляется на усмотрение реализации. Получающийся результат должен быть отражен в документации на реализацию.
     

2.7.2.4. При указании на примитивы сегментов, перекрывающие друг друга, выбирается сегмент с более высоким приоритетом. Если же перекрываются примитивы одного сегмента или сегментов с равными приоритетами, то результат указания зависит от реализации.
          

2.7.3. Преобразования сегмента

2.7.3.1. Преобразование сегмента производит отображение НК в НК. Оно выполняет перенос, масштабирование и поворот. Преобразование сегмента определяется матрицей преобразования.
     

2.7.3.2. Матрица преобразования имеет размерность 2ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы3, в том числе часть 2ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы2 для масштабирования и поворота и часть 2ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы1 для переноса. С помощью вспомогательных функций (СФОРМИРОВАТЬ МАТРИЦУ ПРЕОБРАЗОВАНИЙ, ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ) прикладная программа может формировать матрицы преобразования. Фиксированный центр, относительно которого выполняется масштабирование и поворот, и вектор переноса могут быть заданы в МК или НК. В первом случае значения фиксированного центра и переноса в МК сначала преобразуются с использованием текущего преобразования нормирования.
  

2.7.3.3. Преобразование сегмента выполняется после преобразования нормирования, но перед отсечением.
     

2.7.3.4. Преобразование, заданное функцией ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА, в памяти сегментов не выполняется, а только заносится в таблицу состояния сегмента. При каждом перечеркивании сегмента это преобразование сегмента выполняется перед отсечением. Последовательные обращения к функции ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА для одного и того же сегмента не накапливаются; каждая последующая матрица преобразования записывается на место предыдущей. Обратившись к функции ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА с единичной матрицей преобразования, можно получить первоначальный сегмент без потери информации. Преобразование сегмента не действует на входные данные устройства ввода позиции.
          

2.7.4. Отсечение и память сегментов станции

2.7.4.1. Отсечение производится после выполнения преобразования нормирования и преобразования сегмента. Каждый примитив отсекается по прямоугольнику отсечения, который связывается с примитивом в момент включения его в сегмент. Если запись "индикатор отсечения" в таблице состояния ЯГС в этот момент имеет значение ОТСЕКАТЬ, то в качестве прямоугольника отсечения, связанного с примитивом, указывается прямоугольник отсечения из таблицы состояния ЯГС; в противном случае он устанавливается равным области НК [0., 1.]ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы[0., 1.].
     
     Прямоугольники отсечения не преобразуются преобразованием сегмента и поэтому отсечение всегда выполняется по прямоугольнику, стороны которого параллельны осям координат пространства НК.
    

2.7.4.2. Для выполнения операций над сегментами требуется такая организация их хранения, при которой сегменты могут повторно использоваться на графических станциях, которые были активны в момент их создания. Примитивы вне сегментов не могут повторно использоваться. ЯГС не определяет способ организации и формат памяти сегментов (если только могут выполняться любые операции над сегментами, и обеспечивается корректное применение операции отсечения к каждому примитиву).
          

2.7.5. Общая память сегментов

2.7.5.1. В общей памяти сегментов (ОПС) сегменты могут запоминаться для последующего использования функциями ВЫВЕСТИ СЕГМЕНТ НА СТАНЦИЮ, СВЯЗАТЬ СЕГМЕНТ СО СТАНЦИЕЙ и ВСТАВИТЬ СЕГМЕНТ. Ни одна из перечисленных функций не изменяет содержимого сегментов. В реализации ЯГС допускается использовать только одну ОПС.
     

2.7.5.2. Как показано на черт.9, на видовом конвейере точка входа в блок записи примитивов в ОПС непосредственно следует за точкой, в которой данные распределяются по станциям. То есть ОПС рассматривается как станция (категории ОПС). Примитивы перед их распределением по графическим станциям преобразуются из мировых координат в НК.
     
     Будет ли ОПС реализована в рамках самого ЯГС или путем использования возможностей соответствующей физической станции или другого устройства ввода-вывода, оставляется на усмотрение разработчика.
          

2.7.6. Функции ОПС и отсечение

2.7.6.1. Как и для других станций, сегмент заносится в ОПС только в том случае, если ОПС активна в момент его создания. С каждым примитивом при этом связывается прямоугольник отсечения. Если запись "индикатор отсечения" в таблице состояния ЯГС в момент создания сегмента имеет значение ОТСЕКАТЬ, то в качестве прямоугольника отсечения берется прямоугольник отсечения из таблицы состояния ЯГС, в противном случае указывается область [0., 1.]ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы[0., 1.] в НК.
    

2.7.6.2. Функция ВЫВЕСТИ СЕГМЕНТ НА СТАНЦИЮ копирует примитивы из находящегося в ОПС сегмента на заданную графическую станцию. Функция преобразует примитивы в соответствии с преобразованием сегмента и помещает связанные с примитивами прямоугольники отсечения и преобразованные примитивы на видовой конвейер в точку, откуда информация была взята, однако информация посылается только на станцию, заданную в данном конкретном обращении, в соответствии с черт.9. В момент обращения к функции сегмент не может быть открыт. В отличие от функции СВЯЗАТЬ СЕГМЕНТ СО СТАНЦИЕЙ эта функция не приводит к запоминанию сегмента на станции.
     

2.7.6.3. Функция СВЯЗАТЬ СЕГМЕНТ СО СТАНЦИЕЙ копирует сегмент в ППС заданной графической станции таким образом, как это было бы, если бы станция была активной в момент создания сегмента. Прямоугольники отсечения копируются без изменения. К этой функции также нельзя обращаться, когда сегмент открыт.
       

2.7.6.4. Функция ВСТАВИТЬ СЕГМЕНТ позволяет преобразовать и вновь включить в поток примитивов вывода примитивы, входящие в записанный в ОПС сегмент. Функция ВСТАВИТЬ СЕГМЕНТ сначала считывает примитивы из сегмента в ОПС, выполняет преобразование включения, после чего засылает их в видовой конвейер в точку, предшествующую точке распределения данных по станциям. Все прямоугольники отсечения во вставляемом сегменте игнорируются. Каждому обрабатываемому примитиву приписывается новый прямоугольник отсечения, который совпадает с прямоугольником отсечения из таблицы состояния ЯГС, если запись "индикатор отсечения" в таблице состояния ЯГС имеет значение ОТСЕКАТЬ и устанавливается равным [0., 1.]ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы[0., 1.], если "индикатор отсечения" имеет значение БЕЗ ОТСЕЧЕНИЯ. Другими словами, прямоугольники отсечения приписываются вставляемым примитивам точно таким же образом, как и непосредственно генерируемым примитивам. Таким образом, всем примитивам, обработанным одним обращением к функции ВСТАВИТЬ СЕГМЕНТ, приписывается один и тот же прямоугольник отсечения. Внесенная информация может быть снова записана в ОПС, если в этот момент ОПС является активной и сегмент открыт.
    

2.7.6.5. Обращение к функции ВСТАВИТЬ СЕГМЕНТ не влияет на примитивы вывода, передаваемые по видовому конвейеру до или после этого обращения. Функция ВСТАВИТЬ СЕГМЕНТ используется в случае, когда сегмент открыт, но сам открытый сегмент не может быть вставлен.
     
     

2.8. Ввод графических данных

2.8.1. Логические устройства ввода

2.8.1.1. Прикладная программа получает графические данные от оператора с помощью логических устройств ввода, которые передают значения входных данных программе.
     

2.8.1.2. Логические устройства ввода идентифицируются идентификатором станции, классом устройства ввода и номером устройства.
     

2.8.1.3. Идентификатор станции определяет открытую графическую станцию, категории ввода или ввода/вывода. Логическое устройство ввода является частью графической станции.
     

2.8.1.4. Класс устройств ввода определяет тип входных данных, выдаваемых логическим устройством ввода. Существует шесть классов устройств ввода и соответствующих им типов входных данных:
     
     ВВОД ПОЗИЦИИ: выдает значения координат позиции в системе мировых координат и номер преобразования нормирования;
     
     ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ: выдает последовательность позиций в системе мировых координат и номер преобразования нормирования;
     
     ВВОД ЧИСЛА: выдает действительное число;
     
     ВЫБОР АЛЬТЕРНАТИВЫ: выдает признак ВЫБОР и неотрицательное целое число, определяющее выбор из набора альтернатив;
     
     УКАЗАНИЕ ОБЪЕКТА: выдает признак УКАЗАНИЕ, имя сегмента и идентификатор указания;
     
     ВВОД СТРОКИ: выдает последовательность литер.
     

2.8.1.5. Различные логические устройства ввода одного и того же класса одной и той же станции различаются по номеру.
     

2.8.1.6. Графическая станция ввода и станция ввода-вывода должны содержать по крайней мере одно логическое устройство ввода. Реализация ЯГС, которая поддерживает, по крайней мере, одну станцию ввода-вывода, должна обеспечить оператора не менее чем одним логическим устройством ввода каждого класса, определенного на данном уровне реализации.
     

2.8.1.7. Каждое логическое устройство ввода может работать в трех режимах: ЗАПРОС, ОПРОС, СОБЫТИЕ. В каждый момент времени логическое устройство ввода может находиться в одном и только одном режиме, установленном путем обращения к какой-либо из функций группы ЗАДАТЬ <класс устройства ввода> РЕЖИМ.
     

2.8.1.8. В зависимости от режима работы входные данные с устройств получают следующими способами:
     
     ЗАПРОС - каждое обращение к функции ЗАПРОСИТЬ <класс устройства ввода> вызывает попытку чтения значения входных данных с заданного логического устройства ввода, которое должно находиться в режиме ЗАПРОС. Затем ЯГС ожидает пока оператор не введет входные данные или не выполнит команду принудительного прекращения ввода. Действия, выполняемые по команде принудительного прекращения ввода, зависят от конкретного логического устройства ввода и от реализации. Если выход из режима производится вследствие принудительного прекращения ввода, то значение входных данных оказывается неопределенным;
     
     ОПРОС - обращение к функции ОПРОСИТЬ <класс устройства ввода> приводит к тому, что ЯГС, не ожидая действий оператора, выдает текущее значение входных данных с заданного логического устройства ввода, которое должно находиться в режиме ОПРОС;
     
     СОБЫТИЕ - ЯГС поддерживает очередь событий, состоящую из упорядоченных по времени отчетах о событиях. Отчет о событии содержит идентификатор логического устройства ввода и значение входных данных с устройства. Отчет о событиях генерируется асинхронно в результате воздействий оператора на устройства ввода, находящееся в режиме СОБЫТИЕ. Прикладная программа может выбрать из очереди самый "старый" отчет о событии и проанализировать его содержимое, а также удалить из очереди все отчеты о событиях, поступившие от определенного логического устройства ввода.
     

2.8.1.9. Логическое устройство ввода осуществляет взаимодействие с оператором в течение времени, пока оно находится в режимах ОПРОС или СОБЫТИЕ, а в режиме ЗАПРОС - только во время выполнения функции ЗАПРОСИТЬ <класс устройства ввода>.
     
     Несколько устройств, входящих в состав нескольких станций, могут принимать участие во взаимодействиях одновременно.
          

2.8.2. Модель логического устройства ввода

2.8.2.1. Для описания действий, выполняемых логическими устройствами ввода, определим их взаимосвязь с физическими устройствами ввода, используя концепции измерений и фиксаторов.
     

2.8.2.2. Логическое устройство ввода содержит данные об измерении, фиксаторе, начальном значении, типе подсказки и эха, области эха, а также блок данных, содержащий детальную информацию о типе подсказки и эха. Измерение и фиксатор логического устройства ввода являются частями реализации станции. Начальное значение, тип подсказки и эха, область эха и блок данных могут быть заданы прикладной программой.
     

2.8.2.3. Измерение логического устройства ввода представляет собой значение, определяемое одним или несколькими физическими устройствами ввода, вместе с отображением измерения. Одним и тем же физическим устройством ввода может одновременно определяться более чем одно измерение, при этом для каждого измерения задается свое отображение. Измерение может рассматриваться как состояние независимого, активного процесса (процесс измерения). Каждое такое состояние в точности соответствует значению входных данных, поступающих в ЯГС. Процесс измерения существует, пока логическое устройство ввода принимает участие во взаимодействии.
     

2.8.2.4. При запуске процесса измерения осуществляется проверка относящихся к данному логическому устройству ввода данных в таблице состояния станции. Прежде всего начальное значение проверяется на допустимость в соответствии с правилами, зависящими от входного класса. Если проверка заканчивается успешно, то в качестве текущего состояния процесса измерения используется начальное значение, в противном случае используется значение, зависящее от применяемого логического устройства ввода. Затем выводится подсказка для указания готовности устройства к использованию. (Форма подсказки для устройства определяется типом подсказки и эха для этого устройства, который может быть выбран путем вызова соответствующей функции ИНИЦИАЛИЗИРОВАТЬ). Этим завершается запуск процесса измерения.
     

2.8.2.5. Если процесс измерения сопровождает эхо, оператору посылается информация о текущем состоянии процесса измерения.
     

2.8.2.6. Фиксатор логического устройства ввода представляет собой одно или несколько физических устройств ввода вместе с "отображением фиксатора". Фиксатор используется оператором для указания существенных моментов времени. Это моменты, когда фиксатор "срабатывает". Одно действие оператора (например нажатие кнопки или концевого переключателя светового пера) вызывает срабатывание не более одного фиксатора. С одним и тем же фиксатором могут быть связаны несколько логических устройств ввода.
     

2.8.2.7. Фиксатор можно рассматривать как независимый активный процесс (процесс фиксации), который посылает сообщение о срабатывании одному или нескольким получателям. Логическое устройство ввода может быть получателем для своего фиксатора, если оно находится в неудовлетворенном состоянии ЗАПРОС или в режиме СОБЫТИЕ. Оба этих условия могут быть справедливы одновременно для различных логических устройств ввода. Процесс фиксации существует только в том случае, если у фиксатора имеется по крайней мере один получатель, в противном случае процесс не существует.
     

2.8.2.8. Если в момент срабатывания фиксатора логическое устройство ввода находится в неудовлетворенном состоянии ЗАПРОС, то значение измерения этого логического устройства ввода используется в качестве результата выполнения операции ЗАПРОС.
     

2.8.2.9. Если одно или несколько устройств, содержащие данный фиксатор, находятся в режиме СОБЫТИЕ, то при срабатывании фиксатора идентификаторы этих устройств и значения их измерений записываются в очередь событий в виде отдельных отчетов о событиях.
     

2.8.2.10. Если срабатывание фиксатора приводит к выполнению операции ЗАПРОС или к добавлению отчетов о событиях в очереди событий, ЯГС оповещает об этом оператора, причем форма оповещения зависит от реализации логического устройства вывода и никак не контролируется функциями ЯГС.
          

2.8.3. Режимы работы логических устройств ввода

2.8.3.1. Режим работы логического устройства ввода может быть изменен путем вызова одной из функций ЗАДАТЬ РЕЖИМ <класс устройств ввода>.
     

2.8.3.2. После вызова функции ЗАДАТЬ РЕЖИМ <класс устройств ввода> с параметром "режим работы", имеющим значение ЗАПРОС, измерение устройства не выполняется, и идентификатор устройства отсутствует в списке получателей фиксатора устройства.
     

2.8.3.3. После вызова функции ЗАДАТЬ РЕЖИМ <класс устройств ввода> с параметром "режим работы", имеющим значение СОБЫТИЕ, запускается процесс измерения данного устройства, и идентификатор устройства присутствует в списке получателей фиксатора устройства.
     

2.8.3.4. После вызова функции ЗАДАТЬ РЕЖИМ <класс устройств ввода> с параметром "режим работы", имеющим значение ОПРОС, запускается процесс измерения данного устройства, но идентификатор устройства в списке получателей фиксатора этого устройства не устанавливается.
     

2.8.3.5. Первоначально логическое устройство ввода находится в режиме ЗАПРОС.
     

2.8.3.6. Пока устройство находится в режиме ЗАПРОС, значение входных данных может быть получено путем обращения к соответствующей функции ЗАПРОСИТЬ <класс устройств ввода>. В результате выполняются следующие действия:
     
     запускается процесс измерения данного устройства, значение входных данных этого устройства устанавливается равным начальному значению из таблицы состояния графической станции (см. п.2.8.4). Процессом измерения формируется ЭХО, если ЭХО включено для данного устройства;
     
     индикатор устройства добавляется в список получателей фиксатора этого устройства. Если перед этим список был пуст, то процесс фиксации запускается;
     
     выполнение функций ЯГС приостанавливается до тех пор, пока не сработает фиксатор данного устройства или оператор принудительно не прекратит взаимодействие;
     
     если фиксатор сработал, то значение входных данных устанавливается равным значению текущего состояния процесса измерения;
     
     прекращается процесс измерения;
     
     идентификатор устройства удаляется из списка получателей фиксатора этого устройства. Если этот список пуст, то процесс фиксации прекращается;
     
     если фиксатор сработал, то выдается значение входных данных и признак ЕСТЬ. В противном случае выдается признак ОТБОЙ.
     

2.8.3.7. Пока логическое устройство находится в режиме ОПРОС, значение входных данных может быть получено путем обращения к функции ОПРОСИТЬ УСТРОЙСТВО <класс устройств ввода>. В результате выполнения этой функции значение входных данных, не ожидая срабатывания фиксатора, устанавливается равным значению текущего состояния процесса измерения.
     

2.8.3.8. Пока логическое устройство ввода находится в режиме СОБЫТИЕ, значения входных данных добавляются в виде отчетов о событиях в очередь событий и могут быть получены последовательно путем обращения к функции ОЖИДАТЬ СОБЫТИЕ с последующим обращением к одной из функций ПОЛУЧИТЬ <класс устройств ввода>.
     
     На черт.11 показано влияние каждого из режимов работы на измерение и фиксатор логического устройства вывода.
     
     

Черт.11. Взаимосвязь между измерением и фиксатором для различных режимов работы, показанная для одного логического устройства ввода

Взаимосвязь между измерением и фиксатором для различных режимов работы,
показанная для одного логического устройства ввода

ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы


Черт.11

2.8.4. Измерение каждого класса устройств ввода

2.8.4.1. Измерение устройства ВВОДА ПОЗИЦИИ состоит из позиции в системе мировых координат и номера преобразования нормирования. Обозначим эти данные через Р и N соответственно. Тогда Р, преобразованное в НК с помощью N, находится в пределах окна станции, а также внутри окна, определенного преобразованием N. Кроме того, Р, преобразованное в НК с помощью N, не попадает ни в одно из полей вывода, имеющих приоритет более высокий, чем у поля вывода, заданного преобразованием нормирования с номером N.
     

2.8.4.2. Измерение устройства ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ состоит из последовательности в системе мировых координат и номера преобразования нормирования. Обозначим эти точки соответственно через P1...Рn, а через N - номер преобразования. Тогда все точки Pi (1<=i<=n), преобразованные в НК с помощью N, находятся внутри окна станции, а также внутри окна, определенного преобразованием N, и, кроме того, не существует поля вывода с более высоким приоритетом, чем у поля вывода, заданного преобразованием нормирования с номером N, которое содержало бы все точки.
     
     Заметим, что N может изменяться по мере того, как точки добавляются к последовательности позиций.
     

2.8.4.3. Обращение к любой из функций ЗАДАТЬ ОКНО, ЗАДАТЬ ПОЛЕ ВЫВОДА или ЗАДАТЬ ВХОДНОЙ ПРИОРИТЕТ ПОЛЯ ВЫВОДА может вызвать изменение Р (любого из Pi для последовательности позиций) или N, или обоих значений вместе, но при условии, что новые значения будут удовлетворять указанным выше ограничениям.
     

2.8.4.4. Применяется следующее правило: ни одно преобразование, имеющее приоритет меньший, чем преобразование с номером 0, не может входить в состав измерения для устройства ВВОДА ПОЗИЦИИ или устройства ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ.
     
     Примечание. При установке по умолчанию значений входных приоритетов полей вывода поле вывода, заданное преобразованием нормирования с номером 0, имеет наивысший приоритет.
     
     

2.8.4.5. Измерение УСТРОЙСТВА ВВОДА ЧИСЛА представляет значения входных данных, которые являются действительными числами. Каждое значение должно находиться между минимальным и максимальным значениями (возможно включительно), которые содержатся в блоке данных в таблице состояния графической станции.
     

2.8.4.6. Компонентами измерения УСТРОЙСТВА ВЫБОРА АЛЬТЕРНАТИВЫ являются значение ВЫБОР или НЕТ ВЫБОРА и целое число в диапазоне от 0 до некоторого максимального значения, которое зависит от устройства и указано в таблице описания станции. Если первый компонент имеет значение ВЫБОР, то целое число является правильным значением. Ввод данных от устройства ВЫБОРА АЛЬТЕРНАТИВЫ обычно производится при нажатии оператором кнопки (при этом цифровой идентификатор кнопки определяет измерение) или комбинации кнопок (измерение определяется на основе комбинаций нажатых кнопок).
     

2.8.4.7. Измерением устройства УКАЗАНИЯ являются значение УКАЗАНИЕ или НЕТ УКАЗАНИЯ, имя сегмента и идентификатор указания. Если первый компонент имеет значение УКАЗАНИЕ, тогда имя сегмента и идентификатор указания должны удовлетворять следующим правилам:
     

1) сегмент существует и его атрибуты ВИДИМОСТЬ и ЧУВСТВИТЕЛЬНОСТЬ К УКАЗАНИЮ установлены;
     

2) сегмент присутствует на графической станции, содержащей устройство УКАЗАНИЯ;
     

3) значение идентификатора указания является значением атрибута идентификатора указания, по крайней мере, одного из примитивов вывода сегмента. Это проверяется с использованием параметров отсечения, действующих в момент поступления примитива вывода на станцию. Часть примитива должна находиться внутри окна станции и, если отсечение было включено, часть примитива должна попадать внутрь прямоугольника отсечения примитива. Кроме того, примитив не должен быть полностью перекрыт примитивами сегментов с более высоким приоритетом.
     

2.8.4.8. Перед началом процесса измерения для устройства УКАЗАНИЯ начальное значение этого устройства проверяется на соответствие вышеописанным правилам. Если эти правила не выполняются, то в качестве состояния процесса измерения устанавливается значение НЕТ УКАЗАНИЯ.
     
     Примечания:
     

1. Для некоторых графических станций проверка начальных значений устройства УКАЗАНИЕ на соответствие п.2.8.4.7 (правило 3) в момент запуска процесса измерения может быть очень дорогой. В этих случаях начальные значения необходимо проверять только на соответствие правилам 1 и 2.
     

2. Измерение устройства УКАЗАНИЯ определено с использованием свойств примитивов вывода и сегментов. Устройства УКАЗАНИЯ существуют только в составе графических станций ввода-вывода.
     
     

2.8.4.9. Измерением устройства ВВОДА СТРОКИ являются значения входных данных, представляющих собой цепочки литер, максимальная длина которых зависит от устройства и определяется значением размера буфера, содержащимся в записи данных в таблице состояния станции.
          

2.8.5. Очередь событий и текущий отчет о событии

2.8.5.1. Очередь событий может содержать отчеты о событиях, а может и не содержать их. Отчеты о событиях состоят из пар значений (идентификатор устройства, значение входных данных), полученных в результате срабатывания фиксатора.
     

2.8.5.2. Отчеты о событиях могут быть добавлены в очередь событий, если в результате действий оператора срабатывают фиксаторы логических устройств ввода, находящиеся в режиме СОБЫТИЕ. Отчеты о событиях могут быть удалены из очереди событий путем обращения к функциям ОЖИДАТЬ СОБЫТИЕ, УДАЛИТЬ СОБЫТИЯ ОТ УСТРОЙСТВА и ЗАКРЫТЬ СТАНЦИЮ.
     

2.8.5.3. При срабатывании фиксатора, являющегося частью одного или нескольких логических устройств ввода, находящихся в режиме СОБЫТИЕ, результирующие отчеты о событиях включаются в очередь событий и отмечаются как группа отчетов об одновременных событиях. Отчет о событии добавляется в очередь событий только в том случае, если в ней есть место для всей группы отчетов об одновременных событиях.
     
     Порядок отчетов об одновременных событиях внутри группы не определен.
     

2.8.5.4. Если в момент срабатывания фиксатора в очереди событий отсутствует место для всех отчетов об одновременных событиях, то возникает переполнение очереди событий. Информация о переполнении очереди событий не посылается прикладной программе немедленно. Она будет передана через механизм обработки ошибок при следующем обращении к любой из функций ЯГС, которая может удалять отчеты о событиях из очереди событий (ОЖИДАТЬ СОБЫТИЕ, УДАЛИТЬ СОБЫТИЯ ОТ УСТРОЙСТВА и ЗАКРЫТЬ СТАНЦИЮ). Очередь событий должна быть очищена перед добавлением в нее последующих отчетов о событиях. Между моментом обнаружения переполнения входной очереди и следующим обращением к функции ОЖИДАТЬ СОБЫТИЕ с пустой очередью событий при срабатывании фиксатора не генерируется никаких событий и, следовательно, не выдается никаких оповещений. Это позволяет прикладной программе определить, сколько событий было в очереди в момент возникновения переполнения, путем вызова функции ОЖИДАТЬ СОБЫТИЕ с нулевым временем ожидания.
     

2.8.5.5. При поступлении сообщения об ошибке "переполнение очереди событий" фиксатор, вызвавший переполнение, отмечается путем помещения в список ошибочных состояний идентификатора какого-либо из логических устройств ввода, использующих этот фиксатор и находящихся в режиме СОБЫТИЕ во время обнаружения переполнения.
     

2.8.5.6. Если очередь событий не пуста, то функция ОЖИДАТЬ СОБЫТИЕ удаляет из очереди первый отчет о событии после копирования значения входных данных в текущий отчет о событии в таблице состояния ЯГС. Идентификатор станции, класс устройства ввода и номер устройства передаются прикладной программе непосредственно функцией ОЖИДАТЬ СОБЫТИЕ. Если очередь пуста, то функция ОЖИДАТЬ СОБЫТИЕ приостанавливает вычисления до тех пор, пока в очереди не появится отчет о событии, или не пройдет заданное время ожидания.
     

2.8.5.7. Прикладная программа может получить содержимое текущего отчета о событии путем вызова соответствующей функции ПОЛУЧИТЬ ДАННЫЕ <класс устройств ввода>.
     

2.8.5.8. Если после удаления отчета о событии в очереди событий остались другие отчеты из той же группы одновременных событий, что и удаленный отчет, то в таблице состояния ЯГС в поле "наличие одновременных событий" устанавливается значение ЕСТЬ. В противном случае устанавливается значение НЕТ.
     

2.8.5.9. При обращении к функции УДАЛИТЬ СОБЫТИЯ ОТ УСТРОЙСТВА из очереди событий удаляются все отчеты о событиях, поступившие от конкретного устройства. Функция ЗАКРЫТЬ СТАНЦИЮ удаляет из очереди событий все отчеты о событиях, поступивших от всех логических устройств ввода этой станции.
     

2.8.5.10. Если в момент обращения к функции УДАЛИТЬ СОБЫТИЯ ОТ УСТРОЙСТВА или к функции ЗАКРЫТЬ СТАНЦИЮ поле "признак наличия одновременных событий" имеет значение ЕСТЬ и в результате этого обращения удаляются все оставшиеся отчеты из группы отчетов об одновременных событиях из головной части очереди, то в указанном поле устанавливается значение НЕТ.
          

2.8.6. Инициализация устройств ввода

2.8.6.1. Для каждого класса устройств ввода существует функция ИНИЦИАЛИЗИРОВАТЬ, к которой можно обращаться только в том случае, если данное логическое устройство ввода находится в режиме ЗАПРОС. Эти функции передают устройству через таблицу состояния станции следующую информацию (если не было обращения к функции ИНИЦИАЛИЗИРОВАТЬ, то используются значения, установленные по умолчанию):
     
     начальное значение, соответствующее данному классу. Если начальное значение задается с нарушением правил, то фиксируется ошибка и таблица состояния не изменяется;
     
     тип подсказки и эха, который определяет способ вывода сообщения с подсказкой (если эхо включено) для логического устройства ввода. Тип подсказки и эха, зависящий от реализации (тип 1), должен быть определен для всех логических устройств ввода. Могут быть определены и другие, необязательные, типы подсказки и эха для каждого класса устройств ввода. Эти дополнительные типы перечисляются в соответствующей функции ИНИЦИАЛИЗИРОВАТЬ. Типы подсказки или эха с отрицательным номером зависят от реализации, а с номером большим, чем указано в функции, резервируются для будущей стандартизации;
     
     область эха (левая, правая, нижняя и верхняя границы) в координатах устройства. В конкретных реализациях логических устройств ввода область эха может быть использована для определенных типов подсказки и эха для их отображения;
     
     блок данных. Для некоторых классов устройств ввода блок данных содержит обязательные управляющие значения. Для некоторых типов подсказки и эха в рамках данного класса устройств ввода блок данных содержит также обязательные управляющие значения. Эти значения занимают точно определенные места в записи данных.
     

2.8.6.2. Если при инициализации устройства ввода используется блок данных, то значения, обязательные для данного класса, помещаются первыми. Вслед за ними идут значения, обязательные для данного типа подсказки и эха (если они существуют). В зависимости от устройства и типа подсказки и эха блок данных может содержать и другую (дополнительную) информацию.
     

2.8.6.3. Когда логическое устройство ввода находится в режиме ЗАПРОС и следует обращение к функции ЗАПРОСИТЬ или когда логическое устройство переводится в режимы ОПРОС или СОБЫТИЕ, его измерение устанавливается равным начальному значению из таблицы состояния графической станции, если это значение допустимо для данного устройства. Если это не так, то измерение устанавливается равным значению, зависящему от устройства; исключением являются устройства УКАЗАНИЯ, для которых измерение устанавливается равным значению НЕТ УКАЗАНИЯ.
     

2.8.6.4. Тип подсказки и эха задает способ отображения, информирующий оператора о том, что устройство доступно, и эха, информирующего о текущем состоянии измерения. Функции, предназначенные для контроля режима работы устройств ввода - ЗАДАТЬ РЕЖИМ <класс устройств ввода>, управляют также включением и выключением эха. Кроме того, должно быть обеспечено зависящее от реализации оповещение о срабатываниях фиксатора.
     

2.8.6.5. Следующие элементы в блоке данных являются обязательными: для устройства ввода последовательности позиций - размер буфера входных данных, выраженный в количестве точек; для устройства ВВОДА ЧИСЛА - нижняя и верхняя границы допустимых значений, для устройства ВВОДА СТРОКИ - размер буфера входных данных и начальная позиция курсора; для устройства ВЫБОРА АЛЬТЕРНАТИВЫ - значения типов подсказки и эха с номерами 2, 3, 4 и 5.
     
     

2.9. Интерфейс ЯГС с метафайлом

2.9.1. Для долговременного хранения графической информации в ЯГС предусмотрен интерфейс с последовательными файлами, называемыми метафайлами ЯГС. Они могут использоваться для:
     
     передачи графической информации между системами;
     
     переноса графической информации из одного места в другое (например при помощи магнитной ленты);
     
     передачи графической информации между прикладными программами, использующими ЯГС;
     
     хранения сопровождающей неграфической информации.
     
     Описание метафайла приведено в приложении 7.
     

2.9.2. Устройства ввода-вывода метафайла рассматриваются как графические станции типа МВЫВОД и МВВОД. К этим станциям, однако, неприменимы некоторые функции управления и справочные функции.
     

2.9.3. Прикладная программа заносит данные в метафайл с помощью функции ЗАПИСАТЬ В МЕТАФАЙЛ.
     

2.9.4. Для чтения и интерпретации записей метафайла применяются функции: ПОЛУЧИТЬ ТИП ЗАПИСИ ИЗ МЕТАФАЙЛА, СЧИТАТЬ ЗАПИСЬ ИЗ МЕТАФАЙЛА, ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ. Предполагается, что метафайл состоит из последовательности записей, каждая из которых включает: тип записи, длину блока данных и сам блок данных. Тип записи определяет, может ли запись быть интерпретирована ЯГС либо ее занесла прикладная программа функцией ЗАПИСАТЬ В МЕТАФАЙЛ.
     
     После открытия станции МВВОД первая запись метафайла становится текущей.
     

2.9.5. Функция ПОЛУЧИТЬ ТИП ЗАПИСИ ИЗ МЕТАФАЙЛА извлекает тип записи и длину блока данных текущей записи.
     

2.9.6. Функция СЧИТАТЬ ЗАПИСЬ ИЗ МЕТАФАЙЛА копирует содержимое блока данных текущей записи в область, предоставленную прикладной программой, и делает текущей следующую запись метафайла.
     

2.9.7. Функция ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ работает с содержимым блока данных, представленных прикладной программой (в том виде, в котором оно было получено с помощью функции СЧИТАТЬ ЗАПИСЬ ИЗ МЕТАФАЙЛА). Она производит необходимые изменения состояния ЯГС, генерирует графический выход в соответствии с содержимым записи. Интерпретация информации об атрибутах примитивов, прямоугольнике отсечения, индикаторе отсечения вызывает изменения в таблице состояния ЯГС. Информация о геометрических атрибутах, выраженная в нормированных координатах, преобразуется с помощью преобразования, обратного текущему преобразованию нормирования, а затем заносится в таблицу состояния ЯГС. Информация, относящаяся к функциям управления станцией, может быть интерпретирована на всех графических станциях.
     
     Для сохранения целостности файлов занесение данных в метафайл и считывание из метафайла должны выполняться только под управлением ЯГС. На черт.12 показана взаимосвязь между прикладной программой, ЯГС и метафайлом.
     
     

Черт.12. Связь между ЯГС и МЯГС

Связь между ЯГС и МЯГС

ГОСТ 27817-88 (СТ СЭВ 6177-88) Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы


Черт.12

2.10. Уровни ЯГС

2.10.1. Введение в уровни

2.10.1.1. Система ЯГС предназначена для использования в широком диапазоне применений от простого вывода на графопостроитель до формирования динамически перемещающихся изображений и взаимодействия в реальном времени. У многих дисплеев отсутствуют аппаратные возможности (например устройство указания), моделирование которых программным путем может потребовать значительных усилий. Целесообразно допускать реализации ЯГС, которые не включают все функциональные возможности стандарта.
          

2.10.2. Структура уровней

2.10.2.1. Функциональные возможности ЯГС подразделяются на следующие основные группы:
     
     вывод - минимальное исполнение, полное исполнение;
     
     ввод - ввод отсутствует, ввод в режиме ЗАПРОС, синхронный ввод, полный ввод;
     
     число графических станций (одна, несколько);
     
     атрибуты - возможны только предварительно определенные связки и индивидуально задаваемые атрибуты, полная реализация концепции связок;
     
     сегментация - отсутствует, базовая сегментация (без общей памяти сегментов), полная сегментация.
     

2.10.2.2. Если при реализации ЯГС допустить произвольную комбинацию возможностей, то скоро появится почти неограниченное число различных диалектов стандарта и станет невозможным сохранить программную совместимость - одну из основных целей настоящего стандарта. В связи с этим было определено девять допустимых уровней реализации ЯГС, позволяющих охватить большую часть существующего оборудования и приложений. Каждая реализация ЯГС обеспечивает функции одного уровня. Реализация ЯГС считается некорректной, если она находится между двумя уровнями.
     

2.10.2.3. Уровневая структура ЯГС имеет два независимых компонента: "ввод" и все другие функции, объединяемые под общим названием "вывод".
     
     Имеется четыре уровня вывода:
     
     уровень m - минимальный вывод;
     
     уровень 0 - все примитивы и атрибуты;
     
     уровень 1 - базовая сегментация с полным выводом;
     
     уровень 2 - общая память сегментов.
     
     Имеется три уровня ввода:
     
     уровень а - отсутствие ввода;
     
     уровень b - ввод в режиме ЗАПРОС;
     
     уровень с - полный ввод.
     

2.10.2.4. Возможности ЯГС определяются набором доступных функций и диапазоном изменения их параметров. На каждом уровне существуют три категории возможностей:
     
     явно определенные и обязательные возможности - поддерживаются всеми реализациями ЯГС данного уровня;
     
     явно определенные, но необязательные возможности - если реализация поддерживает эти возможности, то они соответствуют определениям функций ЯГС;
     
     концептуально определенные и необязательные возможности - реализация ЯГС может содержать эти возможности в соответствии с общими правилами и концепциями ЯГС.
     

2.10.2.5. Набор явно определенных и обязательных возможностей включает:
     
     предварительно определенное число связок вплоть до требуемого номера;
     
     типы линии - от 1 до 4;
     
     типы маркеров - от 1 до 5;
     
     точность представления текста ДО ШТРИХА (уровни вывода 1 и 2);
     
     вид заполнения - ПУСТО;
     
     одно устройство ввода каждого класса (уровни ввода b и с);
     
     тип подсказки и эха - 1 (уровни ввода b и с).
     

2.10.2.6. Набор явно определенных, но необязательных возможностей включает:
     
     точность текста ДО ШТРИХА (уровень вывода m и 0);
     
     виды заполнения - ЗАЛИВКА, ПО ШАБЛОНУ, ШТРИХОВКА;
     
     преобразуемые шаблоны;
     
     приоритет сегментов (уровни вывода 1 и 2);
     
     типы подсказки и эха с номерами больше 1, определенные в настоящем стандарте (уровни ввода b и с).
     

2.10.2.7. Набор концептуально определенных и необязательных возможностей включает:
     
     типы линий больше 4;
     
     типы маркеров больше 5;
     
     обобщенные примитивы вывода;
     
     типы подсказки и эха сверх определенных в настоящем стандарте (уровни ввода b и с);
     
     функции расширения.
     

2.10.2.7. Явно определенные, но необязательные возможности некоторого уровня становятся явно определенными и обязательными на более высоком уровне ЯГС при расширении диапазона изменения параметров. Каждый уровень ЯГС содержит только те функции, которые явно определены и обязательны для этого уровня. Однако диапазоны изменения значений параметров могут содержать дополнительные явно определенные и необязательные, а также концептуально определенные и необязательные возможности.
          

2.10.3. Уровни функциональности

2.10.3.1. Каждый уровень содержит следующие средства:
     
     Характеристики уровня вывода "m" - минимальный вывод:
     

1) ограниченный набор управляющих функций;
     

2) ограниченный набор примитивов;
     

3) ограниченный набор управляющих атрибутов;
     

4) не существует связок и атрибутов;
     

5) возможно изменение представления цвета;
     

6) в каждый момент времени доступна только одна станция, обладающая возможностями вывода;
     

7) допускается преобразование нормирования 0 и только одно устанавливаемое преобразование нормирования;
     

8) ограниченный набор справочных функций.
     

2.10.3.2. Характеристики уровня вывода "0" (все примитивы и атрибуты):
     

1) все возможности уровня вывода "m";
     

2) базовые средства управления;
     

3) все примитивы, по крайней мере, в минимальном исполнении;
     

4) предварительно определенные связки (изменение связок невозможно);
     

5) изменение представления цвета;
     

6) в каждый момент доступна лишь одна станция вывода;
     

7) метафайл не обязателен, но если он имеется, необходимы средства как ввода, так и вывода;
     

8) несколько преобразований нормирования, однако, допустимо иметь преобразование 0 и еще одно устанавливаемое преобразование;
     

9) базовые справочные функции;
     

10) обеспечено считывание пикселей (устройства, на которых пикселей нет, выдают сообщение об ошибке).
     

2.10.3.3. Характеристики уровня вывода "1" (базовая сегментация с полным выводом):
     

1) все возможности уровня 0;
     

2) полный набор функций управления станцией;
     

3) полный набор средств вывода;
     

4) полная реализация концепции связок;
     

5) несколько графических станций;
     

6) станции ввода-вывода метафайла;
     

7) несколько устанавливаемых преобразований нормирования;
     

8) базовая сегментация (отсутствует общая память сегментов);
     

9) соответствующие справочные функции.
     

2.10.3.4. Характеристики уровня вывода "2" (общая память сегментов):
     

1) все возможные уровни вывода "1";
     

2) общая память сегментов.
     

2.10.3.5. Характеристики уровня ввода "а" (отсутствие ввода):
     
     средств ввода нет.
     

2.10.3.6. Характеристики уровня ввода "b" (ввод в режиме ЗАПРОС - синхронный ввод):
     
     функции инициализации устройств ввода и задания режима их работы;
     
     функции ЗАПРОСИТЬ для всех соответствующих устройств;
     
     соответствующие логические устройства ввода включают устройство УКАЗАНИЯ только в комбинации с возможностями уровня вывода "1";
     
     функция установки входного приоритета вывода.
     

2.10.3.7. Характеристики уровня ввода "с" (полный ввод):
     
     все возможности уровня ввода "b";
     
     режимы ОПРОС и СОБЫТИЕ.
     

2.10.3.8. В табл.2 приведен перечень функциональных возможностей каждого допустимого уровня ЯГС. В каждом поле содержатся функции, которые добавляются к функциям, описанным в предыдущих полях той же строки и столбца.
     
     

Таблица 2


Концепция уровней ЯГС

Уровень вывода

Уровень ввода

а

b

с

m

Нет ввода, минимальные средства управления, только индивидуально устанавливаемые атрибуты, одно устанавливаемое преобразование нормирования, ограниченный набор функций вывода и атрибутов

Ввод данных в режиме ЗАПРОС, функции установки режима работы инициализации для логических устройств ввода, отсутствие устройства указания

Ввод данных в режимах ОПРОС и СОБЫТИЕ, отсутствие устройства указания

0

Отсутствие ввода, базовые средства управления, только предварительно определенные связки;

несколько преобразований нормирования, причем хотя бы одно из них является устанавливаемым, все функции вывода, возможно использование станций метафайла

Ввод данных в режимах ЗАПРОС функции инициализации и установки режима работы для логических устройств ввода, отсутствие режима УКАЗАНИЕ и функции установки входного приоритета поля вывода

Ввод данных в режиме ОПРОС и СОБЫТИЕ;

отсутствие выбора элементов

1

Полный вывод, включая полную реализацию концепции связок, концепцию нескольких графических станций, базовые средства сегментации (за исключением общей памяти сегментов);

станции метафайла

Функция ЗАПРОСИТЬ УКАЗАНИЕ, функции инициализации и установки режима работы для устройства УКАЗАНИЯ

Ввод данных в режиме ОПРОС и СОБЫТИЕ для устройства УКАЗАНИЯ

2

Общая память сегментов




     
     Допустимые различия в реализациях ЯГС, связанные с различными функциональными возможностями, приведены в приложении 6.
     

2.10.3.9. На различных уровнях число обязательных возможностей может быть различным. Минимальные характеристики, которые должны обеспечивать уровни ЯГС, приведены в табл.3. Число 0 указывает определенную, но необязательную на данном уровне возможность. Прочерк означает, что соответствующая функция на данном уровне не определена.
     
     

Таблица 3


Минимальные возможности, необходимые на каждом уровне ЯГС

Возможность

Уровень


mb

mc


0b


1a

1b


2a

2b


Copyright © 2021