agosty.ru35. ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ. МАШИНЫ КОНТОРСКИЕ35.140. Компьютерная графика

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

Обозначение:
ГОСТ 27817-88
Наименование:
Системы обработки информации. Машинная графика. Функциональное описание ядра графической системы
Статус:
Действует
Дата введения:
06.30.1989
Дата отмены:
-
Заменен на:
-
Код ОКС:
35.140

Текст ГОСТ 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.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

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.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

При значении ПО НИЗУ нижняя сторона граничного параллелограмма проходит через позицию текста.

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

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

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

Примечания:

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

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

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

Черт.4

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

Примечания:

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

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

Черт.5


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

Примечания:

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

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

Черт.6

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

Примечание.

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

Черт.7


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


Черт.8

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

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

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

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

2.4.6.3. Вид заполнения полигональной области используется для определения способа заполнения области. Он может иметь следующие значения:

ПУСТО - область не заполняется, а только вычерчивается граничная ломаная цветом, задаваемым индексом цвета полигональной области, который выбран либо через связку полигональной области, или индивидуально в зависимости от значения соответствующего ФВА. Тип линии и толщина линии зависят от реализации.

ЗАЛИВКА ЦВЕТОМ - внутренность многоугольника заполняется одним цветом, задаваемым индексом цвета полигональной области, который выбран либо через связку полигональной области, либо индивидуально в зависимости от значения соответствующего ФВА.

ПО ШАБЛОНУ - внутренность многоугольника заполняется с использованием индекса заполнителя полигональной области, который выбран через связку полигональной области, или индивидуально в зависимости от значения соответствующего ФВА. В этом контексте индекс вида заполнителя может рассматриваться как индекс шаблона.

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

2.4.6.4. Для вида заполнения ПО ШАБЛОНУ шаблон определяется представлением шаблона, которое задается матрицей индексов цвета размером (NXNY), являющихся указателями в таблице цвета. Размер и позиция начала шаблона определяются полем шаблона. Поле шаблона, представляющее собой параллелограмм, задается атрибутами ГОРИЗОНТАЛЬ ШАБЛОНА и ВЕРТИКАЛЬ ШАБЛОНА, определяемыми относительно атрибута ТОЧКА ПРИВЯЗКИ ШАБЛОНА. Концептуально поле шаблона подразделяется на сетку ячеек размером (NXNY). Матрица индексов цвета связывается с ячейками следующим образом: элемент (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.][0., 1.]. Кроме того, в конкретной реализации может поддерживаться только ограниченный диапазон НК. Однако этот диапазон всегда существенно больше, чем квадрат [0., 1.][0., 1.], что позволяет эффективно использовать функцию ВСТАВИТЬ СЕГМЕНТ. В частности, всегда должен быть обеспечен диапазон изменения НК в пределах [-7., 7.][-7., 7.].

2.6.1.5. Каждое преобразование нормирования идентифицируется номером - целым числом в диапазоне от нуля до зависящего от реализации , которое содержится в таблице состояния ЯГС. Преобразование нормирования с номером нуль является тождественным преобразованием, отображающим область [0., 1.,][0., 1.,] МК в область [0., 1.,][0., 1.,] НК. Это преобразование не может быть изменено.

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

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

2.6.2. Отсечение

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

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

Примитивы, посланные на станцию категории МВЫВОД, отсечению не подвергаются.

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

2.6.3.1. Пространство нормированных координат может рассматриваться как независимый от станции абстрактный носитель изображения. Для каждой открытой станции независимо выбирается некоторая часть пространства НК в диапазоне [0., 1.][0., 1.], которая будет отображаться на носитель изображения. Преобразование станции отображает НК в координаты устройства (КУ) данной станции.

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

В любом случае координаты устройства отображаются в пространство изображения следующим образом:

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

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

в) координаты Х и Y возрастают соответственно слева направо и снизу вверх.

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

Размер пространства изображения, выраженный в единицах измерения КУ, заносится в таблицу описания станции.

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

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

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

2.6.3.3. Преобразование станции определяется заданием границ области в системе нормированных координат в диапазоне [0., 1.][0., 1.] - окна станции, которая должна быть отображена в определенную область пространства координат устройства - поле вывода станции. Границы окна и поля вывода станции определяют прямоугольники со сторонами, параллельными осям координат в системах НК и КУ. Границы входят в состав прямоугольников.

2.6.3.4. Для предотвращения выхода выводимого изображения за пределы окна на станции в ЯГС производится обязательное отсечение по окну станции, которое не может быть отменено. Поскольку окно станции задается в диапазоне [0., 1.][0., 1.] НК, то гарантируется, что на любой станции может быть визуализирована только часть пространства НК, лежащая в пределах [0., 1.][0., 1.].

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

2.6.3.6. Преобразование станции по умолчанию устанавливается таким, чтобы отображать пространство НК [0., 1.][0., 1.] во все пространство изображения станции. Если пространство изображения не является квадратом, то применяются те же правила, что описаны выше, для достижения одинакового масштабирования по каждой оси.

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

Полная схема потока данных для графического вывода приведена на черт.9, где системы координат МК, НК и КУ являются двумерными декартовыми системами координат.

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


Черт.9

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

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

Для этого входные данные преобразуются из КУ в НК с помощью преобразования, обратного преобразованию станции. В качестве входных данных для устройства ввода позиций могут выступать только те позиции, которые лежат внутри части поля вывода станции, на которую отображается окно станции (это может быть часть поля вывода станции, если соотношение сторон у поля вывода станции и у окна станции различны). Следовательно, входные данные устройства ввода позиции всегда определяют позицию в НК в диапазоне [0., 1.][0., 1.].

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

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

2.6.4.4. Поскольку преобразование с номером ноль является тождественным и неизменяемым преобразованием, связанным с полем вывода [0., 1.][0., 1.], всегда обеспечивается попадание позиции, полученной от устройства ввода позиции, по крайней мере в одно из полей вывода.

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

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


Черт.10

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

Допускается изменять входной приоритет поля вывода при вводе и у преобразования с номером ноль.

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

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

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

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

При генерации каждой точки последовательности позиций координаты этой точки преобразуются из КУ в НК с помощью преобразования, обратного преобразованию станции. Входные данные устройства ввода последовательности позиций можно получить лишь для позиций, лежащих внутри той части текущего поля вывода станции, на которую отображается текущее окно станции (по аналогии с получением входных данных устройства ввода позиции). Таким образом, входные данные устройства ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИИ всегда состоят из точек в НК в диапазоне [0., 1.][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. Матрица преобразования имеет размерность 23, в том числе часть 22 для масштабирования и поворота и часть 21 для переноса. С помощью вспомогательных функций (СФОРМИРОВАТЬ МАТРИЦУ ПРЕОБРАЗОВАНИЙ, ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ) прикладная программа может формировать матрицы преобразования. Фиксированный центр, относительно которого выполняется масштабирование и поворот, и вектор переноса могут быть заданы в МК или НК. В первом случае значения фиксированного центра и переноса в МК сначала преобразуются с использованием текущего преобразования нормирования.

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

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

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

2.7.4.1. Отсечение производится после выполнения преобразования нормирования и преобразования сегмента. Каждый примитив отсекается по прямоугольнику отсечения, который связывается с примитивом в момент включения его в сегмент. Если запись "индикатор отсечения" в таблице состояния ЯГС в этот момент имеет значение ОТСЕКАТЬ, то в качестве прямоугольника отсечения, связанного с примитивом, указывается прямоугольник отсечения из таблицы состояния ЯГС; в противном случае он устанавливается равным области НК [0., 1.][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.][0., 1.] в НК.

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

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

2.7.6.4. Функция ВСТАВИТЬ СЕГМЕНТ позволяет преобразовать и вновь включить в поток примитивов вывода примитивы, входящие в записанный в ОПС сегмент. Функция ВСТАВИТЬ СЕГМЕНТ сначала считывает примитивы из сегмента в ОПС, выполняет преобразование включения, после чего засылает их в видовой конвейер в точку, предшествующую точке распределения данных по станциям. Все прямоугольники отсечения во вставляемом сегменте игнорируются. Каждому обрабатываемому примитиву приписывается новый прямоугольник отсечения, который совпадает с прямоугольником отсечения из таблицы состояния ЯГС, если запись "индикатор отсечения" в таблице состояния ЯГС имеет значение ОТСЕКАТЬ и устанавливается равным [0., 1.][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

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


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

Количество цветов (интенсивностей)

1

1

1

1

1

1

1

1

1

1

1

1

Типы линий

4

4

4

4

4

4

4

4

4

4

4

4

Ширина линий

-

-

-

1

1

1

1

1

1

1

1

1

Предварительно определенные связки ломаной

-

-

-

5

5

5

5

5

5

5

5

5

Устанавливаемые связки

-

-

-

-

-

-

20

20

20

20

20

20

Типы маркера

5

5

5

5

5

5

5

5

5

5

5

5

Размеры маркера

-

-

-

1

1

1

1

1

1

1

1

1

Предварительно определенные связки полимаркера

-

-

-

5

5

5

5

5

5

5

5

5

Устанавливаемые связки полимаркера ломаной

-

-

-

-

-

-

20

20

20

20

20

20

Высота литеры

1

1

1

1

1

1

1

1

1

1

1

1

Масштабы расширения литеры

-

-

-

1

1

1

1

1

1

1

1

1

Шрифты точности ДО СТРОКИ

1

1

1

1

1

1

1

1

1

1

1

1

Шрифты точности ДО ЛИТЕРЫ

-

-

-

1

1

1

1

1

1

1

1

1

Шрифты точности ДО ШТРИХА

-

-

-

0

0

0

2

2

2

2

2

2

Предварительно определенные связки текста

-

-

-

2

2

2

6

6

6

6

6

6

Устанавливаемые связки текста

-

-

-

-

-

-

20

20

20

20

20

20

Предварительно определенные шаблоны

-

-

-

1

1

1

1

1

1

1

1

1

Устанавливаемые шаблоны

-

-

-

-

-

-

10

10

10

10

10

10

Типы штриховки

-

-

-

3

3

3

3

3

3

3

3

3

Предварительно определенные связки полигональной области

-

-

-

5

5

5

5

5

5

5

5

5

Устанавливаемые связи полигональной области

-

-

-

-

-

-

10

10

10

10

10

10

Устанавливаемые преобразования нормирования

1

1

1

1

1

1

10

10

10

10

10

10

Приоритеты сегментов

-

-

-

-

-

-

2

2

2

2

2

2

Классы устройств ввода

-

5

5

-

5

5

-

6

6

-

6

6

Типы подсказки и эха на устройство

-

1

1

-

1

1

-

1

1

-

1

1

Длина входной очереди

-

-

20

-

-

20

-

-

20

-

-

20

Максимальный размер буфера для устройства ввода строки (в литерах)

-

72

72

-

72

72

-

72

72

-

72

72

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

-

64

64

-

64

64

-

64

64

-

64

64

Число станций вывода или ввода-вывода

1

1

1

1

1

1

1

1

1

1

1

1

Число станций ввода или ввода-вывода

-

1

1

-

1

1

-

1

1

-

1

1

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

-

-

-

-

-

-

-

-

-

1

1

1

Станции вывода метафайла

-

-

-

0

0

0

1

1

1

1

1

1

Станции ввода метафайла

-

-

-

0

0

0

1

1

1

1

1

1

Примечание. Данные табл.3 справедливы:

1. Для текста точности ДО СТРОКИ и ДО ЛИТЕРЫ.

2. Для станций, обеспечивающих заполнение ПО ШАБЛОНУ.

3. Для станций, обеспечивающих заполнение ШТРИХОВКА.

4. Для станций, обеспечивающих приоритеты сегментов.

5. В связи с ограниченностью ресурсов и переменным размером записей достижение указанных значений не всегда возможно.

2.11. Состояние ЯГС и справочные функции

2.11.1. Описание состояний

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

ГЯЗК (GKCL) - ЯГС закрыто;

ГЯОТ (GKОР) - ЯГС открыто;

CTOT (WSOP) - по крайней мере одна станция открыта;

СТАК (WSAC) - по крайней мере одна станция активна;

СГОТ (SGOP) - сегмент открыт.

Возможные переходы между функциональными состояниями


Черт.13

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

2.11.1.3. Общее состояние ЯГС определяется набором переменных состояния, которые обеспечивают полное описание эффекта функций. Набор переменных состояния подразделяется на:

1) функциональное состояние;

2) таблицу состояния ЯГС;

3) таблицу состояния сегмента для каждого существующего сегмента;

4) входную очередь;

5) таблицу состояния станции для каждой открытой станции;

6) таблицу ошибочных состояний ЯГС.

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

2.11.1.5. Если во время выполнения какой-нибудь функции ЯГС возникает ошибочная ситуация, ЯГС вызывает функцию ОБРАБОТАТЬ ОШИБКУ. Во время выполнения этой функции ЯГС находится в состоянии обработки ошибки. В этом состоянии ЯГС допускает выполнение только справочных функций, функции ЗАРЕГИСТРИРОВАТЬ ОШИБКУ и функции АВАРИЙНО ЗАКРЫТЬ ЯГС и не допускает никаких изменений в таблицах состояния, за исключением таблицы ошибочных состояний.

2.11.2. Справочные функции

2.11.2.1. Справочные функции выдают значение непосредственно либо получают их из различных таблиц. Типы данных этих значений и значения по умолчанию для полей таблиц приведены в разд.4.

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

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

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

2.11.2.4. Некоторые справочные функции, выбирающие данные из таблиц состояния станции, имеют входной параметр типа "перечисление", который может принимать следующие значения:

УСТАНОВЛЕННЫЕ - значения выдаются в том виде, в каком они были получены от прикладной программы;

РЕАЛИЗОВАННЫЕ - выдаются значения, которые использовались станцией после того, как фактические значения преобразованы в имеющиеся на станции значения.

2.12. Обработка ошибок

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

2.12.2. Стратегия обработки ошибок в ЯГС основана на следующей классификации ошибок:

класс 1 - ошибки, вызывающие точно определенную реакцию;

класс 2 - ошибки, приводящие к попытке сохранить результаты предыдущих операций;

класс 3 - ошибки, которые вызывают непредсказуемые результаты, включая потерю информации.

ЯГС различает три ситуации, в которых обнаруживаются ошибки:

ситуация А - ошибка обнаружена в функциях ЯГС;

ситуация Б - ошибка обнаружена в функциях, к которым было обращение ЯГС (функции драйверов и операционных систем);

ситуация В - ошибка обнаружена в других частях прикладной программы.

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

2.12.4. Функция АВАРИЙНО ЗАКРЫТЬ ЯГС является средством, зависящим от реализации. Ее назначением является сохранение как можно большей части подготовленной графической информации. Ее можно непосредственно вызвать из прикладной программы. Она также вызывается из самого ЯГС в виде стандартной реакции на ошибки класса 2.

2.12.5. Ошибки, которые явно перечислены в составе описания ЯГС, относятся к классу 1 ошибок. Эти ошибки либо обнаруживаются внутри самого ЯГС, либо функция, вызванная из ЯГС, передает управление в соответствующую функцию ЯГС вместе с соответствующей информацией об ошибке. Во всех случаях ошибок класса 1 ЯГС обращается к функции ОБРАБОТАТЬ ОШИБКУ. Если при вызове функции ЯГС возникает сразу несколько ошибочных ситуаций, то сообщается по крайней мере об одной из этих ошибок.

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

1) идентификацию ошибки;

2) идентификацию функции ЯГС, которая вызвала функцию ОБРАБОТАТЬ ОШИБКУ;

3) файл ошибок.

2.12.7. Функция ОБРАБОТАТЬ ОШИБКУ, входящая в состав ЯГС, фактически только обращается к функции ЗАРЕГИСТРИРОВАТЬ ошибку с тем же самым набором параметров. Последняя функция выполняет следующие действия:

1) записывает сообщение об ошибке и идентификатор функции ЯГС в файл ошибок;

2) возвращает управление вызывающей программе.

Вызов функций обработки ошибок в два этапа позволяет реализовать в прикладной программе свою собственную функцию ОБРАБОТАТЬ ОШИБКУ и в то же время сохранить доступ к сервисным возможностям, предоставляемым функцией ЗАРЕГИСТРИРОВАТЬ ОШИБКУ, как это можно видеть из следующего примера прикладной программы, содержащей функцию ОБРАБОТАТЬ ОШИБКУ:

ОБРАБОТАТЬ ОШИБКУ (номер ошибки, идентификатор функции ЯГС, файл ошибок);

произвести идентификацию функции ЯГС и ошибки для того, чтобы различить следующие варианты:

вариант "специальная обработка":

интерпретировать параметры ошибки, переданные из ЯГС;

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

возвратить управление в вызывавшую функцию ЯГС;

вариант "стандартная обработка":

вызвать функцию ЗАРЕГИСТРИРОВАТЬ ОШИБКУ со всеми выше перечисленными параметрами;

возвратить управление вызвавшей функции ЯГС.

КОНЕЦ.

2.12.8. Все функции ЯГС при обнаружении ошибки выполняют следующие действия:

1) устанавливают состояние ошибки в положение ВЫКЛЮЧЕНО;

2) вызывают функцию ОБРАБОТАТЬ ОШИБКУ с соответствующими параметрами;

3) устанавливают состояние ошибки в положение ВЫКЛЮЧЕНО;

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

2.12.9. Все функции ЯГС перед началом работы должны производить следующие проверки (в указанном порядке):

1) находится ли ЯГС в нужном состоянии;

2) правильно ли заданы входные параметры.

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

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

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

2.13. Специальный интерфейс между ЯГС и прикладной программой

2.13.1. В ЯГС предусмотрен унифицированный механизм расширения для обеспечения доступа к специфическим особенностям оборудования ("стандартный способ выполнения нестандартных действий"). Он реализован с помощью функции РАСШИРЕНИЕ.

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

3. ФУНКЦИИ ЯГС

3.1. Правила описания функций

3.1.1. Заголовок описания каждой функции должен содержать:

название функции;

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

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

3.1.2. В списке параметров для каждого параметра указывается следующая информация:

является ли параметр входным (вх) или выходным (вых);

название параметра;

для координат - система координат (МК, НК, КУ), используемая при вызове функции;

разрешенные значения для данных типа "перечисление" или любые ограничения на диапазон изменения значений для целых и действительных данных (например >0);

тип данных:

Ц - целые значения; Д - действительные значения; С - символьные значения; Т - точка; И - имя; П - перечисленные значения. Тип данных может иметь составную форму, в основе которой лежит одна или несколько простых форм (например ПхТ), или составную форму типа 0* - общие значения записи данных.

________________

* Текст соответствует оригиналу. - .

Список функций ЯГС приведен в Приложении 3.

3.2. Функции управления

3.2.1. ОТКРЫТЬ ЯГС

ГЯЗК Уровень mа:

OPEN GKS.

Параметры:

Вх файл ошибок

И;

Вх количество единиц памяти для буферной области

Ц.

Действие:

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

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

Описание функции в соответствии с подразд.2.11, 2.12.

Ошибки:

1

ЯГС не находится в состоянии ГЯЗК;

200

Неверно задан указанный файл ошибок.

3.2.2. ЗАКРЫТЬ ЯГС

ГЯОТ Уровень mа:

CLOSE GKS.

Параметры:

Нет.

Действие:

ЯГС переводится в функциональное состояние ГЯЗК - "ЯГС закрыто". Таблица описания ЯГС, таблица состояния ЯГС. Таблицы описания станций становятся недоступными. Вся буферная память ЯГС освобождается и закрываются все файлы ЯГС.

Примечание. ЯГС может быть открыто вновь обращением к функции ОТКРЫТЬ ЯГС.

Описание функции в соответствии с подразд.2.11, 2.12.

Ошибки:

2 ЯГС не находится в состоянии ГЯОТ.

3.2.3. ОТКРЫТЬ СТАНЦИЮ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень ma:

OPEN WORKSTATION.

Параметры:

Вх идентификатор станции

И;

Вх идентификатор связи

И;

Вх тип станции

И.

Действие:

Если ЯГС находится в функциональном состоянии ГЯОТ, то оно будет переведено в состояние СТОТ.

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

Примечания:

1. Идентификатор связи задается в форме, соответствующей языку программирования прикладной программы (например "номер устройства" для языка Фортран или "идентификатор файла" для PL/1).

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

Описание функции в соответствии с пп.2.5.2; 2.11.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

21

Неверно задан идентификатор связи;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

24

Указанная станция уже открыта;

26

Указанная станция не может быть открыта;

28

Общая память сегментов уже открыта;

42

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

3.2.4. ЗАКРЫТЬ СТАНЦИЮ

СТОТ, СТАК, СГОТ Уровень mа:

CLOSE WORKSTATION.

Параметры:

И.

Действие:

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

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

Описание функции в соответствии с пп.2.5.2; 2.8.5; 2.11.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

29

Указанная станция активна;

147

Очередь событий переполнена.

3.2.5. АКТИВИРОВАТЬ СТАНЦИЮ

СТОТ, СТАК Уровень mа:

ACTIVITE WORKSTATION.

Параметры:

Вх идентификатор станции

И.

Действие:

ЯГС переводится в состояние СТАК - "по крайней мере одна станция открыта". Указанная станция отмечается как активная в таблице состояния станции. Идентификатор станции добавляется в набор активных станций в таблице состояния ЯГС.

Примечание. Во все активные станции посылаются выходные примитивы и запоминаются сегменты.

Описание функции в соответствии с пп.2.5.2; 2.11.

Ошибки:

6

ЯГС не находится в состоянии СТОТ или СТАК;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

29

Указанная станция активна;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

43

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

3.2.6. ДЕАКТИВИРОВАТЬ СТАНЦИЮ

СТАК Уровень mа:

DEACTIVITE WORKSTATION.

Параметры:

И.

Действие:

Указанная станция переводится в состояние "неактивна". Идентификатор станции удаляется из набора активных станций в таблице состояния ЯГС. Если больше не остается активных станций, ЯГС переводится в состояние СТОТ - "по крайней мере одна станция открыта".

Примечание. На данную станцию больше не будут посылаться примитивы вывода и новые сегменты не будут запоминаться на этой станции. Ранее сохраненные на станции сегменты остаются.

Описание функции в соответствии с пп.2.5.2; 2.11.

Ошибки:

3

ЯГС не находится в состоянии СТАК;

20

Неверно задан идентификатор станции;

30

Указанная станция не активна;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода.

3.2.7. ОЧИСТИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ

СТОТ, СТАК Уровень ma:

CLEAR WORKSTATION.

Параметры:

Вх идентификатор станции

И;

Вх флаг управления (УСЛОВНО, ВСЕГДА)

П.

Действия:

Выполняются все отложенные действия для указанной станции (без промежуточной очистки носителя изображения).

В зависимости от значения параметра флаг управления носитель изображения переводится в очищенное состояние следующим образом:

УСЛОВНО - носитель изображения очищается только в том случае, если поле "заполненность носителя изображения" в таблице состояния станции имеет значение НЕ ПУСТ;

ВСЕГДА - носитель изображения очищается всегда.

Если в таблице состояния станции поле "состояние обновления преобразования станции" имеет значение ЗАДЕРЖАНО, то полям "текущее окно станции" и "текущее поле вывода станции" назначаются значения полей "запрошенное окно станции" и "запрошенное поле вывода станции", а в поле "состояние обновления преобразования станции" заносится значение НЕ ЗАДЕРЖАНО.

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

В поле "при обновлении необходим вывод нового кадра" таблицы состояния станции заносится значение НЕТ.

В поле "заполненность носителя изображения" в таблице состояния станции заносится значение ПУСТ.

Описание функции в соответствии с пп.2.5.3; 2.5.4; 2.5.5; 2.7.1.

Ошибки:

6

ЯГС не находится в состоянии СТОК или СТАК;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода.

3.2.8. ПЕРЕРИСОВАТЬ ВСЕ СЕГМЕНТЫ НА СТАНЦИИ

СТОТ, СТАК, СГОТ Уровень 1а

REDRAW ALL SEGMENTS ON WORKSTATION.

Параметры:

Bx идентификатор станции

И.

Действия:

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

Носитель изображения очищается только в том случае, если поле "заполненность носителя изображения" в таблице состояния станции имеет значение НЕ ПУСТ и в поле заносится значение ПУСТ.

Если в таблице состояний станции поле "состояние обновления преобразования станции" имеет значение ЗАДЕРЖАНО, то в поля "текущее окно станции" и "текущее поле вывода станции" заносятся значения полей "запрошенное окно станции" и "запрошенное поле вывода станции", а в поле "состояние обновления преобразования станции" заносится значение НЕ ЗАДЕРЖАНО.

Все видимые сегменты, запомненные на этой станции (т.е. содержащиеся в списке запомненных на станции сегментов в таблице состояния станции) отображаются заново. Это действие обычно вызывает занесение значения НЕ ПУСТ в поле "заполненность носителя изображения" в таблице состояния станции.

В поле "при обновлении необходим вывод нового кадра" в таблице состояния станции заносится значение НЕТ.

Описание функции в соответствии с пп.2.5.3; 2.5.4; 2.5.5; 2.7.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов.

3.2.9. ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ

СТОТ, СТАК, СГОТ Уровень mа.

UPDATE WORKSTATION.

Параметры:

Bx идентификатор станции

И;

Bx флаг повторной генерации (ОТЛОЖИТЬ, ВЫПОЛНИТЬ)

П.

Действия:

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

носитель изображения очищается только в том случае, если поле "заполненность носителя изображения" в таблице состояния станции имеет значение НЕ ПУСТ. В поле заносится значение ПУСТ;

если в таблице состояния станции поле "состояние обновления преобразования станции" имеет значение ЗАДЕРЖАНО, то поля "текущее окно станции" и "текущее поле вывода станции" принимают значения полей "запрошенное окно станции" и "запрошенное поле вывода станции", а в поле "состояние обновления преобразования станции" устанавливается значение НЕ ЗАДЕРЖАНО;

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

в поле "при обновлении необходим вывод нового кадра" в таблице состояния станции устанавливается значение НЕТ.

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

УЗНАТЬ РЕЖИМ ЗАДЕРЖКИ И ОБНОВЛЕНИЯ СТАНЦИИ;

Запомнить состояние задержки;

ЗАДАТЬ РЕЖИМ ЗАДЕРЖКИ (БЫСТРО, РАЗРЕШЕНА);

Задать запомненное состояние задержки.

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

В процессе генерации отложенных действий поле "при обновлении необходим вывод нового кадра" в таблице состояния станции устанавливается в положение ДА, если выполняются следующие два условия:

действие, вызывающее обновление картины, откладывается на этой станции;

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

Описание функции в соответствии с пп.2.5.3; 2.5.4; 2.5.5.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов.

3.2.10. ЗАДАТЬ РЕЖИМ ЗАДЕРЖКИ

СТОТ, СТАК, СГОТ Уровень 1а.

SET DEFERRAL STATE.

Параметры:

Вх идентификатор станции

И;

Вх момент обновления (БЫСТРО, ГЛОБ, ЛОК, ЛЮБОЙ)

П;

Вх неявная повторная генерация (РАЗРЕШЕНА, ЗАПРЕЩЕНА)

П.

Действие:

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

Описание функции в соответствии с пп.2.5.3; 2.5.5.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов.

3.2.11. СООБЩЕНИЕ

СТОТ, СТАК, СГОТ Уровень 1а.

MESSAGE.

Параметры:

Вх идентификатор станции

И;

Вх сообщение

С.

Действие:

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

Таблица состояния ЯГС остается неизменной.

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

Описание функции в соответствии с п.2.5.6.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

36

Указанная станция является общей памятью сегментов.

3.2.12. РАСШИРЕНИЕ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

ESCAPE.

Параметры:

Вх идентификатор функции расширения

И;

Вх запись входных данных функции расширения

О;

Вых запись выходных данных функции расширения

О.

Действие:

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

не должны нарушаться концепции проектирования ЯГС;

не должны изменяться таблицы состояния ЯГС;

функция не должна генерировать графических выходных данных;

любые побочные действия должны быть подробно документированы.

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

Примечание. Примеры функций расширения:

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

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

Если в языке программирования идентификатор функции расширения имеет тип ЦЕЛЫЙ, то положительные идентификаторы сохраняются для будущей стандартизации, а смысл отрицательных зависит от реализации.

Описание функции в соответствии с подразд.2.13.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

180

Указанная функция расширения не обеспечена;

181

Идентификатор указанной функции расширения задан неверно;

182

Неверно задано содержимое записи данных функции расширения.


3.3. Функции вывода графических данных

3.3.1. ЛОМАНАЯ

СТАК, СГОТ Уровень mа.

POLYLINE.

Параметры:

Вх число точек

(2...n)

Ц;

Вх координаты точек

МК

nТ.

Действие:

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

Если после преобразования станции все точки совпадают, то сообщение об ошибке не выдается, и то, что вычерчивается, зависит от станции.

Описание функции в соответствии с пп.2.4.1; 2.4.2; 2.4.3; 2.5.3.

Ошибки:

5

ЯГС не находится в состоянии СТАК или СГОТ;

100

Неверно задано число точек.

3.3.2. ПОЛИМАРКЕР

СТАК, СГОТ Уровень mа.

POLYMARKER.

Параметры:

Вх число точек

(1...n)

Ц;

Вх координаты точек

МК

nТ.

Действие:

Генерируется последовательность маркеров, которые размещаются в указанных точках. Текущие значения атрибутов полимаркера, заданные в таблице состояния ЯГС, связываются с примитивом.

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

Описание функции в соответствии с пп.2.4.1; 2.4.2; 2.4.4; 2.5.3.

Ошибки:

5

ЯГС не находится в состоянии СТАК или СГОТ;

100

Неверно задано число точек.

3.3.3. ТЕКСТ

СТАК, СГОТ Уровень mа.

TEXT.

Параметры:

Вх позиция текста

МК

Т;

Вх строка литер

С.

Действие:

Генерируется строка литер. Текущие значения атрибутов текста, заданные в таблице состояния ЯГС, связываются с примитивом. Позиция текста задана в мировых координатах и преобразуется текущим преобразованием нормирования.

Если после преобразования станции высота или ширина литеры нулевая, то сообщение не выдается, и то, что вычерчивается, зависит от станции.

Если строка литер содержит код управляющего символа, то результат зависит от станции: или выдается ошибка 101, или генерируется некоторый визуальный результат, или код игнорируется. Строка текста выводится на всех активных станциях, которые не выдают ошибку 101.

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

Описание функции в соответствии с пп.2.4.1; 2.4.2; 2.4.5; 2.5.3.

Ошибки:

5

ЯГС не находится в состоянии СТАК или СГОТ;

101

Неверный код литеры.

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

СТАК, СГОТ Уровень mа.

FILL AREA.

Параметры:

Вх число точек

(3...n)

Ц;

Вх координаты точек

МК

nТ.

Действие:

Генерируется выходной примитив ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ. Текущие значения атрибутов полигональной области, заданные в таблице состояния ЯГС, связываются с примитивом.

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

Если часть полигональной области отсекается, то генерируются новые границы. В результате может быть сгенерировано несколько подобластей, как показано на черт.14.

Отсечение примитивов ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ


Черт.14

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

Определение области примитива ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ


Черт.15

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

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

При формировании входных данных логического устройства указания примитив ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ с видом заполнения ЗАЛИВКА или ПО ШАБЛОНУ выбирается путем указания точки внутри или на границе многоугольника. Указание точки в отверстии полигональной области не приводит к идентификации этой полигональной области. Примитив ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ с видом заполнения ПУСТО выбирается путем указания точки на границе многоугольника. Примитив ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ с видом заполнения ШТРИХОВКА выбирается путем указания точки на границе многоугольника или на линии штриховки.

Описание функции в соответствии с пп.2.4.1; 2.4.2; 2.4.6; 2.5.3.

Ошибки:

5

ЯГС не находится в состоянии СТАК или СГОТ;

100

Неверно задано число точек.

3.3.5. МАТРИЦА ЯЧЕЕК

СТАК, СГОТ Уровень 0а.

CELL ARRAY.

Параметры:

Вх прямоугольник ячеек (Р, Q)

МК

2Т;

Вх размерности массива индексов цвета Nx, Ny

(1...n)

2Ц;

Вх массив индексов цвета

(0...n)

nnЦ.

Действие:

Генерируется примитив МАТРИЦА ЯЧЕЕК с использованием координат углов прямоугольника ячеек и размерностей массива индексов цвета.

Стороны прямоугольника параллельны осям системы мировых координат. Точки Р и Q определяют левый нижний и правый верхний углы прямоугольника. Прямоугольник делится на ячейки. Получается сетка, состоящая из (NxNy) ячеек, где Nx и Ny - размерности массива индексов цвета. Каждая ячейка имеет ширину |xp-xq|/Nx и высоту |yp-yq|/Ny, где (xp, уp) - координаты точки Р, a (xq, yq) - координаты точки Q.

Массив индексов цвета ориентируется по отношению к прямоугольнику следующим образом:

элемент (1, 1) связывается с ячейкой, содержащей p;

элемент (Nx, Ny) связывается с ячейкой, содержащей Q;

элемент (1, Ny) связывается с ячейкой, содержащей точку (Рх, Qy);

элемент (Nx, 1) связывается с ячейкой, содержащей точку (Qx, Ру).

Цвет каждой ячейки задается значением соответствующего элемента массива индексов цвета. Если значение индекса отсутствует в таблице индексов цвета, то используется зависящее от станции значение.

Прямоугольная сетка, заданная точками Р и Q и числом ячеек Nx и Ny, является объектом преобразований, которые могут преобразовать прямоугольные ячейки в параллелограммы.

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

На черт.16 указан способ привязки примитива МАТРИЦА ЯЧЕЕК к носителю изображения растрового устройства отображения.

Привязка примитивов МАТРИЦА ЯЧЕЕК к носителю изображения

Черт.16

При отображении примитива МАТРИЦА ЯЧЕЕК на нерастровый носитель изображения минимальным требованием является вычерчивание преобразованных границ примитива МАССИВ ЯЧЕЕК с использованием зависящих от реализации цвета, ширины и типа линий.

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

Описание функции в соответствии с пп.2.4.1; 2.4.2; 2.4.7; 2.5.3.

Ошибки:

5

ЯГС не находится в состоянии СТАК или СГОТ;

91

Неверно заданы размерности массива индексов цвета.

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

СТАК, СГОТ Уровень 0а.

GENERALIZED DRAWING PRIMITIVE.

Параметры:

Вх число точек

(0...n)

Ц;

Вх координаты точек

МК

nТ;

Вх идентификатор ОПВ

И;

Вх запись данных ОПВ

О.

Действие:

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

Примечание. Параметры функции ОПВ передаются на станцию и интерпретируются зависящим от станции образом. Тем самым используются особые возможности станции. Даже в случае ошибки 104 ОПВ отображается на всех активных станциях, способных отобразить давный ОПВ.

Следующие примитивы могут быть реализованы с помощью ОПВ:

окружность - заданными точками является центр и точка на окружности;

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

эллипс - заданными точками являются две фокусные точки и точка эллипса;

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

интерполирующая кривая (например, сплайн) - заданными точками являются интерполируемые точки.

Для приведенных примеров ОПВ рекомендуется использовать атрибуты ломаной.

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

Результирующие выходные данные ОПВ отсекаются по границам окна станции и по границам прямоугольника отсечения, если индикатор отсечения имеет значение ОТСЕКАТЬ.

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

Если идентификатор ОПВ в языке программирования имеет тип ЦЕЛЫЙ, положительные идентификаторы ОПВ резервируются для регистрации или будущей стандартизации, а смысл отрицательных идентификаторов зависит от реализации.

Описание функции в соответствии с пп.2.4.1; 2.4.2; 2.4.7; 2.5.3; 2.13.

Ошибки:

5

ЯГС не находится в состоянии СТАК или СГОТ;

100

Неверно задано число точек;

102

Неверно задан идентификатор ОПВ;

103

Неверно задано содержимое записи данных ОПВ;

104

Ни одна активная станция не может сгенерировать указанный ОПВ;

105

Ни одна активная станция не в состоянии сгенерировать указанный ОПВ при текущих преобразованиях и прямоугольнике.


3.4. Функции задания атрибутов выходных данных

3.4.1. Функции задания не зависящих от станций атрибутов

3.4.1.1. ЗАДАТЬ ИНДЕКС ЛОМАНОЙ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

Параметр:

Вх индекс ломаной

(1...n)

Ц.

Действие:

В поле "текущий индекс ломаной" в таблице состояния ЯГС заносится значение, заданное параметром индекс ломаной. Это значение используется впоследствии для создания выходных примитивов ЛОМАНАЯ.

Описание функции в соответствии с пп.2.4.2; 2.4.3.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

60

Неверно задан индекс ломаной.

3.4.1.2. ЗАДАТЬ ТИП ЛИНИИ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

SET LINETYPE.

Параметр:

Вх тип линии

(-n...-1, 1...n)

Ц.

Действие:

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

Параметр тип линии устанавливает следующие значения типов линии:

<0 - зависит от реализации;

1 - сплошная линия;

2 - штриховая линия;

3 - пунктирная линия;

4 - штрихпунктирная линия;

>=5 - резервируются для будущей стандартизации.

Если указанные типы линии не поддерживаются станцией, используется сплошная линия.

Описание функции в соответствии с пп.2.4.2; 2.4.3.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

63

Тип линии равен нулю.

3.4.1.3. ЗАДАТЬ МАСШТАБ ТОЛЩИНЫ ЛИНИИ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

SET LINEWIDTH SCALE FACTOR.

Параметр:

Вх масштаб толщины линии

>=0

Д.

Действие:

В поле "текущий масштаб толщины линии" в таблице состояния ЯГС заносится значение, заданное параметром. Это значение используется для отображения последующих выходных примитивов ЛОМАНАЯ, создаваемых, когда поле "текущий ФВА масштаба толщины линии" в таблице состояния ЯГС имеет значение ИНДИВИДУАЛЬНЫЙ. Это значение не оказывает воздействия на отображение последующих выходных примитивов ЛОМАНАЯ, создаваемых, когда поле "текущий ФВА масштаба толщины линии" в таблице состояния ЯГС имеет значение СВЯЗАННЫЙ.

Масштаб толщины линии применяется к номинальной ширине линии станции. Результат привязывается станцией к ближайшей доступной ширине линии.

Описание функции в соответствии с пп.2.4.2; 2.4.3.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

65

Масштаб толщины линии меньше нуля.

3.4.1.4. ЗАДАТЬ ИНДЕКС ЦВЕТА ЛОМАНОЙ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

SET POLYLINE COLOUR INDEX

Параметр:

Bx индекс цвета ломаной

(0...n)

Ц.

Действие:

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

Индекс цвета является указателем в таблице цвета станции. Если заданный индекс цвета не представлен в таблице цвета станции, то на этой станции используется зависящий от станции индекс цвета.

Описание функции в соответствии с пп.2.4.2; 2.4.3.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

92

Индекс цвета меньше нуля.

3.4.1.5. ЗАДАТЬ ИНДЕКС ПОЛИМАРКЕРА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

SET POLYMARKER INDEX.

Параметр:

Bx индекс полимаркера

(1...n)

Ц.

Действие:

В поле "текущий индекс полимаркера" в таблице состояния ЯГС заносится значение, заданное параметром "индекс полимаркера". Это значение используется впоследствии для создания выходных примитивов ПОЛИМАРКЕР.

Описание функции в соответствии с пп.2.4.2; 2.4.4.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

66

Неверно задан индекс полимаркера.

3.4.1.6. ЗАДАТЬ ТИП МАРКЕРА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

SET MARKER TYPE.

Параметр:

Bx тип маркера

(-n...-1, 1...n)

Ц.

Действие:

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

<0 - зависит от реализации;

1 - символ "точка" (.);

2 - символ "плюс" (+);

3 - символ "звездочка" (*);

4 - символ "кружок" (О);

5 - символ "крестик" (х).

>=6 - резервируется для будущей стандартизации.

Описание функции в соответствии с пп.2.4.2; 2.4.4.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

69

Тип маркера равен нулю.

3.4.1.7. ЗАДАТЬ МАСШТАБ МАРКЕРА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

SET MARKER SIZE SCALE FACTOR.

Параметр:

Bx масштаб маркера

>=0

Д.

Действие:

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

Размер маркера умножается на номинальный размер маркера на станции. Результат привязывается станцией к ближайшему имеющемуся размеру маркера.

Описание функции в соответствии с пп.2.4.2; 2.4.4.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

71

Масштаб маркера меньше нуля.

3.4.1.8. ЗАДАТЬ ИНДЕКС ЦВЕТА ПОЛИМАРКЕРА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

SET POLYMARKER COLOUR INDEX.

Параметр:

Bx индекс цвета полимаркера

(0...n)

Ц.

Действие:

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

Индекс цвета является указателем в таблице цвета станции. Если указанный индекс цвета не представлен в таблице цвета станции, то на этой станции используется индекс цвета, зависящий от станции.

Описание функции в соответствии с пп.2.4.2; 2.4.4.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

92

Индекс цвета меньше нуля.

3.4.1.9. ЗАДАТЬ ИНДЕКС ТЕКСТА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

SET TEXT INDEX

Параметр:

Bx индекс текста

(1...n)

Ц.

Действие:

В поле "текущий индекс текста" в таблице состояния ЯГС заносится значение, заданное параметром индекс текста. Это значение используется для создания последующих выходных примитивов ТЕКСТ.

Описание функции в соответствии с пп.2.4.2; 2.4.5.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

72

Неверно задан индекс текста.

3.4.1.10. ЗАДАТЬ ШРИФТ И ТОЧНОСТЬ ТЕКСТА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

SET TEXT FONT AND PRECISION.

Параметр:

Bx шрифт и точность текста (-n...-1, 1....n);

(ДО СТРОКИ, ДО ЛИТЕРЫ, ДО ШТРИХА)

(Ц; П).

Действие:

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

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

Если указанные шрифт и точность представления текста не поддерживаются станцией, то используются значения (1; ДО СТРОКИ).

Описание функции в соответствии с пп.2.4.2; 2.4.5.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

75

Шрифт равен нулю.

3.4.1.11. ЗАДАТЬ МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

SET CHARACTER EXPANSION FACTOR.

Параметры:

Вх масштаб расширения литеры

>0

Д.

Действие:

В поле "текущий масштаб расширения литеры" в таблице состояния ЯГС заносится значение, заданное параметром масштаб расширения литеры. Это значение используется для отображения последующих выходных примитивов ТЕКСТ, создаваемых, когда поле "текущий ФВА масштаба расширения литеры" в таблице состояния ЯГС имеет значение ИНДИВИДУАЛЬНЫЙ. Это значение не оказывает воздействия на отображение последующих выходных примитивов ТЕКСТ, создаваемых, когда поле "текущий ФВА масштаба расширения литеры" в таблице состояния ЯГС имеет значение СВЯЗАННЫЙ.

Описание функции в соответствии с пп.2.4.2; 2.4.5.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

77

Масштаб расширения литеры меньше или равен нулю.

3.4.1.12. ЗАДАТЬ МЕЖЛИТЕРНЫЙ ПРОСВЕТ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

SET CHARACTER SPACING.

Параметры:

Вх межлитерный просвет

Д.

Действие:

В поле "текущий межлитерный просвет" в таблице состояния ЯГС заносится значение, заданное параметром. Это значение используется для отображения последующих примитивов ТЕКСТ, генерируемых, когда поле "текущий ФВА межлитерного просвета" в таблице состояния ЯГС имеет значение ИНДИВИДУАЛЬНЫЙ. Это значение не оказывает воздействия на отображение последующих выходных примитивов ТЕКСТ, создаваемых, когда поле "текущий ФВА межлитерного просвета" в таблице состояния ЯГС имеет значение СВЯЗАННЫЙ.

Описание функции в соответствии с пп.2.4.2; 2.4.5.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

3.4.1.13. ЗАДАТЬ ИНДЕКС ЦВЕТА ТЕКСТА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

SET TEXT COLOUR INDEX.

Параметры:

Вх индекс цвета текста

(0...n)

Ц.

Действие:

В поле "текущий индекс цвета текста" в таблице состояния ЯГС заносится значение, заданное параметром. Это значение используется для отображения последующих выходных примитивов ТЕКСТ, создаваемых, когда поле "текущий ФВА индекса цвета текста" в таблице состояния ЯГС имеет значение ИНДИВИДУАЛЬНЫЙ. Это значение не оказывает воздействия на отображение последующих выходных примитивов ТЕКСТ, создаваемых, когда поле "текущий ФВА индекса цвета текста" в таблице состояния ЯГС имеет значение СВЯЗАННЫЙ.

Индекс цвета является указателем в таблице цвета станции. Если указанный индекс цвета не представлен в таблице цвета станции, то используется зависящий от станции индекс.

Описание функции в соответствии с пп.2.4.2; 2.4.5.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

92

Индекс цвета меньше нуля.

3.4.1.14. ЗАДАТЬ ВЫСОТУ ЛИТЕРЫ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

SET CHARACTER HEIGHT.

Параметры:

Вх высота литеры

МК

>0

Д.

Действие:

В поле "текущая высота литеры" в таблице состояния ЯГС заносится значение, заданное параметром высота литеры.

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

Описание функции в соответствии с пп.2.4.2; 2.4.5.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

78

Высота литер меньше или равна нулю.

3.4.1.15. ЗАДАТЬ ВЕРТИКАЛЬ ЛИТЕРЫ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

SET CHARACTER UP VECTOR.

Параметры:

Вх вертикаль литеры

МК

2Д.

Действие:

В поле "текущая вертикаль литеры" в таблице состояния ЯГС заносится значение, заданное параметром вертикаль литеры.

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

Эти значения используются для создания последующих выходных примитивов ТЕКСТ.

Описание функции в соответствии с пп.2.4.2; 2.4.5.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

79

Длина вертикали литеры равна нулю.

3.4.1.16. ЗАДАТЬ НАПРАВЛЕНИЕ ТЕКСТА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

SET TEXT PATH.

Параметры:

Вх направление текста

(ВПРАВО, ВЛЕВО, ВВЕРХ, ВНИЗ)

П.

Действие:

В поле "текущее направление текста" в таблице состояния ЯГС заносится значение, заданное параметром направление текста. Это значение используется для создания последующих выходных примитивов ТЕКСТ.

Примечание. При установке направления текста значение поля "текущее выравнивание текста (горизонтальное и вертикальное)" не используется.

Описание функции в соответствии с пп.2.4.2; 2.4.5.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

3.4.1.17. ЗАДАТЬ ВЫРАВНИВАНИЕ ТЕКСТА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

SET TEXT ALIGNMENT.

Параметры:

Вх выравнивание текста

(ОБЫЧНОЕ, ЛЕВОЕ, ЦЕНТРАЛЬНОЕ, ПРАВОЕ; ОБЫЧНОЕ, ПО ВЕРХУ, ПО ЗАГЛАВНОЙ, ПО СЕРЕДИНЕ, ПО ОСНОВАНИЮ, ПО НИЗУ)

П; П.

Действие:

В поле "текущее выравнивание текста (горизонтальное и вертикальное)" таблицы состояния ЯГС заносятся значения, заданные параметром выравнивание текста. Эти значения используются для создания последующих выходных примитивов ТЕКСТ.

Описание функции в соответствии с пп.2.4.2; 2.4.5.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

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

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

SET FILL AREA INDEX.

Параметры:

Вх индекс полигональной области

(1...n)

Ц.

Действие:

В поле "текущий индекс полигональной области" в таблице состояния ЯГС заносится значение, заданное параметром. Это значение используется для создания последующих выходных примитивов ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ.

Описание функции в соответствии с пп.2.4.2; 2.4.6.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

80

Неверно задан индекс полигональной области.

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

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

SET FILL AREA INTERIOR STYLE.

Параметры:

Вх вид заполнения полигональной области

(ПУСТО, ЗАЛИВКА, ПО ШАБЛОНУ, ШТРИХОВКА)

П.

Действие:

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

Если запрошенный вид заполнения не обеспечен на станции, то на этой станции используется зависящее от реализации значение.

Описание функции в соответствии с пп.2.4.2; 2.4.6.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОК*, СТАК или СГОТ.

________________

* Текст соответствует оригиналу. - .

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

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

SET FILL AREA STYLE INDEX.

Параметры:

Вх индекс заполнителя полигональной области

(-n...-1, 1...n)

Ц.

Действие:

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

Значение индекса не используется для видов заполнения ПУСТО И ЗАЛИВКА. Для вида заполнения ШТРИХОВКА значение индекса определяет, какой вид штриховки используется. Виды штриховки больше нуля резервируются для будущей стандартизации, виды штриховки меньше нуля зависят от станции.

Если запрошенный вид заполнения не обеспечен на станции, то на этой станции используется индекс 1. Если индекс 1 не представлен на этой станции, то результат зависит от станции.

Описание функции в соответствии с пп.2.4.2; 2.4.6.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

84

Индекс заполнителя (шаблона или штриховки) равен нулю.

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

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

SET FILL AREA COLOUR INDEX.

Параметры:

Bx индекс цвета полигональной области

(0...n)

Ц.

Действие:

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

Индекс цвета является указателем таблиц цвета станций. Если указанный индекс цвета не представлен на станции, то на этой станции используется индекс цвета, зависящий от станции.

Описание функции в соответствии с пп.2.4.2; 2.4.6.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

92

Индекс цвета меньше нуля.

3.4.1.22. ЗАДАТЬ РАЗМЕР ШАБЛОНА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

SET PATTERN SIZE.

Параметры:

Bx размер шаблона Sx, Sy

МК

>0

2Д.

Действие:

В поле "текущая горизонталь шаблона" в таблице состояния ЯГС заносится значение (Sx, 0). В поле "текущая вертикаль шаблона" в таблице состояний ЯГС задается вектор (0, Sy). Когда вид заполнения полигональной области (выбранный через связку полигональной области или индивидуально в зависимости от соответствующего ФВА), имеет значение ПО ШАБЛОНУ, это значение используется там, где это возможно, совместно со значением поля "текущая точка привязки шаблона" таблицы состояния ЯГС для отображения выходных примитивов ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ.

Описание функции в соответствии с пп.2.4.2; 2.4.6.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

87

Значение размера шаблона не положительно.

3.4.1.23. ЗАДАТЬ ТОЧКУ ПРИВЯЗКИ ШАБЛОНА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

SET PATTERN REFERENCE POINT.

Параметры:

Bx точка привязки шаблона

МК

Т.

Действие:

В поле "текущая точка привязки шаблона" в таблице состояния ЯГС заносится значение, заданное параметром. Когда вид полигональной области (выбранный через связку полигональной области или индивидуально в зависимости от значения соответствующего ФВА), имеет значение ПО ШАБЛОНУ, это значение используется там, где это возможно, совместно со значением поля "текущая горизонталь шаблона" и поля "текущая вертикаль шаблона" в таблице состояния ЯГС для отображения выходных примитивов ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ.

Описание функции в соответствии с пп.2.4.2; 2.4.6.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ

3.4.1.24. ЗАДАТЬ ФЛАГИ ВЫБОРКИ АТРИБУТОВ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

SET ASPECT SOURCE FLAGS.

Параметры:

Вх список флагов выборки атрибутов (СВЯЗАННЫЙ, ИНДИВИДУАЛЬНЫЙ)

13П.

Действие:

В поля "текущие флаги выборки атрибутов (ФВА)" таблицы состояния ЯГС заносятся значения, заданные параметром. Список флагов выборки атрибутов задается в следующем порядке:

ФВА типа линии;

ФВА масштаба толщины линий;

ФВА индекса цвета ломаной;

ФВА типа маркера;

ФВА масштаба маркера;

ФВА индекса цвета полимаркера;

ФВА шрифта и точности текста;

ФВА масштаба расширения литеры;

ФВА межлитерного просвета;

ФВА индекса цвета текста;

ФВА вида заполнения полигональной области;

ФВА индекса заполнения полигональной области;

ФВА индекса цвета полигональной области.

Описание функции в соответствии с п.2.4.2.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

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

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 1b.

SET PICK IDENTIFIER.

Параметр:

Вх идентификатор указания

И.

Действие:

В поле "текущий идентификатор указания" в таблице состояния ЯГС заносится значение, заданное параметром.

Описание функции в соответствии с пп.2.4.2; 2.7.1; 2.8.1; 2.8.4.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

97

Неверно задан идентификатор указания.

3.4.2. Функции задания зависящих от станции атрибутов примитивов

3.4.2.1. ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ

СТОТ, СТАК, СГОТ Уровень 1а.

SET POLYLINE REPRESENTATION.

Параметры:

Вх идентификатор станции

И;

Вх индекс ломаной

(1...n)

Ц;

Вх тип линии

(-n ...-1, 1...n)

Ц;

Вх масштаб толщины линии

>=0

Д;

Вх индекс цвета ломаной

(0...n)

И.

Действие:

В таблице связок ломаной таблицы состояния станции заданный индекс ломаной связывается с заданными параметрами.

Параметр тип линии имеет следующие значения:

<0 - зависит от реализации;

1 - сплошная линия;

2 - штриховая линия;

3 - пунктирная линия;

4 - штрихпунктирная линия.

>=5 - резервируется для будущей стандартизации.

Параметр масштаб толщины линии устанавливает коэффициент, на который умножается номинальная толщина линии. Результат привязывается станцией к ближайшей доступной толщине линии.

Параметр индекс цвета ломаной является указателем в таблице цвета станции.

Таблица связок ломаной в таблице состояния станции имеет предопределенные поля, взятые из таблицы описания станции. Их число (в соответствии с табл.3) определено для каждой станции категорий ВЫВОД или ВВОД-ВЫВОД.

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

При отображении ломаной индекс ломаной определяет связку в таблице связок ломаной. Если индекс ломаной ссылается на отсутствующую связку, то используется индекс 1. Использование имеющихся в связке характеристик зависит от значений соответствующих ФВА, описанных в п.2.3.

Описание функции в соответствии с пп.2.4.3; 2.5.3.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов;

60

Неверно задан индекс ломаной;

63

Тип линии равен нулю;

64

Указанный тип линий не поддерживается на данной станции;

65

Масштаб толщины линии меньше нуля;

93

Неверно задан индекс цвета.

3.4.2.2. ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА

СТОТ, СТАК, СГОТ Уровень 1а.

SET POLYMARKER REPRESENTATION.

Параметры:

Вх идентификатор станции

И;

Вх индекс полимаркера

(1...n)

Ц;

Вх тип маркера

(-n...-1, 1...n)

Ц;

Вх масштаб маркера

>=0

Д;

Вх индекс цвета полимаркера

(0...n)

Ц.

Действие:

В таблице связок полимаркера таблицы состояния станции заданный индекс полимаркера связывается с заданными параметрами.

Параметр тип маркера имеет следующие значения:

<0 - зависит от реализации;

1 - символ "точка" (.);

2 - символ "плюс" (+);

3 - символ "звездочка" (*);

4 - символ "кружок" (О);

5 - символ "крестик" (х);

>=6 - резервируется для будущей стандартизации.

Параметр масштаб маркера устанавливает коэффициент, на который умножается номинальный размер маркера. Результат привязывается станцией к ближайшему доступному значению.

Параметр индекс цвета полимаркера является указателем в таблице цвета станции.

Таблица связок полимаркера в таблице состояния станции имеет предопределенные поля, взятые из таблицы описания станции. Их число (в соответствии с табл.3) определено для каждой станции категорий ВЫВОД или ВВОД-ВЫВОД.

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

При отображении полимаркера индекс полимаркера определяет связку в таблице связок полимаркера. Если индекс полимаркеpа ссылается на отсутствующую связку, то используется индекс 1. Использование имеющихся в связке характеристик зависит от значений соответствующих ФВА, описанных в п.2.3.

Описание функции в соответствии с пп.2.4.4; 2.5.3.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов;

66

Неверно задан индекс полимаркера;

69

Тип маркера равен нулю;

70

Заданный тип маркера не поддерживается на данной станции;

71

Размер маркера меньше нуля;

93

Неверно задан индекс цвета.

3.4.2.3. ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА

СТОТ, СТАК, СГОТ Уровень 1а.

SET TEXT REPRESENTATION.

Параметры:

Вх идентификатор станции

И;

Вх индекс текста

(1...n)

Ц;

Вх шрифт и точность текста

(-n...-1, 1...n;

СТРОКИ, ДО ЛИТЕРЫ, ДО ШТРИХА)

Ц; П;

Вх масштаб расширения литеры

>0

Д;

Вх межлитерный просвет

Д;

Вх индекс цвета текста

(0...n)

Ц.

Действие:

В таблице связок текста таблицы состояния станции заданный индекс текста связывается с заданными параметрами.

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

Значение точности представления текста определяет, с какой точностью воспроизводятся другие характеристики текста. Значения точности представления текста в порядке увеличения точности: ДО СТРОКИ; ДО ЛИТЕРЫ; ДО ШТРИХА приведены в п.2.15.3.

Параметр масштаб расширения литеры устанавливает отклонение отношения ширины литеры к ее высоте от величины отношения, указанной разработчиком шрифта.

Параметр межлитерный просвет устанавливает дополнительное пространство между двумя смежными литерами. Промежуток между литерами задается как множитель к номинальной высоте литер данного шрифта.

Параметр индекс цвета задает указатель в таблице цвета станции.

Таблица связок текста в таблице состояния станции имеет предопределенные поля, взятые из таблицы описания станции. Их число (в соответствии с табл.3) определено для каждой станции категорий ВЫВОД или ВВОД-ВЫВОД.

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

При отображении текста индекс текста ссылается на одно из полей в таблице связок текста. Если при отображении текста индекс текста ссылается на отсутствующее в таблице связок поле, то используется значение индекса текста 1. Использование характеристик текста, имеющихся в связке, зависит от установки соответствующих ФВА, описанных в п.2.3.

Описание функции в соответствии с пп.2.4.5; 2.5.3.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов;

72

Неверно задан индекс текста;

75

Шрифт равен нулю;

76

Заданный шрифт текста не поддерживается с требуемой точностью представления текста на данной станции;

77

Масштаб расширения литер меньше или равен нулю;

93

Неверно задан индекс цвета.

3.4.2.4. ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ

СТОТ, СТАК, СГОТ Уровень 1а.

SET FILL AREA REPRESENTATION.

Параметры:

Bx идентификатор станции

И;

Вх индекс полигональной области

(1...n)

Ц;

Bx вид заполнения полигональной области

(ПУСТО, ЗАЛИВКА, ПО ШАБЛОНУ, ШТРИХОВКА)

П;

Вх индекс заполнителя полигональной области

(-n...-1, 1...n)

Ц;

Вх индекс цвета полигональной области

(0...n)

Ц.

Действие:

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

Параметр вид заполнения полигональной области задает значения: ПУСТО, ЗАЛИВКА, ПО ШАБЛОНУ и ШТРИХОВКА, которые описаны в п.2.4.4.

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

Параметр индекс цвета полигональной области задает указатель в таблице цвета станции.

Таблица связок полигональной области в таблице состояния станции имеет предопределенные поля, взятые из таблицы описания станции. Их число (в соответствии с табл.3) определено для каждой станции категорий ВЫВОД или ВВОД-ВЫВОД.

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

При отображении полигональной области текущий индекс полигональной области ссылается на одно из полей таблицы связок полигональной области. Если при отображении полигональной области индекс полигональной области ссылается на поле, отсутствующее в таблице связок полигональной области, то используется значение индекса полигональной области 1. Использование характеристик, имеющихся в поле, зависит от установки соответствующих ФВА, описанных в п.2.3.

Описание функции в соответствии с пп.2.4.6; 2.5.3.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов;

80

Неверно задан индекс полигональной области;

83

Заданный вид заполнения полигональной области не поддерживается на данной станции;

85

Неверно задан индекс шаблона;

86

Заданный вид штриховки не поддерживается на данной станции;

93

Неверно задан индекс цвета.

3.4.2.5. ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА

СТОТ, СТАК, СГОТ Уровень 1а.

SET PATTERN REPRESENTATION.

Параметры:

Вх идентификатор станции

И;

Вх индекс шаблона

(1...n)

Ц;

Вх размерности массива шаблона

(1...n)

2Ц;

Вх массив шаблона

(0...n)

nnЦ.

Действие:

В таблице шаблонов таблицы состояния станции заданный индекс шаблона связывается с заданными параметрами.

Шаблон представляет собой прямоугольную сетку, которая имеет Nx ячеек по горизонтали и Ny ячеек по вертикали. Цвет каждой ячейки задается значением соответствующего элемента параметра массив шаблона. Значения, заданные элементами массива шаблона, используются в качестве индекса цвета (указателя) в таблице цвета станции (в соответствии с п.2.4.4).

Если станция поддерживает вид заполнения ПО ШАБЛОНУ, то таблица шаблонов в таблице состояния станции имеет предопределенные поля, взятые из таблицы описания станции. Их число (в соответствии с табл.3) определено для каждой станции категорий ВЫВОД или ВВОД-ВЫВОД.

Любое поле таблицы шаблонов (включая и предопределенные поля) может быть переопределено с помощью этой функции.

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

Если при отображении полигональной области индекс заполнителя ссылается на поле, отсутствующее в таблице шаблонов, то используется значение 1. Если значения 1 индекса шаблона в таблице шаблонов нет (т.е. вид заполнения ПО ШАБЛОНУ не поддерживается этой станцией), то результат зависит от станции.

Описание функции в соответствии с пп.2.4.6; 2.5.3.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов;

85

Неверно задан индекс шаблона;

90

Заполнение по шаблону не поддерживается на данной станции;

91

Неверно заданы размерности массива индексов цвета;

93

Неверно задан индекс цвета.

3.4.2.6. ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА

СТОТ, СТАК, СГОТ Уровень mа.

SET COLOUR REPRESENTATION.

Параметры:

Вх идентификатор станции

И;

Вх индекс цвета

(0...n)

Ц;

Вх интенсивность цвета (красного, зеленого, синего)

(0..1.)

3Д.

Действие:

В таблице цвета таблицы состояния станции заданный индекс цвета связывается с заданным цветом. Цвет привязывается станцией к ближайшему доступному цвету.

Таблица цвета в таблице состояния станции имеет предопределенные поля, взятые из таблицы описания станции. Для каждой станции категории ВЫВОДА или ВВОДА-ВЫВОДА должны быть предопределены, по крайней мере, поля, соответствующие индексам 0 и 1.

Любое поле таблицы цвета (включая и предопределенные поля) может быть переопределено с помощью этой функции.

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

Описание функции в соответствии с пп.2.4.2; 2.4.9; 2.5.3.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов;

93

Неверно задан индекс цвета;

96

Интенсивность цвета лежит вне диапазона от нуля до единицы.


3.5. Функции преобразований

3.5.1. Функции задания преобразования нормирования

3.5.1.1. ЗАДАТЬ ОКНО

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

SET WINDOW.

Параметры:

Вх номер преобразования

(1...n)

Ц;

Вх границы окна Xmin<Xmax, Ymin<Ymax

4Д.

Действие:

В поле "окно" таблицы состояния ЯГС, соответствующее заданному номеру преобразования нормирования, заносятся значения параметра границы окна.

Описание функции в соответствии с пп.2.6.1; 2.8.4.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

50

Неверно задан номер преобразования;

51

Неверно задан прямоугольник.

3.5.1.2. ЗАДАТЬ ПОЛЕ ВЫВОДА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

SET VIEWPORT.

Параметры:

Вх номер преобразования

(1...n)

Ц;

Вх границы поля вывода

Xmin<Xmax, Ymin<Ymax

НК

4Д.

Действие:

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

Описание функции в соответствии с пп.2.6.1; 2.8.4.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

50

Неверно задан номер преобразования;

51

Неверно задан прямоугольник;

52

Поле вывода находится вне единичного квадрата нормированных координат.

3.5.1.3. ЗАДАТЬ ПРИОРИТЕТ ПОЛЯ ВЫВОДА ПРИ ВВОДЕ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0b.

SET VIEWPORT INPUT PRIORITY.

Параметры:

Bx номер преобразования

(0...n)

Ц;

Вх номер сравниваемого преобразования

(0...n)

Ц;

Bx относительный приоритет (ВЫШЕ, НИЖЕ)

П.

Действие:

Приоритет поля вывода при вводе преобразования нормирования с номером "номер преобразования" заносится на единицу большим или на единицу меньшим приоритета поля вывода преобразования с номером "номер сравниваемого преобразования" в зависимости от значения, заданного параметром, относительный приоритет.

Описание функции в соответствии с пп.2.6.4; 2.8.4.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

50

Неверно задан номер преобразования.

3.5.1.4. ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

SELECT NORMALIZATION TRANSFORMATION.

Параметры:

Вх номер преобразования

(0...n)

Ц.

Действие:

Параметр заносится в поле "текущий номер преобразования нормирования" таблицы состояния ЯГС. В поле "прямоугольник отсечения" устанавливаются границы поля вывода указанного номера преобразования.

Описание функции в соответствии с п.2.6.1.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

50

Неверно задан номер преобразования.

3.5.1.5. ЗАДАТЬ ИНДИКАТОР ОТСЕЧЕНИЯ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

SET CLIPPING INDICATOR.

Параметры:

Вх индикатор отсечения (ОТСЕКАТЬ, НЕ ОТСЕКАТЬ)

П.

Действие:

В поле "индикатор отсечения" таблицы состояния ЯГС заносится значение, заданное параметром.

Описание функции в соответствии с пп.2.6.2; 2.7.4; 2.7.6; 2.8.4.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

3.5.2. Функции задания преобразования станции

3.5.2.1. ЗАДАТЬ ОКНО СТАНЦИИ

СТОТ, СТАК, СГОТ Уровень mа.

SET WORKSTATION WINDOW.

Параметры:

Вх идентификатор станции

И;

Вх границы окна станции

Xmin<Xmax, Ymin<Ymax

4Д.

Действие:

В поле "запрошенное окно станций" таблицы состояния станции заносятся значения, заданные параметром границы окна станции.

Если поле "способ динамической модификации для преобразования станции" в таблице описания станции имеет значение НОИ или если поле "заполненность носителя изображения" в таблице состояния станции имеет значение ПУСТ, то в поле "текущее окно станции" заносится значение, заданное параметром, и в поле "состояние обновления преобразования станции" заносится значение НЕ ЗАДЕРЖАНО. В противном случае в поле "состояние обновления преобразования станции" в таблице состояния станции заносится значение ЗАДЕРЖАНО, а поле "текущее окно станции" не изменяется.

Описание функции в соответствии с п.2.6.3.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

36

Указанная станция является общей памятью сегментов;

51

Неверно задан прямоугольник;

53

Окно станции находится вне единичного квадрата нормированных координат.

3.5.2.2. ЗАДАТЬ ПОЛЕ ВЫВОДА СТАНЦИИ

СТОТ, СГОТ, СТАК Уровень mа.

SET WORKSTATION VIEWPORT.

Параметры:

Вх идентификатор станции

И;

Вх границы поля вывода станции

Xmin<Xmax, Ymin<Ymax

КУ

4Д.

Действие:

В поле "запрошенное поле вывода станции" в таблице состояния станции заносится значение, заданное параметром "границы поля вывода станции".

Если поле "способ динамической модификации для преобразования станции" в таблице описания станции имеет значение НОИ или если поле "заполненность носителя изображения" в таблице состояния станции имеет значение ПУСТ, то в поле "текущее поле вывода станции" заносится значение, заданное параметром, и в поле "состояние обновления преобразования станции" задается значение НЕ ЗАДЕРЖАНО. В противном случае в поле "состояние обновления преобразования станцией" в таблице состояния станции заносится значение ЗАДЕРЖАНО, а поле "текущее поле вывода станции" не изменяется.

Описание функции в соответствии с п.2.6.3.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

36

Указанная станция является общей памятью сегментов;

51

Неверно задан прямоугольник;

54

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


3.6. Функции сегментации

3.6.1. Функции действий над сегментами

3.6.1.1. СОЗДАТЬ СЕГМЕНТ

СТАК Уровень 1а.

СREAT SEGMENT.

Параметры:

Вх имя сегмента

И.

Действие:

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

Описание функции в соответствии с п.2.7.1.

Ошибки:

3

ЯГС не находится в состоянии СТАК;

120

Неверно задано имя сегмента;

121

Указанное имя сегмента уже используется.

3.6.1.2. ЗАКРЫТЬ СЕГМЕНТ

СГОТ Уровень 1а.

CLOSE SEGMENT.

Параметры:

Нет.

Действие:

ЯГС переводится в функциональное состояние СТАК - "по крайней мере одна станция активна". Выходные примитивы больше не добавляются к сегменту. Поле "имя открытого сегмента" таблицы состояния ЯГС становится недоступным.

Описание функции в соответствии с п.2.7.1.

Ошибки:

4

ЯГС не находится в состоянии СГОТ.

3.6.1.3. ПЕРЕИМЕНОВАТЬ СЕГМЕНТ

СТОТ, СТАК, СГОТ Уровень 1а.

RENAME SEGMENT.

Параметры:

Вх старое имя сегмента

И;

Вх новое имя сегмента

И.

Действие:

Прежнее имя сегмента в поле "список запомненных на станции сегментов" таблицы состояния станции и в поле "набор имен существующих сегментов" таблицы состояния ЯГС заменяется новым именем сегмента. Если сегмент открыт, то в поле "имя открытого сегмента" таблицы состояния ЯГС заносится новое имя сегмента.

Примечание. Прежнее имя сегмента может быть вновь использовано прикладной программой.

Описание функции в соответствии с п.2.7.1.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

120

Неверно задано имя сегмента;

121

Указанное имя сегмента уже используется;

122

Указанный сегмент не существует.

3.6.1.4. УНИЧТОЖИТЬ СЕГМЕНТ

СТОТ, СТАК, СГОТ Уровень 1а.

DELETE SEGMENT.

Параметры:

Вх имя сегмента

И.

Действие:

Удаляются сегмент и его имя в поле "список запомненных на станции сегментов" таблиц состояния станций, связанных с сегментом. Имя сегмента удаляется из поля "набор имен существующих сегментов" в таблице состояния ЯГС. Таблица состояния сегмента удаляется.

Примечание. Имя сегмента может вновь использоваться прикладной программой.

Описание функции в соответствии с пп.2.5.3; 2.7.1.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

120

Неверно задано имя сегмента;

122

Указанный сегмент не существует;

125

Указанный сегмент открыт.

3.6.1.5. УДАЛИТЬ СЕГМЕНТ СО СТАНЦИИ

СТОТ, СТАК, СГОТ Уровень 1а.

DELETE SEGMENT FROM WORKSTATION.

Параметры:

Bx идентификатор станции

И;

Вх имя сегмента

И.

Действие:

Сегмент удаляется с заданной станции. Имя сегмента удаляется из поля "список запомненных на станции сегментов" таблицы состояния станции. Идентификатор станции удаляется из поля "набор связанных с сегментом станций" таблицы состояния сегмента. Если поле "набор связанных с сегментом станций" становится пустым, то сегмент удаляется, т.е. выполняется функция УНИЧТОЖИТЬ СЕГМЕНТ.

Описание функции в соответствии с пп.2.5.3; 2.7.1.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

120

Неверно задано имя сегмента;

123

Указанный сегмент не существует на указанной станции;

125

Указанный сегмент открыт.

3.6.1.6. СВЯЗАТЬ СЕГМЕНТ СО СТАНЦИЕЙ

СТОТ, СТАК Уровень 2а.

ASSOSIATE SEGMENT WITH WORKSTATION

Параметры:

Вх идентификатор станции

И;

Вх имя сегмента

И.

Действие:

Заданный сегмент посылается на указанную станцию так же, как если бы станция была активна во время его создания. Прямоугольники отсечения копируются без изменений. Имя сегмента добавляется в поле "список запомненных на станции сегментов" таблицы состояния станции. Идентификатор станции включается в "набор связанных с сегментом станций" таблицы состояния сегмента.

Примечания:

1. Если сегмента нет в общей памяти сегментов, формируется сообщение об ошибке.

2. Если сегмент уже связан со станцией, то данная функция не выполняется.

Описание функции в соответствии с пп.2.5.3; 2.7.1.

Ошибки:

6

ЯГС не находится в состоянии СТОТ или СТАК;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

27

Общая память сегментов не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

120

Неверно задано имя сегмента;

124

Указанный сегмент не существует в общей памяти сегментов.

3.6.1.7. ВЫВЕСТИ КОПИЮ СЕГМЕНТ НА СТАНЦИЮ

СТОТ, СТАК Уровень 2а.

COPY SEGMENT TO WORKSTATION.

Параметры:

Вх идентификатор станции

И;

Вх имя сегмента

И.

Действие:

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

Примечания:

1. Если указанный сегмент отсутствует в общей памяти сегментов, выдается сообщение об ошибке. Указанная станция не должна быть общей памятью сегментов.

2. У всех копируемых примитивов сохраняются значения атрибутов (таких, как индекс ломаной, направление текста, идентификатор указания), которые были назначены им во время их создания (в соответствии с п.2.7.1).

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

Описание функции в соответствии с пп.2.5.3; 2.7.1; 2.7.6.

Ошибки:

6

ЯГС не находится в состоянии СТОТ или СТАК;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

27

Общая память сегментов не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов;

120

Неверно задано имя сегмента;

124

Указанный сегмент не существует в общей памяти сегментов.

3.6.1.8. ВСТАВИТЬ СЕГМЕНТ

СТАК, СГОТ Уровень 2а.

INSERT SEGMENT.

Параметры:

Вх имя сегмента

И;

Вх матрица преобразования

23Д.

Действие:

Преобразованные примитивы из заданного сегмента копируются или в открытый сегмент (в состоянии СГОТ), или в поток примитивов вне сегмента (в состоянии СТАК). В любом случае преобразованные примитивы посылаются на все активные станции. Координаты преобразуются сначала преобразованием сегмента, вставляемого сегмента, а затем умножением на заданную в параметре матрицу:

,


где и - исходные координаты в НК;

и - преобразованные координаты в НК;

, , , , , - значения, заданные параметром матрица преобразования.

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

Это преобразование называется преобразованием вставки и (концептуально) определено в пространстве НК.

Все прямоугольники отсечения во вставляемом сегменте игнорируются. Каждому примитиву назначается новый прямоугольник отсечения из таблицы состояния ЯГС, если индикатор отсечения имеет значение ОТСЕКАТЬ, или единичный прямоугольник [0., 1.][0., 1.], если индикатор отсечения имеет значение НЕ ОТСЕКАТЬ. Все примитивы, обрабатываемые в процессе одного вызова функции ВСТАВИТЬ СЕГМЕНТ, получают одинаковый прямоугольник отсечения.

Прим

ечания:

1. Если заданного сегмента нет в общей памяти сегментов, формируется сообщение об ошибке.

2. У всех вставляемых примитивов сохраняются значения атрибутов (таких, как индекс ломаной, направление текста, идентификатор указания), которые были назначены им во время их создания в соответствии с п.2.7.1.

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

Описание функции в соответствии с пп.2.5.3; 2.7.6.

Ошибки:

5

ЯГС не находится в состоянии СТАК или СГОТ;

27

Общая память сегментов не открыта;

120

Неверно задано имя сегмента;

124

Указанный сегмент не существует в общей памяти сегментов;

125

Указанный сегмент открыт.

3.6.2. Функции задания атрибутов сегментов

3.6.2.1. ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА

СТОТ, СТАК, СГОТ Уровень 1а:

SET SEGMENT TRANSFORMATION.

Параметры:

Вх имя сегмента

И;

Вх матрица преобразования

23Д.

Действие:

В поле "матрица преобразования сегмента" таблицы состояния сегмента заносятся значения, заданные параметром матрица преобразования. При отображении сегмента координаты примитивов сегмента будут преобразовываться по следующей формуле:

,


где и - исходные координаты в НК;

и - преобразованные координаты в НК;

, , , , , - значения элементов матрицы преобразования.

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

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

Преобразование сегмента концептуально определено в пространстве HК.

Преобразование сегмента запоминается в таблице состояния сегмента и не оказывает действия на содержимое сегмента.

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

Описание функции в соответствии с пп.2.5.3; 2.7.3.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

120

Неверно задано имя сегмента;

122

Указанный сегмент не существует.

3.6.2.2. ЗАДАТЬ ВИДИМОСТЬ

СТОТ, СТАК, СГОТ Уровень 1а:

SET VISIBILITY.

Параметры:

Вх имя сегмента

И;

Вх видимость (ВИДИМЫЙ, НЕВИДИМЫЙ)

П.

Действие:

В поле "видимость" таблицы состояния заданного сегмента заносится значение, заданное параметром видимость.

Описание функции в соответствии с пп.2.5.3; 2.7.2; 4.8.4.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

120

Неверно задано имя сегмента;

122

Указанный сегмент не существует.

3.6.2.3. ЗАДАТЬ ВЫДЕЛЕНИЕ

СТОТ, СТАК, СГОТ Уровень 1а.

SET HIGHLIGHTING.

Параметры:

Вх имя сегмента

И;

Вх выделение (НОРМАЛЬНЫЙ, ВЫДЕЛЕННЫЙ)

П.

Действие:

В поле "выделение" таблицы состояния заданного сегмента заносится значение, заданное параметром выделение. Если сегмент помечен как ВЫДЕЛЕННЫЙ и ВИДИМЫЙ, то его примитивы выделяются зависимым от реализации способом.

Описание функции в соответствии с пп.2.5.3; 2.7.2.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

120

Неверно задано имя сегмента;

122

Указанный сегмент не существует.

3.6.2.4. ЗАДАТЬ ПРИОРИТЕТ СЕГМЕНТА

СТОТ, СТАК, СГОТ Уровень 1а.

SET SEGMENT PRIORITY.

Параметры:

Вх имя сегмента

И;

Вх приоритет сегмента

[0., 1.]

Д.

Действие:

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

Примечание. Приоритет сегментов используется только для тех станций, у которых в таблице описания станции в поле "число приоритетов сегментов" установлено значение больше 1 или 0 (значение 0 указывает на бесконечное число приоритетов).

Если значение поля "число приоритетов сегментов" больше 1, то диапазон [0., 1.] значений параметра приоритет сегмента привязывается к диапазону от 1 до значения поля "число приоритетов сегментов" для каждой станции перед использованием драйвером физического устройства. Если значение поля "число приоритетов сегментов" равно 0, то при реализации различимы все значения приоритетов сегментов.

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

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

Описание функции в соответствии с пп.2.5.3; 2.7.2; 2.8.4.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

120

Неверно задано имя сегмента;

122

Указанный сегмент не существует;

126

Приоритет сегмента вне диапазона от нуля до единицы.

3.6.2.5. ЗАДАТЬ ЧУВСТВИТЕЛЬНОСТЬ К УКАЗАНИЮ

СТОТ, СТАК, СГОТ Уровень 1b.

SET DETECTABILITY.

Параметры:

Вх имя сегмента

И;

Вх чувствительность к указанию

(НЕУКАЗЫВАЕМЫИ, УКАЗЫВАЕМЫЙ)

П.

Действие:

В поле "чувствительность к указанию" таблицы состояния сегмента заносится значение, заданное параметром чувствительность к указанию. Если сегмент помечен как УКАЗЫВАЕМЫЙ и ВИДИМЫЙ, то его примитивы могут быть указаны. Примитивы из УКАЗЫВАЕМОГО, но НЕВИДИМОГО сегмента не могут быть указаны.

Описание функции в соответствии с пп.2.7.2; 2.8.4.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

120

Неверно задано имя сегмента;

122

Указанный сегмент не существует.

3.7. Функции ввода

3.7.1. Функции инициализации устройства ввода

3.7.1.1. ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ

СТОТ, СТАК, СГОТ Уровень mb.

INITIALISE LOCATOR.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода позиции

(1...n)

Ц;

Вх начальный номер преобразования нормирования

(0...n)

Ц;

Вх начальная позиция

МК

Т;

Вх тип подсказки и эха

(-n...-1, 1...n)

Ц;

Вх область эха Xmin<Xmax, Ymin<Ymax

КУ

4Д;

Вх запись данных устройства ввода позиции

0.

Действие:

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

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

Параметр "тип подсказки и эха" задает следующие значения подсказки и (или) эха:

менее 0 - подсказка и эхо зависят от устройства ввода позиции;

1 - обозначить текущую позицию, используя определенную реализацией технику;

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

3 - обозначить текущую позицию следящим маркером (курсором);

4 - обозначить текущую позицию "резиновой нитью", которая изображается в виде линии, соединяющей начальную позицию, заданную этой функцией, и текущую позицию;

5 - обозначить текущую позицию с помощью "резинового прямоугольника". Диагональ прямоугольника является линией, соединяющей начальную позицию, заданную этой функцией, и текущую позицию;

6 - обозначить текущую позицию, отображая числовое представление ее координат внутри области эха;

равные или большие 7 - резервируются для будущей стандартизации.

Описание функции в соответствии с пп.2.8.2, 2.8.6.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

51

Неверно задан прямоугольник;

140

Указанное устройство ввода отсутствует на станции;

141

Устройство ввода не находится в режиме ЗАПРОС;

144

Запрошенный тип подсказки и эха не поддерживается данной станцией;

145

Область эха находится за пределами пространства изображения;

146

Неверно задано содержимое записи данных;

152

Неверно задано начальное значение.

3.7.1.2. ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

СТОТ, СТАК, СГОТ Уровень mb.

INITIALISE STROKE.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода последовательности позиций

(1...n)

Ц;

Вх начальный номер преобразования нормирования

(0...n)

Ц;

Вх число позиций в начальной последовательности

(0...n)

Ц;

Вх начальная последовательность позиций

МК

nТ;

Вх тип подсказки и эха

(-n...-1, 1...n)

Ц;

Вх область эха Xmin<Xmax, Ymin<Ymax

КУ

4Д;

Вх запись данных устройства ввода последовательности позиций

0.

Действие:

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

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

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

Параметр тип подсказки и эха может задавать следующие значения подсказки и (или) эха:

менее 0 - подсказка и эхо зависят от устройства ввода последовательности позиции;

1 - отобразить текущую последовательность позиций, используя определенную реализацией технику;

2 - отобразить числовое представление текущей позиции внутри области эха;

3 - отобразить маркер в каждой точке текущей последовательности позиций;

4 - отобразить линию, соединяющую следующие друг за другом точки текущей последовательности позиций;

равные или большие 5 - резервируются для будущей стандартизации.

Если количество вводимых позиций превышает размер буфера входных данных, то дополнительные теряются. Оператору сообщается об этом.

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

Примечание. Запись данных устройства ввода последовательности позиций может содержать номер начальной позиции, подвергаемой редактированию в диапазоне от 1 до значения параметра число позиций в начальной последовательности позиций плюс 1.

Описание функции в соответствии с пп.2.8.2; 2.8.6.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

51

Неверно задан прямоугольник;

140

Указанное устройство ввода отсутствует на станции;

141

Устройство ввода не находится в режиме ЗАПРОС;

144

Запрошенный тип подсказки и эха не поддерживается на данной станции;

145

Область эха находится за пределами пространства изображения;

146

Неверно задано содержимое записи данных;

152

Неверно задано начальное значение;

153

Число точек в начальной последовательности позиций больше размера буфера.

3.7.1.3. ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ЧИСЛА

СТОТ, СТАК, СГОТ Уровень mb.

INITIALISE VALUATOR.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода числа

(1...n)

Ц;

Вх начальное значение числа

Д;

Вх тип подсказки и эха

(-n...-1, 1...n)

Ц;

Вх область эха Xmin<Xmax, Ymin<Ymax

КУ

4Д;

Вх запись данных устройства ввода числа

О.

Действие:

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

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

Параметр тип подсказки и эха задает следующие значения подсказки и (или) эха:

менее 0 - подсказка и эхо зависят от устройства ввода числа;

1 - обозначить текущее значение устройства ввода числа, используя определенную реализацией технику;

2 - обозначить текущее значение устройства ввода числа, отображая его графическое представление в области эха (например круглую или линейную шкалу с указателем);

3 - обозначить текущее значение устройства ввода числа, отображая его числовое представление внутри области эха;

равные или большие 4 - резервируются для будущей стандартизации.

Описание функции в соответствии с пп.2.8.2; 2.8.6.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

51

Неверно задан прямоугольник;

140

Указанное устройство ввода отсутствует на станции;

141

Устройство ввода не находится в режиме ЗАПРОС;

144

Запрошенный тип подсказки и эха не поддерживается на данной станции;

145

Область эха находится за пределами пространства изображения;

146

Неверно задано содержимое записи данных;

152

Неверно задано начальное значение.

3.7.1.4. ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВЫБОРА

СТОТ, СТАК, СГОТ Уровень mb.

INITIALISE CHOICE.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства выбора

(1...n)

Ц;

Вх начальное состояние (ЕСТЬ, НЕТ ВЫБОРА)

П;

Вх начальный номер альтернативы

(1...n)

Ц;

Вх тип подсказки и эха

(-n...-1, 1...n)

Ц;

Вх область эха Xmin<Xmax, Ymin<Ymax

КУ

4Д;

Вх запись данных устройства выбора

О.

Действие:

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

Параметр тип подсказки и эха задает следующие значения подсказки и (или) эха:

менее 0 - подсказка и эхо зависят от устройства выбора;

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

2 - использовать встроенные возможности подсказки физического устройства ввода. Первое поле в записи данных устройства выбора содержит число альтернатив. Это значение сравнивается с заданным при реализации в таблице описания станции максимальным числом альтернатив. Если максимальное число превышено, то формируется сообщение об ошибке. Второе поле в записи данных устройства выбора содержит массив подсказки. Если -й элемент массива подсказки, заданного параметром запись данных устройства выбора, имеет значение ВЫКЛЮЧЕНО, то подсказка -й альтернативы заданного устройства выбора выключена. Значение ВКЛЮЧЕНО соответственно указывает, что подсказка данной альтернативы включена;

3 - позволяет оператору указать номер альтернативы путем выбора строки из набора строк текста, представленных для выбора. Строки текста содержатся в записи данных устройства альтернативы и отображаются внутри области эха. Значением логических входных данных является номер выбранной строки. Первое поле в записи данных устройства выбора содержит число строк текста. Это число сравнивается с заданным при реализации содержащимся в таблице описания станции максимальным числом альтернатив. Если максимальное число превышено, то формируется сообщение об ошибке. Второе поле в записи данных устройства выбора содержит массив строк текста, предоставленных для выбора;

4 - позволяет оператору указать номер альтернативы путем набора с помощью алфавитно-цифровой клавиатуры одной строки из набора строк текста, предоставленных для выбора. Строки текста содержатся в записи данных устройства выбора и могут быть отображены внутри области эха в качестве подсказки. Строка текста, набранная оператором с помощью алфавитно-цифровой клавиатуры, отображается в области эха в качестве эха. Значением логических входных данных является номер набранной оператором строки. Первое поле в записи данных устройства выбора содержит число предоставленных для выбора строк. Это число сравнивается с заданным при реализации, содержащимся в таблице описания станции максимальным числом альтернатив для этого устройства. Если максимальное число превышено, то формируется сообщение об ошибке. Второе поле в записи данных устройства выбора содержит массив строк текста, предоставленных для выбора;

5 - запись данных устройства альтернативы определяет имя сегмента. Сегмент изображается внутри области эха путем привязки единичного квадрата [0., 1.][0., 1.] пространства НК к области эха. Идентификаторы выбора элементов в сегменте привязываются к номерам альтернатив, зависящим от устройства выбора способом. Указание элементов сегмента приводит к выбору соответствующей альтернативы. Первое поле в записи данных устройства выбора содержит имя сегмента;

равные или большие 6 - резервируются для будущей стандартизации.

Описание функции в соответствии с пп.2.8.2; 2.8.6.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

51

Неверно задан прямоугольник;

140

Указанное устройство ввода отсутствует на станции;

141

Устройство ввода не находится в режиме ЗАПРОС;

144

Запрошенный тип подсказки и эха не поддерживается на данной станции;

145

Область эха находится за пределами пространства изображения;

146

Неверно задано содержимое записи данных;

152

Неверно задано начальное значение.

3.7.1.5. ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО УКАЗАНИЯ

СТОТ, СТАК, СГОТ Уровень 1b.

INITIALISE PICK.

Параметры:

Вх идентификатор станции

И;

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

(1...n)

Ц;

Вх начальное состояние (ЕСТЬ, НЕТ УКАЗАНИЯ)

П;

Вх начальное имя сегмента

И;

Вх начальный идентификатор указания

И;

Вх тип подсказки и эха

(-n...-1, 1...n)

Ц;

Вх область эха Xmin<Xmax, Ymin<Ymax

КУ

4Д;

Вх запись данных устройства указания

О.

Действие:

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

Параметр тип подсказки и эха задает следующие значения подсказки и (или) эха:

менее 0 - подсказка и эхо зависят от реализации логического устройства указания;

1 - используется зависящая от реализации техника подсказки и эха, которая выделяет указанный примитив на короткий промежуток времени;

2 - отображаются эхом указанный примитив вместе со смежной группой примитивов с тем же идентификатором указания или вместе со всеми примитивами сегмента с тем же идентификатором указания;

3 - отображается эхом весь сегмент, содержащий указанный примитив;

равные или большие 4 - резервируются для будущей стандартизации.

Описание функции в соответствии с пп.2.8.2; 2.8.6.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

37

Указанная станция не является станцией ввода-вывода;

51

Неверно задан прямоугольник;

140

Указанное устройство ввода отсутствует на станции;

141

Устройство ввода не находится в режиме ЗАПРОС;

144

Запрошенный тип подсказки и эха не поддерживается на данной станции;

145

Область эха находится за пределами пространства изображения;

146

Неверно задано содержимое записи данных;

152

Неверно задано начальное значение.

3.7.1.6. ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА СТРОКИ

СТОТ, СТАК, СГОТ Уровень mb.

INITIALISE STRING.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода строки

(1...n)

Ц;

Вх начальное значение строки

С;

Вх тип подсказки и эха

(-n...-1, 1...n)

Ц;

Вх область эха Xmin<Xmax, Ymin<Ymax

КУ

4Д;

Вх запись данных устройства ввода строки

О.

Действие:

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

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

Второе поле записи данных устройства ввода строки должно содержать начальную позицию курсора - целое в диапазоне от 1 до длины начального значения строки плюс 1.

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

Параметр тип подсказки и эха задает следующие значения подсказки и (или) эха:

менее 0 - подсказка и эхо зависят от реализации устройства ввода строки;

1 - отобразить текущее значение устройства ввода строки внутри области эха;

равные или большие 2 - резервируются для будущей стандартизации.

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

Описание функции в соответствии с пп.2.8.2; 2.8.6.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

51

Неверно задан прямоугольник;

140

Указанное устройство ввода отсутствует на станции;

141

Устройство ввода не находится в режиме ЗАПРОС;

144

Запрошенный тип подсказки и эха не поддерживается на данной станции;

145

Область эха находится за пределами пространства изображения;

146

Неверно задано содержимое записи данных;

152

Неверно задано начальное значение;

154

Длина начальной строки больше, чем размер буфера.

3.7.2. Функции задания режима работы устройства ввода

3.7.2.1. ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОЗИЦИИ

СТОТ, СТАК, СГОТ Уровень mb.

SET LOCATOR MODE.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода позиции

(1...n)

Ц;

Вх режим работы

(ЗАПРОС, ОПРОС, СОБЫТИЕ)

П;

Вх выключатель эха

(ЭХО, БЕЗ ЭХА)

П;

Действие:

Заданное устройство ввода позиции переводится в указанный режим работы, и состояние эха устанавливается в положение ЭХО или БЕЗ ЭХА. В зависимости от указанного режима работы начинается или заканчивается взаимодействие с данным устройством ввода. Состояние устройства ввода, определяемое параметрами режим работы и выключатель эха, заносится в таблицу состояния станции в поле, соответствующее заданному устройству ввода позиции.

Описание функции в соответствии с пп.2.8.1; 2.8.3.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

143

Режимы ОПРОС и СОБЫТИЕ не доступны на данном уровне ЯГС.

3.7.2.2. ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

СТОТ, СТАК, СГОТ Уровень mb.

SET STROKE MODE

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода последовательности позиций

(1...n)

Ц;

Вх режим работы

(ЗАПРОС, ОПРОС, СОБЫТИЕ)

П;

Вх выключатель эха

(ЭХО, БЕЗ ЭХА)

П.

Действие:

Заданное устройство ввода последовательности позиций переводится в указанный режим работы, и состояние эха устанавливается в положение ЭХО или БЕЗ ЭХА. В зависимости от указанного режима работы начинается или заканчивается взаимодействие с данным устройством ввода. Состояние устройства ввода, определяемое параметрами режим работы и выключатель эха, заносится в таблицу состояния станции в поле, соответствующее заданному устройству ввода последовательности позиций.

Описание функции в соответствии с пп.2.8.1; 2.8.3.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

143

Режимы ОПРОС и СОБЫТИЕ не доступны на данном уровне ЯГС.

3.7.2.3. ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ЧИСЛА

СТОТ, СТАК, СГОТ Уровень mb.

SET VALUATOR MODE.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода числа

(1...n)

Ц;

Вх режим работы

(ЗАПРОС, ОПРОС, СОБЫТИЕ)

П;

Вх выключатель эха

(ЭХО, БЕЗ ЭХА)

П.

Действие:

Заданное устройство ввода числа переводится в указанный режим работы, и состояние эха устанавливается в положение ЭХО или БЕЗ ЭХА. В зависимости от указанного режима работы начинается или заканчивается взаимодействие с данным устройством ввода. Состояние устройства ввода, определяемое параметрами режим работы и выключатель эха, заносится в таблицу состояния станции в поле, соответствующее заданному устройству ввода числа.

Описание функции в соответствии с пп.2.8.1; 2.8.3.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

143

Режимы ОПРОС и СОБЫТИЕ не доступны на данном уровне ЯГС.

3.7.2.4. ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВЫБОРА

СТОТ, СТАК, СГОТ Уровень mb.

SET CHOICE MODE.

Параметры:

Bx идентификатор станции

И;

Вх номер устройства выбора

(1...n)

Ц;

Bx режим работы

(ЗАПРОС, ОПРОС, СОБЫТИЕ)

П;

Вх выключатель эха

(ЭХО, БЕЗ ЭХА)

П.

Действие:

Заданное устройство выбора переводится в указанный режим работы, и состояние эха устанавливается в положение ЭХО или БЕЗ ЭХА. В зависимости от заданного режима работы начинается или заканчивается взаимодействие с данным устройством ввода. Состояние устройства ввода, определяемое параметрами режим работы и выключатель эха, заносится в таблицу состояния станции в поле, соответствующее заданному устройству выбора.

Описание функции в соответствии с пп.2.8.1; 2.8.3.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

143

Режимы ОПРОС и СОБЫТИЕ не доступны на данном уровне ЯГС.

3.7.2.5. ЗАДАТЬ РЕЖИМ УСТРОЙСТВА УКАЗАНИЯ

СТОТ, СТАК, СГОТ Уровень 1b.

SET PICK MODE.

Параметры:

Вх идентификатор станции

И;

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

(1...n)

Ц;

Вх режим работы

(ЗАПРОС, ОПРОС, СОБЫТИЕ)

П;

Вх выключатель эха

(ЭХО, БЕЗ ЭХА)

П.

Действие:

Заданное устройство указания переводится в указанный режим работы, и состояние эха устанавливается в положение ЭХО или БЕЗ ЭХА. В зависимости от заданного режима работы начинается или заканчивается взаимодействие с данным устройством. Состояние устройства ввода, определяемое параметрами режим работы и выключатель эха, заносится в таблицу состояния станции в поле, соответствующее данному устройству указания.

Описание функции в соответствии с пп.2.8.1; 2.8.3.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

37

Указанная станция не является станцией ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

143

Режимы ОПРОС и СОБЫТИЕ не доступны на данном уровне ЯГС.

3.7.2.6. ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА СТРОКИ

СТОТ, СТАК, СГОТ Уровень mb.

SET STRING MODE.

Параметры:

Вх идентификатор станции

И;

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

(1...n)

Ц;

Вх режим работы

(ЗАПРОС, ОПРОС, СОБЫТИЕ)

П;

Вх выключатель эха

(ЭХО, БЕЗ ЭХА)

П.

Действие:

Заданное устройство ввода строки переводится в указанный режим работы, и состояние эха устанавливается в положение ЭХО или БЕЗ ЭХА. В зависимости от заданного режима работы начинается или заканчивается взаимодействие с данным устройством. Состояние устройства ввода, определяемое параметрами режим работы и выключатель эха, заносится в таблицу состояния станции в поле, соответствующее данному устройству ввода строки.

Описание функции в соответствии с пп.2.8.1; 2.8.3.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

143

Режимы ОПРОС и СОБЫТИЕ не доступны на данном уровне ЯГС.

3.7.3. Функции ввода в режиме ЗАПРОС

3.7.3.1. ЗАПРОСИТЬ ВВОД ПОЗИЦИИ

СТОТ, СТАК, СГОТ Уровень mb.

REQUEST LOCATOR.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода позиции

(1...n)

Ц;

Вых состояние

(ЕСТЬ, ОТБОЙ)

П;

Вых номер преобразования нормирования

(0...n)

Ц;

Вых позиция

МК

Т.

Действие:

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

Описание функции в соответствии с пп.2.6.4; 2.8.1; 2.8.3; 2.8.4.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

141

Устройство ввода не находится в режиме ЗАПРОС.

3.7.3.2. ЗАПРОСИТЬ ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

СТОТ, СТАК, СГОТ Уровень mb.

REQUEST STROKE.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода последовательности позиций

(1...n)

Ц;

Вых состояние

(ЕСТЬ, ОТБОЙ)

П;

Вых номер преобразования нормирования

(0...n)

Ц;

Вых число позиций

(0...n)

Ц;

Вых последовательность позиций

МК

nТ.

Действие:

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

Примечание. Если количество вводимых точек превышает "размер буфера входных данных", то дополнительные точки теряются. Оператору сообщается об этом.

Описание функции в соответствии с пп.2.6.5; 2.8.1; 2.8.2; 2.8.3; 2.8.4.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

141

Устройство ввода не находится в режиме ЗАПРОС.

3.7.3.3. ЗАПРОСИТЬ ВВОД ЧИСЛА

СТОТ, СТАК, СГОТ Уровень mb.

REQUEST VALUATOR.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода числа

(1...n)

Ц;

Вых состояние

(ЕСТЬ, ОТБОЙ)

П;

Вых значение числа

Д.

Действие:

Выполняется ввод в режиме ЗАПРОС на заданном устройстве. Если оператор выполняет специальное действие отмены ввода - "отбой", то в параметре состояние возвращается значение ОТБОЙ. Иначе возвращается значение ЕСТЬ, а в параметре значение числа - значение логического ввода (текущее измерение устройства ввода числа), которое находится в диапазоне, определенном в записи данных устройства ввода числа в таблице состояния станции (для данного устройства).

Описание функции в соответствии с пп.2.8.1; 2.8.2; 2.8.3; 2.8.4.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

141

Устройство ввода не находится в режиме ЗАПРОС.

3.7.3.4. ЗАПРОСИТЬ ВЫБОР

СТОТ, СТАК, СГОТ Уровень mb.

REQUEST CHOICE.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства выбора

(1...n)

Ц;

Вых состояние

(ЕСТЬ, ОТБОЙ, НЕТ ВЫБОРА)

П;

Вых номер альтернативы

(1...n)

Ц.

Действие:

Выполняется ввод в режиме ЗАПРОС на заданном устройстве. Если оператор выполняет специальное действие отмены ввода - "отбой", то в параметре состояние возвращается значение ОТБОЙ. Если измерение устройства выбора определяет отсутствие выбора, в параметре состояние возвращается значение НЕТ ВЫБОРА. Иначе возвращается значение ЕСТЬ вместе с номером выбранной альтернативы, являющимся значением логического ввода (текущим измерением устройства выбора).

Описание функции в соответствии с пп.2.8.1; 2.8.2; 2.8.3; 2.8.4.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

141

Устройство ввода не находится в режиме ЗАПРОС.

3.7.3.5. ЗАПРОСИТЬ УКАЗАНИЕ

СТОТ, СТАК, СГОТ Уровень 1b.

REQUEST PICK.

Параметры:

Вх идентификатор станции

И;

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

(1...n)

Ц;

Вых состояние

(ЕСТЬ, ОТБОЙ, НЕТ УКАЗАНИЯ)

П;

Вых имя сегмента

И;

Вых идентификатор указания

И.

Действие:

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

Описание функции в соответствии с пп.2.8.1; 2.8.2; 2.8.3; 2.8.4.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

37

Указанная станция не является станцией ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

141

Устройство ввода не находится в режиме ЗАПРОС.

3.7.3.6. ЗАПРОСИТЬ ВВОД СТРОКИ

СТОТ, СТАК, СГОТ Уровень mb.

REQUEST STRING.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода строки

(1...n)

Ц;

Вых состояние

(ЕСТЬ, ОТБОЙ)

П;

Вых строка литер

С.

Действие:

Выполняется ввод в режиме ЗАПРОС на заданном устройстве. Если оператор выполняет специальное действие отмены ввода - "отбой", то в параметре состояние возвращается значение ОТБОЙ. Иначе возвращается значение ЕСТЬ, а в параметре строка литер - значение логического ввода (текущее измерение устройства ввода строки).

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

Описание функции в соответствии с пп.2.8.1; 2.8.2; 2.8.3; 2.8.4.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

141

Устройство ввода не находится в режиме ЗАПРОС.

3.7.4. Функции ввода в режиме ОПРОС

3.7.4.1. ОПРОСИТЬ ВВОД ПОЗИЦИИ

СТОТ, СТАК, СГОТ Уровень mc.

SAMPLE LOCATOR.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода позиции

(1...n)

Ц;

Вых номер преобразования нормирования

(0...n)

Ц;

Вых позиция

МК

Т.

Действие:

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

Описание функции в соответствии с пп.2.6.4; 2.8.1; 2.8.3; 2.8.4.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

142

Устройство ввода не находится в режиме ОПРОС.

3.7.4.2. ОПРОСИТЬ ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

СТОТ, СТАК, СГОТ Уровень mc.

SAMPLE STROKE.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода последовательности позиций

(1...n)

Ц;

Вых номер преобразования нормирования

(0...n)

Ц;

Вых число позиций

(0...n)

Ц;

Вых последовательность позиций

МК

nТ.

Действие:

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

Примечание. Если количество введенных позиций превышает "размер буфера входных данных", то дополнительные позиции теряются. Оператору сообщается об этом.

Описание функции в соответствии с пп.2.6.5; 2.8.1; 2.8.3; 2.8.4.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

142

Устройство ввода не находится в режиме ОПРОС.

3.7.4.3. ОПРОСИТЬ ВВОД ЧИСЛА

СТОТ, СТАК, СГОТ Уровень mc.

SAMPLE VALUATOR.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода числа

(1...n)

Ц;

Вых значение числа

Д.

Действие:

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

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

142

Устройство ввода не находится в режиме ОПРОС.

3.7.4.4. ОПРОСИТЬ ВЫБОР

СТОТ, СТАК, СГОТ Уровень mc.

SAMPLE CHOICE.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства выбора

(1...n)

Ц;

Вых состояние

(ЕСТЬ, НЕТ ВЫБОРА)

П;

Вых номер альтернативы

(1...n)

Ц.

Действие:

Если измерение устройства выбора определяет отсутствие выбора, то в параметре состояние возвращается значение НЕТ ВЫБОРА. Иначе возвращается значение ЕСТЬ вместе с номером выбранной альтернативы, являющимся значением логического ввода - текущим измерением устройства выбора.

Описание функции в соответствии с пп.2.8.1; 2.8.3; 2.8.4.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

142

Устройство ввода не находится в режиме ОПРОС.

3.7.4.5. ОПРОСИТЬ УКАЗАНИЕ

СТОТ, СТАК, СГОТ Уровень 1с.

SAMPLE PICK.

Параметры:

Вх идентификатор станции

И;

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

(1...n)

Ц;

Вых состояние

(ЕСТЬ, НЕТ УКАЗАНИЯ)

П;

Вых имя сегмента

И;

Вых идентификатор указания

И.

Действие:

Если измерение устройства указания определяет отсутствие указания, то в параметре состояние выдается значение НЕТ УКАЗАНИЯ. Иначе возвращается значение ЕСТЬ, а в параметрах имя сегмента и идентификатор указания возвращается значение логического ввода - текущее измерение устройства указания.

Описание функции в соответствии с пп.2.8.1; 2.8.3; 2.8.4.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

37

Указанная станция не является станцией ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

142*

Устройство ввода не находится в режиме опроса;*

142*

Устройство ввода не находится в режиме ОПРОС.

________________

* Соответствуют оригиналу. - .

3.7.4.6. ОПРОСИТЬ ВВОД СТРОКИ

СТОТ, СТАК, СГОТ Уровень mc.

SAMPLE STRING.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода строки

(1...n)

Ц;

Вых строка литер

С.

Действие:

В параметре строка литер возвращается значение логического ввода - текущее измерение устройства ввода строки.

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

Описание функции в соответствии с пп.2.8.1; 2.8.3; 2.8.4.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

142

Устройство ввода не находится в режиме ОПРОС.

3.7.5. Функции ввода в режиме СОБЫТИЕ

3.7.5.1. ОЖИДАТЬ СОБЫТИЕ

СТОТ, СТАК, СГОТ Уровень mc.

AWAIT EVENT.

Параметры:

Вх время ожидания (секунды)

Д;

Вых идентификатор станции

И;

Вых класс устройства ввода

(НЕТ, ВВОД ПОЗИЦИИ, ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ, ВВОД ЧИСЛА, ВЫБОР, УКАЗАНИЕ, ВВОД СТРОКИ)

П;

Вых номер устройства ввода

(1...n)

Ц.

Действие:

Если очередь событий пуста, то ЯГС переходит в состояние ожидания до тех пор, пока либо не произойдет событие - ввод данных, и сообщение об этом событии не поступит в очередь, либо не истечет время ожидания.

Если время ожидания истекло, а очередь пуста, то в параметре класс устройства ввода возвращается значение НЕТ. Если в очереди имеются записи, то самый старый отчет о событии перемещается из очереди событий в поле "отчет о текущем событии" таблицы состояния ЯГС. В параметрах возвращаются идентификатор станции, класс и номер устройства ввода, а соответствующие значения входных данных становятся доступными для получения с помощью функции ПОЛУЧИТЬ <класс устройства ввода>.

Примечания:

1. Операция выполняется и в случае наличия ошибки 147.

2. Если время ожидания равно нулю, то осуществляется немедленная проверка очереди, и если очередь пуста, возвращается значение НЕТ.

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

Описание функции в соответствии с пп.2.8.1; 2.8.3; 2.8.5.

Ошибки:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

147

Очередь событий переполнена;

151

Неверно задано время ожидания.

3.7.5.2. УДАЛИТЬ СОБЫТИЯ ОТ УСТРОЙСТВА

СТОТ, СТАК, СГОТ Уровень mc.

FLUSH DEVICE EVENTS.

Параметры:

Вх идентификатор станции

И;

Вх класс устройства ввода

(ВВОД ПОЗИЦИИ, ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ, ВВОД ЧИСЛА, ВЫБОР, УКАЗАНИЕ, ВВОД СТРОКИ)

П;

Вх номер устройства ввода

(1...n)

Ц.

Действие:

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

Примечание. Операция выполняется и в случае наличия ошибки 147.

Описание функции в соответствии с п.2.8.5.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции;

147

Очередь событий переполнена.

3.7.5.3. ПОЛУЧИТЬ ПОЗИЦИЮ

СТОТ, СТАК, СГОТ Уровень mc.

GET LOCATOR.

Параметры:

Вых номер преобразования нормирования

(0...n)

Ц;

Вых позиция

МК

Т.

Действие:

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

Описание функции в соответствии с пп.2.6.4; 2.8.4; 2.8.5.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

150

Значение ввода данного класса отсутствует в отчете о текущем событии.

3.7.5.4. ПОЛУЧИТЬ ПОСЛЕДОВАТЕЛЬНОСТЬ ПОЗИЦИЙ

СТОТ, СТАК, СГОТ Уровень mc.

GET STROKE.

Параметры:

Вых номер преобразования нормирования

(0...n)

Ц;

Вых число позиций

(0...n)

Ц;

Вых последовательность позиций

МК

nТ.

Действие:

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

Примечание. Если количество введенных позиций превышает "размер буфера входных данных", то дополнительные точки теряются. Оператору сообщается об этом.

Описание функции в соответствии с пп.2.8.4; 2.8.5.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

150

Значение ввода данного класса отсутствует в отчете о текущем событии.

3.7.5.5. ПОЛУЧИТЬ ЧИСЛО

СТОТ, СТАК, СГОТ Уровень mc.

GET VALUATOR.

Параметры:

Вых значение числа

Д.

Действие:

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

Описание функции в соответствии с пп.2.8.4; 2.8.5.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

150

Значение ввода данного класса отсутствует в отчете о текущем событии.

3.7.5.6. ПОЛУЧИТЬ ВЫБОР

СТОТ, СТАК, СГОТ Уровень mc.

GET CHOICE.

Параметры:

Вых состояние

(ЕСТЬ, НЕТ ВЫБОРА)

П;

Вых номер альтернативы

(1...n)

Ц.

Действие:

Из отчета о текущем событии выдается значение логического ввода, состоящее из состояния и номера выбранной альтернативы.

Описание функции в соответствии с пп.2.8.4; 2.8.5.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

150

Значение ввода данного класса отсутствует в отчете о текущем событии.

3.7.5.7. ПОЛУЧИТЬ УКАЗАНИЕ

СТОТ, СТАК, СГОТ Уровень 1с.

GET PICK.

Параметры:

Вых состояние

(ЕСТЬ, НЕТ УКАЗАНИЯ)

П;

Вых имя сегмента

И;

Вых идентификатор указания

И.

Действие:

Из отчета о текущем событии выдается значение логического ввода, состоящее из состояния, имени сегмента и идентификатора указания.

Описание функции в соответствии с пп.2.8.4; 2.8.5.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

150

Значение ввода данного класса отсутствует в отчете о текущем событии.

3.7.5.8. ПОЛУЧИТЬ СТРОКУ

СТОТ, СТАК, СГОТ Уровень mc.

GET STRING.

Параметры:

Вых строка литер

С.

Действие:

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

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

Описание функции в соответствии с пп.2.8.4; 2.8.5.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

150

Значение ввода данного класса отсутствует в отчете о текущем событии.


3.8. Функции метафайла

3.8.1. ЗАПИСАТЬ В МЕТАФАЙЛ

СТАК, СГОТ Уровень 0а.

WRITE ITEM TO GKSM.

Параметры:

Вх идентификатор станции

И;

Вх тип записи

Ц;

Вх длина записи данных

(0...n)

Ц;

Вх запись данных

О.

Действие:

Запись, содержащая неграфические данные, заносится в метафайл.

Примечание. Графические данные посылаются в метафайл автоматически, когда станция вывода метафайла активна.

Описание функции в соответствии с п.4.9.

Ошибки:

5

ЯГС не находится в состоянии СТАК или СГОТ;

20

Неверно задан идентификатор станции;

30

Указанная станция не активна;

32

Указанная станция не является станцией вывода метафайла ЯГС;

160

Тип записи не разрешен для записи пользователя;

161

Неправильная длина записи.

3.8.2. ПОЛУЧИТЬ ТИП ЗАПИСИ ИЗ МЕТАФАЙЛА

СТОТ, СТАК, СГОТ Уровень 0а.

GET ITEM TYPE FROM GKSM.

Параметры:

Bx идентификатор станции

И;

Вых тип записи

Ц;

Вых длина записи данных

(0...n)

Ц.

Действие:

ЯГС проверяет тип и длину текущей записи в метафайле и возвращает их в соответствующих параметрах прикладной программе.

Описание функции в соответствии с п.4.9.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

34

Указанная станция не является станцией ввода метафайла ЯГС;

162

В метафайле ввода ЯГС не осталось больше записей;

163

Неправильная запись в метафайле.

3.8.3. ПРОЧИТАТЬ ЗАПИСЬ МЕТАФАЙЛА

СТОТ, СТАК, СГОТ Уровень 0а.

READ ITEM FROM GKSM.

Параметры:

Bx идентификатор станции

И;

Вх максимальная длина записи

(0...n)

Ц;

Вых запись данных

О.

Действие:

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

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

Описание функции в соответствии с п.4.9.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

34

Указанная станция не является станцией ввода метафайла ЯГС;

162

В метафайле ввода ЯГС не осталось больше записей;

163

Неправильная запись в метафайле;

165

Содержимое записи данных не соответствует указанному типу записи;

166

Неверно задана максимальная длина записи данных.

3.8.4. ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

INTERPRET ITEM.

Параметры:

Вх тип записи

Ц;

Вх длина записи

(0...n)

Ц;

Вх запись данных

О.

Действие:

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

Примечание. Кроме ошибок, перечисленных ниже, как результат интерпретации записи могут возникнуть и другие ошибки ЯГС.

Описание функции в соответствии с п.4.9.

Ошибки:

7

ЯГС не находится в одном из состояний СТОТ, СТАК или СГОТ;

161

Неправильная длина записи;

163

Неправильная запись в метафайле;

164

Неправильный тип записи метафайла ЯГС;

165

Содержимое записи данных не соответствует указанному типу записи;

167

Запись пользователя не может быть интерпретирована;

168

Указанная функция не поддерживается на этом уровне ЯГС.


3.9. Справочные функции

3.9.1. Общие сведения

3.9.1.1. Справочные функции выдают значения из различных таблиц состояния. Типы данных значений и установленные по умолчанию значения полей таблиц состояния кратко описаны в разд.2. Об ошибках, обнаруженных справочными функциями, сообщается через параметр "индикатор ошибок" в соответствии с п.2.11.2. Процедура обработки ошибок не вызывается.

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

ЗАДАНО - выдаются значения, предусмотренные прикладной программой;

РЕАЛИЗОВАНО - выдаются значения, идентичные используемым станцией во время преобразования действительных значений в значения, доступные для данной станции.

Справочные функции для заранее определенных полей в таблице состояния станции в соответствии с п.3.9.6 не имеют такого параметра в отличие от соответствующих справочных функций для полей в списке состояний станции в соответствии с п.3.9.5. Значения заранее определенных полей имеются на станции.

3.9.2. Справочные функции функционального состояния ЯГС

3.9.2.1. УЗНАТЬ ФУНКЦИОНАЛЬНОЕ СОСТОЯНИЕ

ГЯЗА, ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE OPERATING STATE VALUE.

Параметры:

Вых функциональное состояние

(ГЯЗА, ГЯОТ, СТОТ, СТАК, СГОТ)

П.

Действие:

Выдается функциональное состояние ЯГС.

Описание функции в соответствии с пп.2.10.2; 2.11.2.

3.9.3. Справочные функции таблицы описания ЯГС

3.9.3.1. УЗНАТЬ УРОВЕНЬ ЯГС

ГЯОТ, СТОТ, СТАК, СГОТ Уровень ma.

INQUIRE LEVEL OF GKS.

Параметры:

Вых индикатор ошибок

Ц;

Вых уровень ЯГС

(0а, 0b, 0с, 1а, 1b, 1с, 2а, 2b, 2с)

П.

Индикатор ошибок может принимать значения:

8 ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

Описание функции в соответствии с пп.2.10.2; 2.11.2.

3.9.3.2. УЗНАТЬ ДОСТУПНЫЕ ТИПЫ СТАНЦИЙ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE LIST OF AVAILABLE WORKSTATION TYPES.

Параметры:

Вых индикатор ошибок

Ц;

Вых число доступных типов станций

(1...n)

Ц;

Вых список доступных типов станций

nИ.

Индикатор ошибок может принимать значения:

8 ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

Описание функции в соответствии с пп.2.5.1; 2.11.2.

3.9.3.3. УЗНАТЬ ДОПУСТИМЫЕ КОЛИЧЕСТВА СТАНЦИЙ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE WORKSTATION MAXIMUM NUMBERS.

Параметры:

Вых индикатор ошибок

Ц;

Вых максимальное число одновременно открытых станций

(1...n)

Ц;

Вых максимальное число одновременно активных станций

(1...n)

Ц;

Вых максимальное число станций, связанных с сегментом

(1...n)

Ц.

Индикатор ошибок может принимать значения:

8 ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

Описание функции в соответствии с пп.2.5; 2.11.2.

3.9.3.4. УЗНАТЬ МАКСИМАЛЬНЫЙ НОМЕР ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE MAXIMUM NORMALIZATION TRANSFORMATION NUMBER.

Параметры:

Вых индикатор ошибок

Ц;

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

(1...n)

Ц.

Индикатор ошибок может принимать значения:

8 ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

Описание функции в соответствии с пп.2.6.1; 2.11.2.

3.9.4. Справочные функции таблицы состояния ЯГС

3.9.4.1. УЗНАТЬ НАБОР ОТКРЫТЫХ СТАНЦИЙ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE SET OF OPEN WORKSTATIONS.

Параметры:

Вых индикатор ошибок

Ц;

Вых число открытых станций

(0...n)

Ц;

Вых набор открытых станций

nИ.

Индикатор ошибок может принимать значения:

8 ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

Описание функции в соответствии с пп.2.5.2; 2.11.2.

3.9.4.2. УЗНАТЬ НАБОР АКТИВНЫХ СТАНЦИЙ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE SET OF AKTIVE WORKSTATIONS.

Параметры:

Вых индикатор ошибок

Ц;

Вых число активных станций

(0...n)

Ц;

Вых набор активных станций

nИ.

Индикатор ошибок может принимать значения:

8 ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

Описание функции в соответствии с пп.2.5.2; 2.11.2.

3.9.4.3. УЗНАТЬ ТЕКУЩИЕ ЗНАЧЕНИЯ АТРИБУТОВ ПРИМИТИВОВ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень ma.

INQUIRE CURRENT PRIMITIVE ATTRIBUTE VALUES.

Параметры:

Вых индикатор ошибок

Ц;

Вых текущий индекс ломаной

(1...n)

Ц;

Вых текущий индекс полимаркера

(1...n)

Ц;

Вых текущий индекс текста

(1...n)

Ц;

Вых текущая высота литеры

МК

>0

Д;

Вых текущая вертикаль литеры

МК

2Д;

Вых текущая ширина литеры

МК

>0

Д;

Вых текущая горизонталь литеры

МК

2Д;

Вых текущее направление текста (ВПРАВО, ВЛЕВО, ВВЕРХ, ВНИЗ)

П;

Вых текущее выравнивание текста

(ОБЫЧНОЕ, ЛЕВОЕ, ЦЕНТРАЛЬНОЕ, ПРАВОЕ; ОБЫЧНОЕ, ПО ВЕРХУ, ПО ЗАГЛАВНОЙ, ПО СЕРЕДИНЕ, ПО ОСНОВАНИЮ, ПО НИЗУ)

2П;

Вых текущий индекс полигональной области

(1...n)

Ц;

Вых текущая горизонталь шаблона

МК

2Д;

Вых текущая вертикаль шаблона

МК

2Д;

Вых текущая точка привязки шаблона

МК

Т.

Индикатор ошибок может принимать значения:

8 ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

Описание функции в соответствии с пп.2.4.2; 2.11.2.

3.9.4.4. УЗНАТЬ ТЕКУЩЕЕ ЗНАЧЕНИЕ ИДЕНТИФИКАТОРА УКАЗАНИЯ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 1b.

INQUIRE CURRENT PICK IDENTIFIER VALUE

Параметры:

Вых индикатор ошибок

Ц;

Вых текущий идентификатор указания

И.

Индикатор ошибок может принимать значения:

8 ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

Описание функции в соответствии с пп.2.4.2; 2.7.1; 2.11.2.

3.9.4.5. УКАЗАТЬ ТЕКУЩИЕ ЗНАЧЕНИЯ ИНДИВИДУАЛЬНЫХ АТРИБУТОВ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

INQUIRE CURRENT INDIVIDUAL ATTRIBUTE VALUES.

Параметры:

Вых индикатор ошибок

Ц;

Вых текущий тип линии

(-n...-1, 1...n)

Ц;

Вых текущий масштаб толщины линии

>=0

Д;

Вых текущий индекс цвета ломаной

(0...n)

Ц;

Вых текущий тип маркера

(-n...-1, 1...n)

Ц;

Вых текущий масштаб маркера

>=0

Д;

Вых текущий индекс цвета полимаркера

(0...n)

Ц;

Вых текущий шрифт и точность представления текста

(-n...-1, 1...n;

ДО СТРОКИ, ДО ЛИТЕРЫ, ДО ШТРИХА)

(Ц; П);

Вых текущий масштаб расширения литеры

>0

Д;

Вых текущий межлитерный просвет

Д;

Вых текущий индекс цвета текста

(0...n)

Ц;

Вых текущий вид заполнения полигональной области (ПУСТО, ЗАЛИВКА, ПО ШАБЛОНУ, ШТРИХОВКА)

П;

Вых текущий индекс заполнителя полигональной области

(-n...-1, 1...n)

Ц;

Вых текущий индекс цвета полигональной области

(0...n)

Ц;

Вых текущий список флагов выборки атрибутов

(СВЯЗАННЫЙ, ИНДИВИДУАЛЬНЫЙ)

13П.

Индикатор ошибок может принимать значения:

8 ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

Описание функции в соответствии с пп.2.4.2; 2.11.2.

3.9.4.6. УЗНАТЬ НОМЕР ТЕКУЩЕГО ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

INQUIRE CURRENT NORMALIZATION TRANSFORMATION NUMBER.

Параметры:

Вых индикатор ошибок

Ц;

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

(0...n)

Ц.

Индикатор ошибок может принимать значения:

8 ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

Описание функции в соответствии с пп.2.6.1; 2.11.2.

3.9.4.7. УЗНАТЬ СПИСОК НОМЕРОВ ПРЕОБРАЗОВАНИЙ НОРМИРОВАНИЯ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE LIST OF NORMALIZATION TRANSFORMATION NUMBERS.

Параметры:

Вых индикатор ошибок

Ц;

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

nЦ.

Индикатор ошибок может принимать значения:

8 ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

Описание функции в соответствии с пп.2.6.1; 2.11.2.

3.9.4.8. УЗНАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

INQUIRE NORMALIZATION TRANSFORMATION.

Параметры:

Вх номер преобразования нормирования

(0...n)

Ц;

Вых индикатор ошибок

Ц;

Вых границы окна

МК

4Д;

Вых границы поля вывода

НК

4Д.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

50

Неверно задан номер преобразования.

Описание функции в соответствии с пп.2.6.1; 2.11.2.

3.9.4.9. УЗНАТЬ ЗНАЧЕНИЕ ОТСЕЧЕНИЯ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

INQUIRE CLIRPING.

Параметры:

Вых индикатор ошибок

Ц;

Вых индикатор отсечения (ОТСЕКАТЬ, НЕ ОТСЕКАТЬ)

П;

Вых прямоугольник отсечения НК

4Д.

Индикатор ошибок может принимать значения:

8 ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

Описание функции в соответствии с пп.2.6.1; 2.11.2.

3.9.4.10. УЗНАТЬ ИМЯ ОТКРЫТОГО СЕГМЕНТА

СГОТ Уровень 1а.

INQUIRE NAME OF OPEN SEGMENT.

Параметры:

Вых индикатор ошибок

Ц;

Вых имя открытого сегмента

И.

Индикатор ошибок может принимать значения:

4 ЯГС не находится в состоянии СГОТ.

Описание функции в соответствии с пп.2.7.1; 2.11.2.

3.9.4.11. УЗНАТЬ ИМЕНА СУЩЕСТВУЮЩИХ СЕГМЕНТОВ

СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE SET OF SEGMENT NAMES IN USE.

Параметры:

Вых индикатор ошибок

Ц;

Вых число имен сегментов

(0...n)

Ц;

Вых набор имен существующих сегментов

nИ.

Индикатор ошибок может принимать значения:

7 ЯГС не находится в состоянии СТОТ, СТАК или СГОТ.

Описание функции в соответствии с пп.2.7.1; 2.11.2.

3.9.4.12. УЗНАТЬ НАЛИЧИЕ ОДНОВРЕМЕННЫХ СОБЫТИЙ

СТОТ, СТАК, СГОТ Уровень mc.

INQUIRE MORE SIMULTANEOUS EVENTS.

Параметры:

Вых индикатор ошибок

Ц;

Вых наличие одновременных событий (ЕСТЬ, НЕТ)

П.

Индикатор ошибок может принимать значения:

7 ЯГС не находится в состоянии СТОТ, СТАК или СГОТ.

Описание функции в соответствии с пп.2.8.5; 2.11.2.

3.9.5. Справочные функции таблицы состояния станции

3.9.5.1. УЗНАТЬ ТИП И ИДЕНТИФИКАТОР СВЯЗИ СТАНЦИИ

СТОТ, СТАК, СГОТ Уровень mа.

INQUIRE WORKSTATION CONNECTION AND TYPE.

Параметры:

Bx идентификатор станции

И;

Вых индикатор ошибок

Ц;

Вых идентификатор связи

И;

Вых тип станции

И.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта.

Описание функции в соответствии с пп.2.5.2; 2.11.2.

3.9.5.2. УЗНАТЬ СОСТОЯНИЕ СТАНЦИИ

СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE WORKSTATION STATE.

Параметры:

Bx идентификатор станции

И;

Вых индикатор ошибок

Ц;

Вых состояние станции (АКТИВНА, НЕАКТИВНА)

П.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода.

Описание функции в соответствии с пп.2.5.2; 2.11.2.

3.9.5.3. УЗНАТЬ РЕЖИМ ЗАДЕРЖКИ И ОБНОВЛЕНИЯ СТАНЦИИ

СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE WORKSTATION DEFERRAL AND UPDATE STATES.

Параметры:

Bx идентификатор станции

И;

Вых индикатор ошибок

Ц;

Вых момент обновления (БЫСТРО, ГЛОБ, ЛОК, ЛЮБОЙ)

П;

Вых режим неявной повторной генерации (ЗАПРЕЩЕНА, РАЗРЕШЕНА)

П;

Вых заполненность носителя изображения (ПУСТ, НЕПУСТ)

П;

Вых при обновлении необходим вывод нового кадра (ДА, НЕТ)

П.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов.

Описание функции в соответствии с пп.2.5.3; 2.5.4; 2.11.2.

3.9.5.4. УЗНАТЬ ИНДЕКСЫ ЛОМАНОЙ

СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE LIST OF POLYLINE INDICES.

Параметры:

Bx идентификатор станции

И;

Вых индикатор ошибок

Ц;

Вых число определенных связок ломаной

(5...n)

Ц;

Вых список определенных индексов ломаной

(1...n)

nЦ.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов.

Описание функции в соответствии с пп.2.4.3; 2.11.2.

3.9.5.5. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ

СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE POLYLINE REPRESENTATION.

Параметры:

Вх идентификатор станции

И;

Вх индекс ломаной

(1...n)

Ц;

Вх тип возвращаемых значений

(ЗАДАНО, РЕАЛИЗОВАНО)

П;

Вых индикатор ошибок

Ц;

Вых тип линии

(-n...-1, 1...n)

Ц;

Вых масштаб толщины линии

>=0

Д;

Вых индекс цвета ломаной

(0...n)

Ц.

Действие:

Если на станции указанного индекса ломаной нет в таблице связок ломаной и тип возвращаемых значений - РЕАЛИЗОВАНО, то возвращается представление для индекса, равного 1.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов;

60

Неверно задан индекс ломаной;

61

Представление для указанного индекса ломаной не было определено на данной станции.

Описание функции в соответствии с пп.2.4.3; 2.11.2.

3.9.5.6. УЗНАТЬ ИНДЕКСЫ ПОЛИМАРКЕРА

СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE LIST OF POLYMARKER INDICES.

Параметры:

Bx идентификатор станции

И;

Вых индикатор ошибок

Ц;

Вых число определенных связок полимаркера

(5...n)

Ц;

Вых список определенных индексов полимаркера

(1...n)

nЦ.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов.

Описание функции в соответствии с пп.2.4.4; 2.11.2.

3.9.5.7. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА

СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE POLYMARKER REPRESENTATION.

Параметры:

Вх идентификатор станции

И;

Вх индекс полимаркера

(1...n)

Ц;

Вх тип возвращаемых значений

(ЗАДАНО, РЕАЛИЗОВАНО)

П;

Вых индикатор ошибок

Ц;

Вых тип маркера

(-n...-1, 1...n)

Ц;

Вых масштаб маркера

>=0

Д;

Вых индекс цвета полимаркера

(0...n)

Ц.

Действие:

Если на станции указанного индекса полимаркера нет в таблице связок маркера и тип возвращаемых значений - РЕАЛИЗОВАНО, то возвращается представление для индекса, равного 1.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов;

66

Неверно задан индекс полимаркера;

67

Представление для указанного индекса полимаркера не было определено на данной станции.

Описание функции в соответствии с пп.2.4.4; 2.11.2.

3.9.5.8. УЗНАТЬ ИНДЕКСЫ ТЕКСТА

СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE LIST OF TEXT INDECES.

Параметры:

Вх идентификатор станции

И;

Вых индикатор ошибок

Ц;

Вых число определенных связок текста

(6...n)

Ц;

Вых список определенных индексов текста

(1...n)

nЦ.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов.

Описание функции в соответствии с пп.2.4.5; 2.11.2.

3.9.5.9. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА

СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE TEXT REPRESENTATION.

Параметры:

Вх идентификатор станции

И;

Вх индекс текста

(1...n)

Ц;

Вх тип возвращаемых значений

(ЗАДАНО, РЕАЛИЗОВАНО)

П;

Вых индикатор ошибок

Ц;

Вых шрифт и точность представления текста

(-n...-1, 1...n)

(ДО СТРОКИ, ДО ЛИТЕРЫ, ДО ШТРИХА)

(Ц; П);

Вых масштаб расширения литеры

>0

Д;

Вых межлитерный просвет

Д;

Вых индекс цвета текста

(0...n)

Ц.

Действие:

Если на станции указанного индекса текста нет в таблице связок текста и тип возвращаемых значений - РЕАЛИЗОВАНО, то возвращается представление для индекса, равного 1.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов;

72

Неверно задан индекс текста;

73

Представление для указанного индекса текста не было определено на данной станции.

Описание функции в соответствии с пп.2.4.5; 2.11.2.

3.9.5.10. УЗНАТЬ ГАБАРИТЫ ТЕКСТА

СТОТ, СТАК, СГОТ Уровень mа.

INQUIRE TEXT EXTENT.

Параметры:

Вх идентификатор станции

И;

Вх позиция текста

МК

Т;

Вх строка литер

С;

Вых индикатор ошибок

Ц;

Вых точка сцепления

МК

Т;

Вых параллелограмм текста

МК

4T.

Действие:

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

Для точности представления текста ДО СТРОКИ и ДО ЛИТЕРЫ берется минимальный параллелограмм, который полностью покрывает тела литер отображаемой строки (черт.17).

Примеры ответов на функцию УЗНАТЬ ГАБАРИТЫ ТЕКСТА
при различных атрибутах текста

Обозначения:

- позиция текста;

- точка сцепления;

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

Черт.17

Для направлений текста ВВЕРХ и ВНИЗ параллелограмм покрывает самую широкую литеру в шрифте. Размеры параллелограмма возвращаются в виде четырех угловых точек, упорядоченных в направлении движения против часовой стрелки.

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

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

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

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

Действие управляющих литер в тексте зависит от станции и совместимо с их обработкой функцией ТЕКСТ.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

39

Указанная станция не является станцией вывода или ввода-вывода;

101

Неверный код литеры.

Описание функции в соответствии с пп.2.4.5; 2.11.2.

3.9.5.11. УЗНАТЬ ИНДЕКСЫ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ

СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE LIST OF FILL AREA INDICES.

Параметры:

Bx идентификатор станции

И;

Вых индикатор ошибок

Ц;

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

(5...n)

Ц;

Вых список определенных индексов полигональной области

(1...n)

nЦ.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов.

Описание функции в соответствии с пп.2.4.6; 2.11.2.

3.9.5.12. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ

СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE FILL AREA REPRESENTATION.

Параметры:

Bx идентификатор станции

И;

Bx индекс полигональной области

(1...n)

Ц;

Bx тип возвращаемых значений

(ЗАДАНО, РЕАЛИЗОВАНО)

П;

Вых индикатор ошибок

Ц;

Вых вид заполнения полигональной области

(ПУСТО, ЗАЛИВКА, ПО ШАБЛОНУ, ШТРИХОВКА)

П;

Вых индекс заполнителя полигональной области

(-n...-1, 1...n)

Ц;

Вых индекс цвета полигональной области

(0...n)

Ц.

Действие:

Если на станции указанного индекса полигональной области нет в таблице связок полигональной области и тип возвращаемых значений - РЕАЛИЗОВАНО, то возвращается представление для индекса, равного 1.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов;

80

Неверно задан индекс полигональной области;

81

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

Описание функции в соответствии с пп.2.4.6; 2.11.2.

3.9.5.13. УЗНАТЬ ИНДЕКСЫ ШАБЛОНА

СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE LIST OF PATTERN INDICES.

Параметры:

Bx идентификатор станции

И;

Вых индикатор ошибок

Ц;

Вых число определенных представлений шаблона

(0...n)

Ц;

Вых список определенных индексов шаблона

(1...n)

nЦ.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов.

Описание функции в соответствии с пп.2.4.6; 2.11.2.

3.9.5.14. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА

СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE PATTERN REPRESENTATION.

Параметры:

Bx идентификатор станции

И;

Bx индекс шаблона

(1...n)

Ц;

Bx тип возвращаемых значений

(ЗАДАНО, РЕАЛИЗОВАНО)

П;

Вых индикатор ошибок

Ц;

Вых размерности матрицы шаблона

(1...n)

2Ц;

Вых матрица шаблона

(0...n)

nnЦ.

Действие:

Если на станции указанного индекса шаблона нет в таблице шаблонов и тип возвращаемых значений - РЕАЛИЗОВАНО, то возвращается представление для индекса, равного 1 (он имеется в наличии, если вид заполнения ПО ШАБЛОНУ поддерживается данной станцией).

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов;

85

Неверно задан индекс шаблона;

88

Представление для указанного индекса шаблона не было определено на данной станции;

90

Заполнение по шаблону не поддерживается на данной станции.

Описание функции в соответствии с пп.2.4.6; 2.11.2.

3.9.5.15. УЗНАТЬ ИНДЕКСЫ ЦВЕТА

СТОТ, СТАК, СГОТ Уровень mа.

INQUIRE LIST OF COLOUR INDICES.

Параметры:

Bx идентификатор станции

И;

Вых индикатор ошибок

Ц;

Вых число определенных представлений цвета

(2...n)

Ц;

Вых список определенных индексов цвета

(0...n)

nЦ.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов.

Описание функции в соответствии с пп.2.4.6; 2.11.2.

3.9.5.16. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА

СТОТ, СТАК, СГОТ Уровень mа.

INQUIRE COLOUR REPRESENTATION.

Параметры:

Bx идентификатор станции

И;

Bx индекс цвета

(0...n)

Ц;

Bx тип возвращаемых значений

(ЗАДАНО, РЕАЛИЗОВАНО)

П;

Вых индикатор ошибок

Ц;

Вых значения цвета (интенсивность красного, зеленого, синего)

[0., 1.]

3Д.

Действие:

Если на станции указанного индекса цвета нет в таблице цвета и тип возвращаемых значений - РЕАЛИЗОВАНО, то выдается такое зависящее от станции представление индекса цвета, которое будет использовано, если примитивы вывода выводятся с указанным индексом цвета.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода;

36

Указанная станция является общей памятью сегментов;

93

Неверно задан индекс цвета;

94

Представление для указанного индекса цвета не было определено на данной станции.

Описание функции в соответствии с пп.2.4.9; 2.11.2.

3.9.5.17. УЗНАТЬ ПРЕОБРАЗОВАНИЕ СТАНЦИИ

СТОТ, СТАК, СГОТ Уровень mа.

INQUIRE WORKSTATION TRANSFORMATION.

Параметры:

Вх идентификатор станции

И;

Вых индикатор ошибок

Ц;

Вых состояние обновления преобразования станции

(НЕ ЗАДЕРЖАНО, ЗАДЕРЖАНО)

П;

Вых запрошенное окно станции

НК

4Д;

Вых текущее окно станции

НК

4Д;

Вых запрошенное поле вывода станции

КУ

4Д;

Вых текущее поле вывода станции

КУ

4Д.

Действие:

Состояние обновления преобразования станции ЗАДЕРЖАНО, если изменение преобразования станции было запрошено, но еще не выполнено.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

36

Указанная станция является общей памятью сегментов.

Описание функции в соответствии с пп.2.4.9; 2.11.2.

3.9.5.18. УЗНАТЬ ИМЕНА ХРАНИМЫХ НА СТАНЦИИ СЕГМЕНТОВ

СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE SET OF SEGMENTS NAMES ON WORKSTATION.

Параметры:

Вх идентификатор станции

И;

Вых индикатор ошибок

Ц;

Вых число имен сегментов

(0...n)

Ц;

Вых список запомненных на станции сегментов

nИ.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

33

Указанная станция - станция ввода метафайла ЯГС;

35

Указанная станция является станцией ввода.

Описание функции в соответствии с пп.2.6.3; 2.11.2.

3.9.5.19. УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ПОЗИЦИИ

СТОТ, СТАК, СГОТ Уровень mb.

INQUIRE LOCATOR DEVICE STATE.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода позиции

(1...n)

Ц;

Вх тип возвращаемых значений

(ЗАДАНО, РЕАЛИЗОВАНО)

П;

Вых индикатор ошибок

Ц;

Вых режим работы

(ЗАПРОС, ОПРОС, СОБЫТИЕ)

П;

Вых выключатель эха

(ЭХО, БЕЗ ЭХА)

П;

Вых начальный номер преобразования нормирования

(0...n)

Ц;

Вых начальная позиция

МК

Т;

Вых тип подсказки и эха

(-n...-1, 1...n)

Ц;

Вых область эха

КУ

4Д;

Вых запись данных устройства ввода позиции

О.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции.

Описание функции в соответствии с пп.2.5.2; 2.7.1; 2.11.2.

3.9.5.20. УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

СТОТ, СТАК, СГОТ Уровень mb.

INQUIRE STROKE DEVICE STATE.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода последовательности позиций

(1...n)

Ц;

Вх тип возвращаемых значений

(ЗАДАНО, РЕАЛИЗОВАНО)

П;

Вых индикатор ошибок

Ц;

Вых режим работы

(ЗАПРОС, ОПРОС, СОБЫТИЕ)

П;

Вых выключатель эха

(ЭХО, БЕЗ ЭХА)

П;

Вых начальный номер преобразования нормирования

(0...n)

Ц;

Вых начальное число позиций

(0...n)

Ц;

Вых начальная последовательность позиций

МК

nТ;

Вых тип подсказки и эха

(-n...-1, 1...n)

Ц;

Вых область эха

КУ

4Д;

Вых запись данных устройства ввода последовательности позиций

О.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции.

Описание функции в соответствии с подразд.2.8 и п.2.11.2.

3.9.5.21. УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ЧИСЛА

СТОТ, СТАК, СГОТ Уровень mb.

INQUIRE VALUATOR DEVICE STATE.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода числа

(1...n)

Ц;

Вых индикатор ошибок

Ц;

Вых режим работы

(ЗАПРОС, ОПРОС, СОБЫТИЕ)

П;

Вых выключатель эха

(ЭХО, БЕЗ ЭХА)

П;

Вых начальное значение числа

Д;

Вых тип подсказки и эха

(-n...-1, 1...n)

Ц;

Вых область эха

КУ

4Д;

Вых запись данных устройства ввода числа

О.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции.

Описание функции в соответствии с подразд.2.8 и п.2.11.2.

3.9.5.22. УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВЫБОРА

СТОТ, СТАК, СГОТ Уровень mb.

INQUIRE CHOICE DEVICE STATE.

Параметры:

Bx идентификатор станции

И;

Вх номер устройства выбора

(1...n)

Ц;

Вых индикатор ошибок

Ц;

Вых режим работы

(ЗАПРОС, ОПРОС, СОБЫТИЕ)

П;

Вых выключатель эха

(ЭХО, БЕЗ ЭХА)

П;

Вых начальное состояние

(ЕСТЬ, НЕТ ВЫБОРА)

П;

Вых начальный номер альтернативы

(1...n)

Ц;

Вых тип подсказки и эха

(-n...-1, 1...n)

Ц;

Вых область эха

КУ

4Д;

Вых запись данных устройства выбора

О.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции.

Описание функции в соответствии с подразд.2.8 и п.2.11.2.

3.9.5.23. УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА УКАЗАНИЯ

СТОТ, СТАК, СГОТ Уровень 1b.

INQUIRE PICK DEVICE STATE.

Параметры:

Вх идентификатор станции

И;

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

(1...n)

Ц;

Вх тип возвращаемых значений

(ЗАДАНО, РЕАЛИЗОВАНО)

П;

Вых индикатор ошибок

Ц;

Вых режим работы

(ЗАПРОС, ОПРОС, СОБЫТИЕ)

П;

Вых выключатель эха

(ЭХО, БЕЗ ЭХА)

П;

Вых начальное состояние

(ЕСТЬ, НЕТ УКАЗАНИЯ)

П;

Вых начальное имя сегмента

И;

Вых начальный идентификатор указания

И;

Вых тип подсказки и эха

(-n... -1, 1...n)

Ц;

Вых область эха

КУ

4Д;

Вых запись данных устройства указания

О.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

37

Указанная станция не является станцией ввода-вывода;

140

Указанное устройство ввода отсутствует на станции.

Описание функции в соответствии с подразд.2.8 и п.2.11.2.

3.9.5.24. УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА СТРОКИ

СТОТ, СТАК, СГОТ Уровень mb.

INQUIRE STRING DEVICE STATE.

Параметры:

Вх идентификатор станции

И;

Вх номер устройства ввода строки

(1...n)

Ц;

Вых индикатор ошибок

Ц;

Вых режим работы

(ЗАПРОС, ОПРОС, СОБЫТИЕ)

П;

Вых выключатель эха

(ЭХО, БЕЗ ЭХА)

П;

Вых начальное значение строки

С;

Вых тип подсказки и эха

(-n...-1, 1...n)

Ц;

Вых область эха

КУ

4Д;

Вых запись данных устройства ввода строки

О.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции.

Описание функции в соответствии с подразд.2.8 и п.2.11.2.

3.9.6. Справочные функции таблицы описания станции

3.9.6.1. УЗНАТЬ КАТЕГОРИЮ СТАНЦИИ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE WORKSTATION CATEGORY.

Параметры:

Вх тип станции

И;

Вых индикатор ошибок

Ц;

Вых категория станции

(ВЫВОД, ВВОД, ВВОД/ВЫВОД, ОПС, МВЫВОД, МВВОД)

П.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует.

Описание функции в соответствии с пп.2.5.1; 2.11.2.

3.9.6.2. УЗНАТЬ КЛАСС СТАНЦИИ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE WORKSTATION CLASSIFICATION.

Параметры:

Вх тип станции

И;

Вых индикатор ошибок

Ц;

Вых класс станции

(ВЕКТОРНАЯ, РАСТРОВАЯ, ДРУГАЯ)

П.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода.

Описание функции в соответствии с пп.2.5.1, 2.11.2.

3.9.6.3. УЗНАТЬ РАЗМЕР НОСИТЕЛЯ ИЗОБРАЖЕНИЯ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

INQUIRE DISPLAY SPACE SIZE.

Параметры:

Вх тип станции

И;

Вых индикатор ошибок

Ц;

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

(МЕТРЫ, ДРУГИЕ)

П;

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

КУ

>0

2Д;

Вых размер носителя изображения (в единицах растра)

(1…n)

2Ц.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

31

Указанная станция - станция вывода метафайла ЯГС;

33

Указанная станция - станция ввода метафайла ЯГС;

36

Указанная станция является общей памятью сегментов.

Описание функции в соответствии с пп.2.5.1, 2.11.2.

3.9.6.4. УЗНАТЬ СПОСОБ ДИНАМИЧЕСКОЙ МОДИФИКАЦИИ АТРИБУТОВ СТАНЦИИ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE DYNAMIC MODIFICATION OF WORKSTATION ATTRIBUTES.

Параметры:

Вх тип станции

И;

Вых индикатор ошибок

Ц;

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

(НПГ, НОИ)

П;

Вых режим изменения связки полимаркера

(НПГ, НОИ)

П;

Вых режим изменения связки текста

(НПГ, НОИ)

П;

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

(НПГ, НОИ)

П;

Вых режим изменения представления шаблона

(НПГ, НОИ)

П;

Вых режим изменения представления цвета

(НПГ, НОИ)

П;

Вых режим изменения преобразования станции

(НПГ, НОИ)

П.

Примечание. НПГ означает, что неявная повторная генерация необходима при соответствующем изменении; НОИ - что обновление изображения выполняется немедленно.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода.

Описание функции в соответствии с пп.2.5.1; 2.5.3; 2.11.2.

3.9.6.5. УЗНАТЬ РЕЖИМ ЗАДЕРЖКИ ПО УМОЛЧАНИЮ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE DEFAULT DEFERRAL STATE VALUES.

Параметры:

Bx тип станции

И;

Вых индикатор ошибок

Ц;

Вых значение момента обновления по умолчанию

(БЫСТРО, ГЛОБ, ЛОК, ЛЮБОЙ)

П;

Вых значение режима неявной повторной генерации по умолчанию

(ЗАПРЕЩЕНА, РАЗРЕШЕНА)

П.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода.

Описание функции в соответствии с пп.2.5.1, 2.5.3, 2.11.2.

3.9.6.6. УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ЛОМАНОЙ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

INQUIRE POLYLINE FACILITIES.

Параметры:

Вх тип станции

И;

Вых индикатор ошибок

Ц;

Вых число доступных типов линий

(4...n)

Ц;

Вых список доступных типов линий

(-n...-1, 1...n)

nЦ;

Вых число доступных значений толщины линии

(0...n)

Ц;

Вых номинальное значение толщины линии

КУ

>0

Д;

Вых диапазон значений толщины линии
(минимальное, максимальное)

КУ

>0

2Д;

Вых число предопределенных связок ломаной

(5...n)

Ц.

Действие:

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

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода.

Описание функции в соответствии с пп.2.5.1, 2.11.2.

3.9.6.7. УЗНАТЬ ПРЕДОПРЕДЕЛЕННОЕ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE PREDEFINED POLYLINE REPRESENTATION.

Параметры:

Bx тип станции

И;

Bx индекс предопределенного представления ломаной

(1...n)

Ц;

Вых индикатор ошибок

Ц;

Вых тип линии

(-n...-1, 1...n)

Ц;

Вых масштаб толщины линии

Д;

Вых индекс цвета ломаной

(0...n)

Ц.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода;

60

Неверно задан индекс ломаной;

62

Представление для указанного индекса ломаной не предопределено на данной станции.

Описание функции в соответствии с пп.2.5.1; 2.11.2.

3.9.6.8. УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ПОЛИМАРКЕРА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

INQUIRE POLYMARKER FACILITIES.

Параметры:

Bx тип станции

И;

Вых индикатор ошибок

Ц;

Вых число доступных типов маркера

(5...n)

Ц;

Вых список доступных типов маркера

(-n...-1, 1...n)

nЦ;

Вых число доступных размеров маркера

(0...n)

Ц;

Вых номинальный размер маркера

КУ

>0

Д;

Вых диапазон размеров маркера
(минимальный, максимальный)

КУ

>0

2Д;

Вых число предопределенных связок полимаркера

(5...n)

Ц.

Действие:

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

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода.

Описание функции в соответствии с пп.2.5.1, 2.11.2.

3.9.6.9. УЗНАТЬ ПРЕДОПРЕДЕЛЕННОЕ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE PREDEFINED POLYMARKER REPRESENTATION.

Параметры:

Bx тип станции

И;

Вх индекс предопределенного представления полимаркера

(1...n)

Ц;

Вых индикатор ошибок

Ц;

Вых тип маркера

(-n...-1, 1...n)

Ц;

Вых масштаб маркера

Д;

Вых индекс цвета полимаркера

(0...n)

Ц.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода;

66

Неверно задан индекс полимаркера;

68

Представление для указанного индекса полимаркера не предопределено на данной станции.

Описание функции в соответствии с пп.2.5.1; 2.11.2.

3.9.6.10. УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ТЕКСТА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

INQUIRE TEXT FACILITIES.

Параметры:

Bx тип станции

И;

Вых индикатор ошибок

Ц;

Вых число пар шрифт - точность представления текста

(1...n)

Ц;

Вых список пар шрифт - точность представления текста

(-n...-1, 1...n);

(ДО СТРОКИ, ДО ЛИТЕРЫ, ДО ШТРИХА)

n(Ц; П);

Вых число доступных высот литеры

(0...n)

Ц;

Вых диапазон высоты литеры (минимум, максимум)

КУ

>0

2Д;

Вых число доступных масштабов расширения литеры

(0...n)

Ц;

Вых диапазон масштаба расширения литеры
(минимум, максимум)

КУ

>0

2Д;

Вых число предопределенных связок текста

(2...n)

Ц.

Действие:

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

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода.

Описание функции в соответствии с пп.2.5.1; 2.11.2.

3.9.6.11. УЗНАТЬ ПРЕДОПРЕДЕЛЕННОЕ ПРЕДСТАВЛЕНИЕ ТЕКСТА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а

INQUIRE PREDEFINED TEXT REPRESENTATION.

Параметры:

Bx тип станции

И;

Bx индекс предопределенного представления текста

(1...n)

Ц;

Вых индикатор ошибок

Ц;

Вых шрифт и точность представления текста

(-n...-1, 1...n);

(ДО СТРОКИ, ДО ЛИТЕРЫ, ДО ШТРИХА)

Ц; П;

Вых масштаб расширения литеры

>0

Д;

Вых межлитерный просвет

Д;

Вых индекс цвета текста

(0...n)

Ц.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода;

72

Неверно задан индекс текста;

74

Представление для указанного индекса текста не предопределено на данной станции.

Описание функции в соответствии с пп.2.5.1, 2.11.2.

3.9.6.12. УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

INQUIRE FILL AREA FACILITIES.

Параметры:

Bx тип станции

И;

Вых индикатор ошибок

Ц;

Вых число доступных видов заполнения полигональных областей

(1...n)

Ц;

Вых список доступных видов заполнения полигональной области

(ПУСТО, ЗАЛИВКА, ПО ШАБЛОНУ, ШТРИХОВКА)

nП;

Вых число доступных видов штриховки

(0...n)

Ц;

Вых список доступных видов штриховки

(-n...-1, 1...n)

nЦ;

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

(5...n)

Ц.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода.

Описание функции в соответствии с пп.2.5.1, 2.11.2.

3.9.6.13. УЗНАТЬ ПРЕДОПРЕДЕЛЕННОЕ ПРЕДСТАВЛЕНИЕ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE PREDEFINED FILL AREA REPRESENTATION.

Параметры:

Bx тип станции

И;

Bx индекс предопределенного представления полигональной области

(1...n)

Ц;

Вых индикатор ошибок

Ц;

Вых вид заполнения полигональной области

(ПУСТО, ЗАЛИВКА, ПО ШАБЛОНУ, ШТРИХОВКА)

П;

Вых индекс заполнителя полигональной области

(-n...-1, 1...n)

Ц;

Вых индекс цвета полигональной области

(0…n)

Ц.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода;

80

Неверно задан индекс полигональной области;

82

Представление для указанного индекса полигональной области не предопределено на данной станции.

Описание функции в соответствии с пп.2.5.1, 2.11.2.

3.9.6.14. УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ШАБЛОНА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE PATTERN FACILITIES.

Параметры:

Bx тип станции

И;

Вых индикатор ошибок

Ц;

Вых число предопределенных представлений шаблона

(0...n)

Ц.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода.

Описание функции в соответствии с пп.2.5.1, 2.11.2.

3.9.6.15. УЗНАТЬ ПРЕДОПРЕДЕЛЕННОЕ ПРЕДСТАВЛЕНИЕ ШАБЛОНА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE PREDEFINED PATTERN REPRESENTATION.

Параметры:

Bx тип станции

И;

Bx индекс предопределенного представления шаблона

(1...n)

Ц;

Вых индикатор ошибок

Ц;

Вых размерности матрицы шаблона

(1...n)

2Ц;

Вых матрица шаблона

(0...n)

nnЦ.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода;

85

Неверно задан индекс шаблона;

89

Представление для указанного индекса шаблона не предопределено на данной станции;

90

Заполнение по шаблону не поддерживается на данной станции.

Описание функции в соответствии с пп.2.5.1, 2.11.2.

3.9.6.16. УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ЦВЕТА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

INQUIRE COLOUR FACILITIES.

Параметры:

Вх тип станции

И;

Вых индикатор ошибок

Ц;

Вых число возможных значений индексов цвета (или интенсивности)

(0,2...n)

Ц;

Вых наличие цвета (ЦВЕТНОЕ, МОНОХРОМНОЕ)

П;

Вых число предопределенных представлений цвета

(2...n)

Ц.

Действие:

Если число доступных значений цвета или интенсивности ноль, то станция поддерживает непрерывный диапазон значений цвета или интенсивности.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода.

Описание функции в соответствии с пп.2.5.1, 2.11.2.

3.9.6.17. УЗНАТЬ ПРЕДОПРЕДЕЛЕННОЕ ПРЕДСТАВЛЕНИЕ ЦВЕТА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE PREDEFINED COLOUR REPRESENTATION.

Параметры:

Вх тип станции

И;

Вх индекс предопределенного представления цвета

(0...n)

Ц;

Вых индикатор ошибок

Ц;

Вых значение интенсивностей красного, зеленого, синего

[0., 1.]

3Д.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода;

93

Неверно задан индекс цвета;

95

Представление для указанного индекса цвета не предопределено на данной станции.

Описание функции в соответствии с пп.2.5.1, 2.11.2.

3.9.6.18. УЗНАТЬ ИДЕНТИФИКАТОРЫ ДОСТУПНЫХ ОБОБЩЕННЫХ ПРИМИТИВОВ ВЫВОДА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE LIST OF AVAILABLE GENERALIZED DRAWING PRIMITIVES.

Параметры:

Вх тип станции

И;

Вых индикатор ошибок

Ц;

Вых число доступных ОПВ

(0...n)

Ц;

Вых список идентификаторов ОПВ

nЦ.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода.

Описание функции в соответствии с пп.2.5.1, 2.11.2.

3.9.6.19. УЗНАТЬ ХАРАКТЕРИСТИКИ ОБОБЩЕННОГО ПРИМИТИВА ВЫВОДА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE GENERALIZED DRAWING PRIMITIVE.

Параметры:

Вх тип станции

И;

Вх идентификатор ОПВ

И;

Вых индикатор ошибок

Ц;

Вых число используемых наборов атрибутов

(0...4)

Ц;

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

(ЛОМАНАЯ, ПОЛИМАРКЕР, ТЕКСТ, ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ)

nП.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода;

41

Станция указанного типа не может генерировать указанный обобщенный примитив вывода.

Описание функции в соответствии с пп.2.5.1, 2.11.2.

3.9.6.20. УЗНАТЬ ДЛИНУ ТАБЛИЦ СТАНЦИИ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mа.

INQUIRE MAXIMUM LENGTH OF WORKSTATION STATE TABLES.

Параметры:

Bx тип станции

И;

Вых индикатор ошибок

Ц;

Вых максимальное число связок ломаной

(5...n)

Ц;

Вых максимальное число связок полимаркера

(5...n)

Ц;

Вых максимальное число связок текста

(2...n)

Ц;

Вых максимальное число связок полигональной области

(5...n)

Ц;

Вых максимальное число индексов шаблона

(0...n)

Ц;

Вых максимальное число индексов цвета

(2...n)

Ц.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода.

3.9.6.21. УЗНАТЬ ДОПУСТИМОЕ ЧИСЛО ПРИОРИТЕТОВ СЕГМЕНТОВ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE NUMBER OF SEGMENT PRIORITIES SUPPORTED.

Параметры:

Bx тип станции

И;

Вых индикатор ошибок

Ц;

Вых число приоритетов сегментов

(0...n)

Ц.

Действие:

Если число приоритетов сегмента ноль, то станция поддерживает неограниченное число приоритетов сегментов.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода.

Описание функции в соответствии с пп.2.5.1, 2.7.2, 2.11.2.

3.9.6.22. УЗНАТЬ СПОСОБ ДИНАМИЧЕСКОЙ МОДИФИКАЦИИ АТРИБУТОВ СЕГМЕНТОВ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE DYNAMIC MODIFICATION OF SEGMENT ATTRIBUTES.

Параметры:

Bx тип станции

И;

Вых индикатор ошибок

Ц;

Вых режим изменения преобразования сегмента

(НПГ, НОИ)

П;

Вых режим изменения видимости из "видимой" в "невидимую"

(НПГ, НОИ)

П;

Вых режим изменения видимости из "невидимой" в "видимую"

(НПГ, НОИ)

П;

Вых режим изменения выделения сегмента

(НПГ, НОИ)

П;

Вых режим изменения приоритета сегмента

(НПГ, НОИ)

П;

Вых режим добавления примитивов в открытый сегмент

(НПГ, НОИ)

П;

Вых режим удаления непосредственно видимого сегмента

(НПГ, НОИ)

П.

Примечание. НПГ означает, что неявная повторная генерация необходима при соответствующем изменении; НОИ - что обновление изображения выполняется немедленно.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

39

Указанная станция не является станцией вывода или ввода-вывода.

Описание функции в соответствии с пп.2.5.1, 2.5.3, 2.11.2.

3.9.6.23. УЗНАТЬ КОЛИЧЕСТВО ДОСТУПНЫХ УСТРОЙСТВ ВВОДА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mb.

INQUIRE NUMBER OF AVAILABLE LOGICAL INPUT DEVICES.

Параметры:

Bx тип станции

И;

Вых индикатор ошибок

Ц;

Вых число устройств ввода позиции

(0...n)

Ц;

Вых число устройств ввода последовательности позиций

(0...n)

Ц;

Вых число устройств ввода числа

(0...n)

Ц;

Вых число устройств выбора

(0...n)

Ц;

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

(0...n)

Ц;

Вых число устройств ввода строки

(0...n)

Ц.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

38

Указанная станция не является станцией ввода или ввода-вывода.

Описание функции в соответствии с пп.2.5.1, 2.8.1, 2.11.2.

3.9.6.24. УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ПОЗИЦИИ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mb.

INQUIRE DEFAULT LOCATOR DEVICE DATA.

Параметры:

Bx тип станции

И;

Bx номер логического устройства ввода

(1...n)

Ц;

Вых индикатор ошибок

Ц;

Вых начальная позиция по умолчанию

МК

Т;

Вых число доступных типов подсказки и эха

(1...n)

Ц;

Вых список доступных типов подсказки и эха

(-n...-1, 1...n)

nЦ;

Вых область эха по умолчанию

КУ

4Д;

Вых запись данных устройства ввода позиции по умолчанию

О.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции.

Описание функции в соответствии с пп.2.5.1, 2.8.1, 2.8.6, 2.11.2.

3.9.6.25. УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mb.

INQUIRE DEFAULT STROKE DEVICE DATA.

Параметры:

Bx тип станции

И;

Bx номер логического устройства ввода

(1...n)

Ц;

Вых индикатор ошибок

Ц;

Вых максимальный размер буфера входных данных

(64...n)

Ц;

Вых число доступных типов подсказки и эха

(1...n)

Ц;

Вых список доступных типов подсказки и эха

(-n...-1, 1...n)

nЦ;

Вых область эха по умолчанию

КУ

4Д;

Вых запись данных устройства ввода последовательности позиций по умолчанию

О.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции.

Описание функции в соответствии с пп.2.5.1, 2.8.1, 2.8.6, 2.11.2.

3.9.6.26. УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ЧИСЛА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mb.

INQUIRE DEFAULT VALUATOR DEVICE DATA.

Параметры:

Bx тип станции

И;

Bx номер логического устройства ввода

(1...n)

Ц;

Вых индикатор ошибок

Ц;

Вых начальное значение по умолчанию

Д;

Вых число доступных типов подсказки и эха

(1...n)

Ц;

Вых список доступных типов подсказки и эха

(-n...-1, 1...n)

nЦ;

Вых область эха по умолчанию

КУ

4Д;

Вых запись данных устройства ввода числа по умолчанию

О.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции.

Описание функции в соответствии с пп.2.5.1, 2.8.1, 2.8.6, 2.11.2.

3.9.6.27. УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВЫБОРА

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mb.

INQUIRE DEFAULT CHOICE DEVICE DATA.

Параметры:

Bx тип станции

И;

Bx номер логического устройства ввода

(1...n)

Ц;

Вых индикатор ошибок

Ц;

Вых максимальное число альтернатив

(1...n)

Ц;

Вых число доступных типов подсказки и эха

(1...n)

Ц;

Вых список доступных типов подсказки и эха

(-n...-1, 1...n)

nЦ;

Вых область эха по умолчанию

КУ

4Д;

Вых запись данных устройства выбора по умолчанию

О.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции.

Описание функции в соответствии с пп.2.5.1, 2.8.1, 2.8.6, 2.11.2.

3.9.6.28. УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА УКАЗАНИЯ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 1b.

INQUIRE DEFAULT PICK DEVICE DATA.

Параметры:

Bx тип станции

И;

Bx номер логического устройства ввода

(1...n)

Ц;

Вых индикатор ошибок

Ц;

Вых число доступных типов подсказки и эха

(1...n)

Ц;

Вых список доступных типов подсказки и эха

(-n...-1, 1...n)

nЦ;

Вых область эха по умолчанию

КУ

4Д;

Вых запись данных устройства указания по умолчанию

О.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

37

Указанная станция не является станцией ввода-вывода;

140

Указанное устройство ввода отсутствует на станции.

Описание функции в соответствии с пп.2.5.1; 2.8.1; 2.8.6; 2.11.2.

3.9.6.29. УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА СТРОКИ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень mb.

INQUIRE DEFAULT STRING DEVICE DATA.

Параметры:

Bx тип станции

И;

Bx номер логического устройства ввода

(1...n)

Ц;

Вых индикатор ошибок

Ц;

Вых максимальный размер буфера входных данных

(72...n)

Ц;

Вых число доступных типов подсказки и эха

(1...n)

Ц;

Вых список доступных типов подсказки и эха

(-n...-1, 1...n)

nЦ;

Вых область эха по умолчанию

КУ

4Д;

Вых запись данных устройства ввода строки по умолчанию

О.

Индикатор ошибок может принимать значения:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;

22

Неверно задан тип станции;

23

Заданный тип станции не существует;

38

Указанная станция не является станцией ввода или ввода-вывода;

140

Указанное устройство ввода отсутствует на станции.

Описание функции в соответствии с пп.2.5.1; 2.8.1; 2.8.6; 2.11.2.

3.9.7. Справочные функции таблицы состояния сегмента

3.9.7.1. УЗНАТЬ СТАНЦИИ, СВЯЗАННЫЕ С СЕГМЕНТОМ

СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE SET OF ASSOCIATED WORKSTATIONS.

Параметры:

Bx имя сегмента

И;

Вых индикатор ошибок

Ц;

Вых число связанных с сегментом станций

(1...n)

Ц;

Вых набор связанных с сегментом станций

nИ.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОК*, СТАК или СГОТ;

_________________

* Текст соответствует оригиналу. - .

120

Неверно задано имя сегмента;

122

Указанный сегмент не существует.

Описание функции в соответствии с пп.2.7.2; 2.11.2.

3.9.7.2. УЗНАТЬ АТРИБУТЫ СЕГМЕНТА

СТОТ, СТАК, СГОТ Уровень 1а.

INQUIRE SEGMENT ATTRIBUTES.

Параметры:

Bx имя сегмента

И;

Вых индикатор ошибок

Ц;

Вых матрица преобразования сегмента

23Д;

Вых видимость

(ВИДИМЫЙ, НЕВИДИМЫЙ)

П;

Вых выделение

(НОРМАЛЬНЫЙ, ВЫДЕЛЕННЫЙ)

П;

Вых приоритет сегмента

[0., 1.]

Д;

Вых чувствительность к указанию

(НЕ УКАЗЫВАЕМЫЙ, УКАЗЫВАЕМЫЙ)

П.

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

120

Неверно задано имя сегмента;

122

Указанный сегмент не существует.

Описание функции в соответствии с пп.2.7.2; 2.11.2.

3.9.8. Справочные функции пикселей

3.9.8.1. УЗНАТЬ РАЗМЕРНОСТЬ МАТРИЦЫ ПИКСЕЛЕЙ

СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE PIXEL ARRAY DIMENSIONS.

Параметры:

Вх идентификатор станции

И;

Вх точки Р и Q

МК

2Т;

Вых индикатор ошибок

Ц;

Вых размерность матрицы пикселей

(1...n)

2Ц.

Действие:

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

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

39

Указанная станция не является станцией вывода или ввода-вывода.

Описание функции в соответствии с п.2.11.2.

3.9.8.2. УЗНАТЬ МАТРИЦУ ПИКСЕЛЕЙ

СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE PIXEL ARRAY.

Параметры:

Вх идентификатор станции

И;

Вх точка Р

МК

Т;

Вх размерности массива индексов цвета DX и DY

(1...n)

2Ц;

Вых индикатор ошибок

Ц;

Вых наличие неправильных значений (ОТСУТСТВУЮТ, ПРИСУТСТВУЕТ)

П;

Вых массив индексов цвета

(-1...n)

nnЦ.

Действие:

После применения текущего преобразования нормирования и преобразования станции к точке Р ее привязывают к пикселю носителя изображения. Индекс цвета этого пикселя заносится в элемент (1, 1) массива индексов цвета (левый верхний угол). Далее возвращаемый массив индексов цвета формируется из индексов цвета матрицы пикселей таким образом, что увеличение индекса первой размерности массива соответствует увеличению Х-координаты устройства, а увеличение индекса второй размерности - уменьшению Y-координаты устройства. Если индекс цвета, соответствующий некоторому пикселю, не может быть выяснен (например точка Р преобразуется так, что позиция пикселя находится вне носителя изображения), то для этой ячейки устанавливается значение индекса цвета равное -1 (т.е. неправильное).

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

39

Указанная станция не является станцией вывода или ввода-вывода;

40

Указанная станция не имеет возможности обратного чтения памяти пикселей;

91

Неверно заданы размерности массива индексов цвета.

Описание функции в соответствии с п.2.11.2.

3.9.8.3. УЗНАТЬ ЦВЕТ ПИКСЕЛЯ

СТОТ, СТАК, СГОТ Уровень 0а.

INQUIRE PIXEL.

Параметры:

Вх идентификатор станции

И;

Вх точка Р

МК

Т;

Вых индикатор ошибок

Ц;

Вых индекс цвета

(-1...n)

Ц.

Действие:

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

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

20

Неверно задан идентификатор станции;

25

Указанная станция не открыта;

39

Указанная станция не является станцией вывода или ввода-вывода;

40

Указанная станция не имеет возможности обратного чтения памяти пикселей.

Описание функции в соответствии с п.2.11.2.

3.9.9. Справочные функции таблицы ошибок ЯГС

3.9.9.1. УЗНАТЬ НАЛИЧИЕ ПЕРЕПОЛНЕНИЯ ОЧЕРЕДИ СОБЫТИЙ

СТОТ, СТАК, СГОТ Уровень mc.

INQUIRE INPUT QUEUE OVERFLOW.

Параметры:

Вых индикатор ошибок

Ц;

Вых идентификатор станции

И;

Вых класс устройства ввода

(ВВОД ПОЗИЦИИ, ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ, ВВОД ЧИСЛА, ВЫБОР, УКАЗАНИЕ, ВВОД СТРОКИ)

П;

Вых номер устройства ввода

(1...n)

Ц.

Действие:

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

Индикатор ошибок может принимать значения:

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;

148

Очередь событий не переполнялась после открытия ЯГС или после последнего обращения к функции УЗНАТЬ НАЛИЧИЕ ПЕРЕПОЛНЕНИЯ ОЧЕРЕДИ СОБЫТИЙ;

149

Очередь событий переполнялась, но соответствующая станция была закрыта.

Описание функции в соответствии с пп.2.8.5, 2.11.2.

3.10. Вспомогательные функции

3.10.1. СФОРМИРОВАТЬ МАТРИЦУ ПРЕОБРАЗОВАНИЙ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 1а.

EVALUATE TRANSFORMATION MATRIX.

Параметры:

Вх неподвижная точка

МК или НК

Т;

Вх вектор сдвига

МК или НК

2Д;

Вх угол поворота в радианах (положительный, если против часовой стрелки)

Д;

Вх коэффициент масштабирования

2Д;

Вх переключатель координат

(МК, НК)

П;

Вых матрица преобразований сегмента

23Д.

Действие:

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

Описание функции в соответствии с п.2.7.3.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

3.10.2. ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ

ГЯОТ, СТОТ, СТАК, СГОТ Уровень 1а.

ACCUMULATE TRANSFORMATION MATRIX.

Параметры:

Вх матрица преобразований сегмента

23Д;

Вх неподвижная точка

МК или НК

Т;

Вх вектор сдвига

МК или НК

2Д;

Вх угол поворота в радианах (положительный, если против часовой стрелки)

Д;

Вх коэффициент масштабирования

2Д;

Вх переключатель координат

(МК, НК)

П;

Вых матрица преобразований сегмента

23Д.

Действие:

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

Описание функции в соответствии с п.2.7.3.

Ошибки:

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.


3.11. Функции обработки ошибок

3.11.1. АВАРИЙНО ЗАКРЫТЬ ЯГС

ГЯЗК, ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

EMERGENCY CLOSE GKS.

Параметры:

Нет.

Действие:

ЯГС аварийно закрывается в соответствии с п.2.12. По возможности выполняются следующие действия:

ЗАКРЫТЬ СЕГМЕНТ (если он открыт);

ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ для всех открытых станций;

ДЕАКТИВИРОВАТЬ все активные станции;

ЗАКРЫТЬ все открытые станции;

ЗАКРЫТЬ ЯГС.

Эта функция может быть вызвана и в случае установления состояния ошибки в положение НЕТ. Если ЯГС уже закрыто (функциональное состояние ГЯЗК), указанные действия не выполняются.

Описание функции в соответствии с п.2.12.

3.11.2. ОБРАБОТАТЬ ОШИБКУ

ГЯЗК, ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

ERROR HANDLING.

Параметры:

Вх номер ошибки

Ц;

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

И;

Вх файл ошибок (устанавливается в функции ОТКРЫТЬ ЯГС)

И.

Действие:

ЯГС обращается к функции ОБРАБОТАТЬ ОШИБКУ при любой ошибочной ситуации. Стандартная процедура обращается к функции ЗАРЕГИСТРИРОВАТЬ ОШИБКУ с теми же параметрами.

Примечание. Функция ОБРАБОТАТЬ ОШИБКУ может быть заменена в прикладной программе на пользовательскую процедуру, обрабатывающую те же ошибочные ситуации.

Описание функции в соответствии с п.2.12.

3.11.3. ЗАРЕГИСТРИРОВАТЬ ОШИБКУ

ГЯЗК, ГЯОТ, СТОТ, СТАК, СГОТ Уровень 0а.

ERROR LOGGING.

Параметры:

Вх номер ошибки

Ц;

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

И;

Вх файл ошибок (устанавливается в функции ОТКРЫТЬ ЯГС)

И.

Действие:

Функция ЗАРЕГИСТРИРОВАТЬ ОШИБКУ записывает сообщение об ошибке и идентификацию функции ЯГС в файл ошибок; возвращает управление вызванной процедуре.

Описание функции в соответствии с п.2.12.

Примеры программ, использующих функции ЯГС, приведены в приложении 8, а их краткое описание - в приложении 9.

4. СТРУКТУРЫ ДАННЫХ ЯГС

4.1. Обозначения и типы данных

4.1.1. Для каждого поля в структуре данных приводится следующая информация:

1) название поля;

2) система координат (при необходимости);

3) допустимые значения данных;

4) тип данных;

5) начальное значение данных (если применимо).

4.1.2. Простые типы данных обозначаются буквами:

Ц - целое число;

Д - действительное число;

С - строка символов;

Т - точка, которая задается двумя действительными числами - координатами Х и Y позиции в системах координат МК, НК или КУ;

И - имя (используется для файла ошибок, идентификаторов связи, типа станции, идентификатора функции расширения, идентификатора ЯГС, идентификатора указания, имени сегмента и идентификации функции ЯГС);

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

О - запись данных (обобщенные данные), структуры и содержание которых произвольно.

4.1.3. Данные могут быть представлены в виде комбинации данных простого типа. В этом случае они обозначаются путем комбинации обозначения простых типов, например:

1) вектор значений - 2Д;

2) матрица значений - 23Д;

3) список значений, например, nЦ или n4Ц;

4) массив значений nnЦ;

5) упорядоченная пара значений различного типа - (Ц; П).

В приведенных примерах n обозначает переменное целое значение и может не иметь отношения к появлению n в описаниях других типов данных.

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

я.

4.1.4. Для координатных данных система координат указывается следующим образом:

МК - система мировых координат;

НК - система нормализованных координат;

КУ - система координат устройства.

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

4.1.5. Допустимые значения данных обозначаются следующим образом:

1) условия: например >0 или [0, 1] (последнее означает, что значение лежит между 0 и 1 включ.);

2) диапазон целых значений, например 1...4;

3) диапазон целых значений, максимальное значение которых определяется при реализации, например, 32...n. Наличие n в этом обозначении не обязательно предполагает какую-либо взаимосвязь с наличием n в других обозначениях. В этом контексте n обозначает переменное целое значение;

4) список значений, которые составляют данные типа "перечислимое", например ЗАПРЕЩЕНО, РАЗРЕШЕНО;

5) упорядоченный список любых перечисленных выше обозначений.

При наличии начальных значений они проставляются в последней колонке таблицы структуры данных. Для обозначения начальных значений применяются следующие сокращения:

неопр. - неопределенное значение;

з.р. - зависящее от реализации;

ТОС - начальное значение содержится в таблице описания станции.

Если начальное значение не задано, то значение устанавливается соответствующей функцией ЯГС.

4.2. Функциональное состояние

Функциональные состояния ЯГС описаны в табл.4.

Таблица 4

Название

Допустимые значения

Тип данных

Начальное значение

Функциональное состояние

ГЯЗК, ГЯОТ
СТОТ, СТАК, СГОТ

П

ГЯЗК


4.3. Таблица описания ЯГС

4.3.1. Описания полей, входящих в состав описания ЯГС, приведены в табл.5.

Таблица 5

Название поля

Допустимые значения

Тип данных

Начальное значение

Уровень ЯГС

mа, mb, mc, 0а, 0b, 0с, 1а, 1b, 1с, 2а, 2b, 2с

П

з.р.

Число доступных типов станций

1...n

Ц

з.р.

Список доступных типов станций

-

nИ

з.р.

Максимальное число одновременно открытых станций

1...n

Ц

з.р.

Максимальное число одновременно активных станций

1...n

Ц

з.р.

Максимальное число станций, связанных с сегментом

1...n

Ц

з.р.

Максимальный номер преобразования нормирования

1...n

Ц

з.р.


4.4. Таблица состояния ЯГС (табл.6)


Таблица 6

Название поля

Допустимые значения

Тип данных (Система координат)

Начальное значение

Набор открытых станций

-

nИ

Пуст

Набор активных станций

-

nИ

Пуст

Текущий индекс ломаной

1...n

Ц

1

Текущий тип линии

-n...-1, 1...n

Ц

1

Текущий масштаб толщины линии

>=0

Д

1.0

Текущий индекс цвета ломаной

0...n

Ц

1

Текущий ФВА типа линии

СВЯЗАННЫЙ, ИНДИВИДУАЛЬНЫЙ

П

См. примечание

Текущий ФВА масштаба толщины линии

СВЯЗАННЫЙ, ИНДИВИДУАЛЬНЫЙ

П

См. примечание

Текущий ФВА индекса цвета ломаной

СВЯЗАННЫЙ, ИНДИВИДУАЛЬНЫЙ

П

См. примечание

Текущий индекс полимаркера

1...n

Ц

1

Текущий тип маркера

-n...-1, 1...n

Ц

3

Текущий масштаб маркера

>=0

Д

1.0

Текущий индекс цвета полимаркера

0...n

Ц

1

Текущий ФВА типа маркера

СВЯЗАННЫЙ, ИНДИВИДУАЛЬНЫЙ

П

См. примечание

Текущий ФВА масштаба маркера

СВЯЗАННЫЙ, ИНДИВИДУАЛЬНЫЙ

П

См. примечание

Текущий ФВА индекса цвета полимаркера

СВЯЗАННЫЙ, ИНДИВИДУАЛЬНЫЙ

П

См. примечание

Текущий индекс текста

1...n

Ц

1

Текущие шрифт и точность представления текста

-n...-1, 1...n;

ДО СТРОКИ,

ДО ЛИТЕРЫ,

ДО ШТРИХА

Ц, П

1;
ДО СТРОКИ

Текущий масштаб расширения литеры

>0

Д

1.0

Текущий межлитерный просвет

Д

0.1

Текущий индекс цвета текста

0...n

Ц

1

Текущий ФВА шрифта и точности текста

СВЯЗАННЫЙ, ИНДИВИДУАЛЬНЫЙ

П

См. примечание

Текущий ФВА масштаба расширения литеры

СВЯЗАННЫЙ, ИНДИВИДУАЛЬНЫЙ

П

См. примечание

Текущий ФВА межлитерного просвета

СВЯЗАННЫЙ, ИНДИВИДУАЛЬНЫЙ

П

См. примечание

Текущий ФВА индекса цвета текста

СВЯЗАННЫЙ, ИНДИВИДУАЛЬНЫЙ

П

См. примечание

Текущая высота литеры

>0

Д (МК)

0.01

Текущая вертикаль литеры

2Д (МК)

0., 1.

Текущая ширина литеры

>0

Д (МК)

0.01

Текущая горизонталь литеры

2Д (МК)

1., 0.

Текущее направление текста

ВПРАВО, ВЛЕВО
ВВЕРХ, ВНИЗ

П

ВПРАВО

Текущее выравнивание текста (горизонтальное и вертикальное)

ОБЫЧНОЕ, ЛЕВОЕ, ЦЕНТРАЛЬНОЕ, ПРАВОЕ; ОБЫЧНОЕ ПО ВЕРХУ,
ПО ЗАГЛАВНОЙ,
ПО СЕРЕДИНЕ,
ПО ОСНОВАНИЮ,
ПО НИЗУ

П; П

ОБЫЧНОЕ; ОБЫЧНОЕ

Текущий индекс полигональной области

1...n

Ц

1

Текущий вид заполнения полигональной области

ПУСТО, ЗАЛИВКА, ПО ШАБЛОНУ, ШТРИХОВКА

П

ПУСТО

Текущий индекс заполнителя полигональной области

-n...-1, 1...n

Ц

1

Текущий индекс цвета полигональной области

0...n

Ц

1

Текущий ФВА вида заполнения полигональной области

СВЯЗАННЫЙ, ИНДИВИДУАЛЬНЫЙ

Ц

См. прим.

Текущий ФВА индекса заполнителя полигональной области

СВЯЗАННЫЙ, ИНДИВИДУАЛЬНЫЙ

Ц

См. прим.

Текущий ФВА индекса цвета полигональной области

СВЯЗАННЫЙ, ИНДИВИДУАЛЬНЫЙ

Ц

См. прим.

Текущая вертикаль шаблона

2Д (МК)

1., 0.

Текущая горизонталь шаблона

2Д (МК)

0., 1.

Текущая точка привязки шаблона

Т (МК)

0., 0.

Текущий индентификатор указания

И

Зависит от языка программирования

Текущий номер преобразования нормирования

0...n

Ц

0

Список номеров преобразований нормирования, упорядоченных в соответствии с приоритетом поля вывода при вводе (в порядке возрастания номеров, преобразование с номером 0 имеет наивысший приоритет)

Каждое поле списка содержит:

Номер преобразования нормирования

0...n

Ц

0

Окно

4Д (МК)

0., 1., 0., 1.

Поле вывода

4Д (НК)

0., 1., 0., 1.

Индикатор отсечения

ОТСЕКАТЬ, НЕ ОТСЕКАТЬ

П

ОТСЕКАТЬ

Прямоугольник отсечения

4Д (НК)

0., 1., 0., 1.

Имя открытого сегмента

И

Неопр.

Набор имен существующих сегментов

nИ

Пуст

Набор таблиц состояния сегментов (по одной таблице на каждый сегмент см. таблицу описания сегмента)

Пуст

Очередь событий (одно поле для каждого отчета о событии)

Пуст

Каждое поле очереди содержит:

Идентификатор станции

И

Неопр.

Номер логического устройства ввода

1...n

Ц

Неопр.

Признак последнего события в группе одновременных событий (единственное событие обозначается значением ПОСЛЕДНЕЕ)

ПОСЛЕДНЕЕ, НЕПОСЛЕДНЕЕ

П

Неопр.

Класс логического устройства ввода

ВВОД ПОЗИЦИИ, ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ, ВВОД ЧИСЛА, ВЫБОР, УКАЗАНИЕ, ВВОД СТРОКИ

П

Неопр.

Если ВВОД ПОЗИЦИИ:

Номер преобразования нормирования

0...n

Ц

Неопр.

Позиция

Т (МК)

Неопр.

Если ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ:

Номер преобразования нормирования

0...n

Ц

Неопр.

Число позиций

0...n

Ц

Неопр.

Последовательность позиций

nТ (МК)

Неопр.

Если ВВОД ЧИСЛА:

Значение

Д

Неопр.

Если ВЫБОР:

Состояние

ЕСТЬ, НЕТ ВЫБОРА

П

Неопр.

Номер альтернативы

1...n

Ц

Неопр.

Если УКАЗАНИЕ:

Состояние

ЕСТЬ, НЕТ УКАЗАНИЯ

П

Неопр.

Имя сегмента

И

Неопр.

Идентификатор указания

И

Неопр.

Если ВВОД СТРОКИ:

Строка литер

С

Неопр.

Отчет о текущем событии, содержащий:

Класс логического устройства ввода

НЕТ,

ВВОД ПОЗИЦИИ, ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ

ПОЗИЦИЙ, ВВОД ЧИСЛА, ВЫБОР, УКАЗАНИЕ, ВВОД СТРОКИ

П

НЕТ

Если ВВОД ПОЗИЦИИ:

Номер преобразования нормирования

0...n

Ц

Неопр.

Позиция

Т (МК)

Неопр.

Если ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ:

Номер преобразования нормирования

0...n

Ц

Неопр.

Число позиций

0...n

Ц

Неопр.

Последовательность позиций

nТ (МК)

Неопр.

Если ввод ЧИСЛА:

Значение

Д

Неопр.

Если ВЫБОР:

Состояние

ЕСТЬ, НЕТ ВЫБОРА

П

Неопр.

Номер альтернативы

1...n

Ц

Неопр.

Если УКАЗАНИЕ:

Состояние

ЕСТЬ, НЕТ УКАЗАНИЯ

П

Неопр.

Имя сегмента

И

Неопр.

Идентификатор указания

И

Неопр.

Если ВВОД СТРОКИ:

Строка литер

С

Неопр.

Наличие одновременных событий (у единственного события отмечается как НЕТ)

ЕСТЬ, НЕТ

П

НЕТ

Примечание. Начальные значения всех ФВА должны быть одинаковыми. Какое значение они имеют, СВЯЗАННЫЙ или ИНДИВИДУАЛЬНЫЙ, зависит от реализации.

4.5. Таблица состояния станции

4.5.1. Поля, входящие в состав таблицы состояния станций, приведены в табл.7. Для каждой открытой станции существует одна таблица состояния станции. Для станции вывода метафайла начальные значения, отмеченные как ТОС, зависят от реализации, так как его таблица описания станции не содержит соответствующие поля.

Таблица 7


Таблица состояния станции

Название поля

Допустимые значения

Тип данных (Система координат)

Начальное значение

Для всех категорий станций

Идентификатор станции

И

Устанавливается функцией ОТКРЫТЬ СТАНЦИЮ

Идентификатор связи

И

То же

Тип станции

И

"

Кроме станций категорий ВВОД и MBВОД:

Состояние станции

АКТИВНА, НЕАКТИВНА

П

НЕАКТИВНА

Список запомненных на станции сегментов

-

nИ

Пусто

Кроме станций категорий ВВОД, МВВОД, ОПС

Момент обновления

БЫСТРО, ГЛОБ, ЛОК, ЛЮБОЙ

П

ТОС

Режим неявной повторной генерации

ЗАПРЕЩЕНА, РАЗРЕШЕНА

П

ТОС

Заполненность носителя изображения

ПУСТ, НЕ ПУСТ

П

ПУСТ

При обновлении необходим вывод нового кадра

ДА, НЕТ

П

НЕТ

Число определенных связок ломаной

5...n

Ц

ТОС

Таблица связок ломаной, содержащая в каждом элементе:

Индекс ломаной

1...n

Ц

ТОС

Тип линии

-n...-1, 1...n

Ц

ТОС

Масштаб толщины линии

>=0

Д

ТОС

Индекс цвета ломаной

0...n

Ц

ТОС

Число определенных связок полимаркера

5...n

Ц

ТОС

Таблица связок полимаркера, содержащая в каждом элементе:

Индекс полимаркера

1...n

Ц

ТОС

Тип маркера

-n...-1, 1...n

Ц

ТОС

Масштаб маркера

>=0

Д

ТОС

Индекс цвета полимаркера

0...n

Ц

ТОС

Число определенных связок текста

2...n

Ц

ТОС

Таблица связок текста, содержащая в каждом элементе:

Индекс текста

1...n

Ц

ТОС

Шрифт и точность представления текста

-n...-1, 1...n;
ДО СТРОКИ,
ДО ЛИТЕРЫ,
ДО ШТРИХА

Ц; П

ТОС

Масштаб расширения литеры

>0

Д

ТОС

Межлитерный просвет

Д

ТОС

Индекс цвета текста

0...n

Ц

ТОС

Число определенных связок полигональной области

5...n

Ц

ТОС

Таблица связок полигональной области, содержащая в каждом элементе:

Индекс полигональной области

1...n

Ц

ТОС

Вид заполнения полигональной области

ПУСТО, ЗАЛИВКА, ПО ШАБЛОНУ, ШТРИХОВКА

П

ТОС

Индекс заполнителя

-n...-1, 1...n

Ц

ТОС

Индекс цвета полигональной области

0...n

Ц

ТОС

Число определенных представлений шаблонов

0...n

Ц

ТОС

Таблица шаблонов, содержащая для каждого шаблона

Индекс шаблона

1...n

Ц

ТОС

Размерности матрицы шаблона

1...n

2Ц

ТОС

Матрица шаблона

0...n

nnЦ

ТОС

Число определенных представлений цвета

2...n

Ц

ТОС

Таблица цвета, содержащая в каждом элементе:

Индекс цвета

0...n

Ц

ТОС

Интенсивность цвета (красного, зеленого, синего)

[0., 1.]

3Д

ТОС

Состояние обновления преобразования станции

ЗАДЕРЖАНО,
НЕ ЗАДЕРЖАНО

П

НЕ ЗАДЕРЖАНО

Запрошенное окно станции

4Д (НК)

0., 1., 0., 1.

Текущее окно станции

4Д (НК)

0., 1., 0., 1.

Запрошенное поле вывода станции

4Д (КУ)

0., хd, 0., yd

Текущее поле вывода станции

4Д (КУ)

0., xd, 0., yd,


где (xd, yd) размер носителя изображения из ТОС

Кроме станций категорий ВЫВОД, ОПС, МВЫВОД и МВВОД

Для каждого логического устройства ВВОДА ПОЗИЦИИ должны существовать следующие поля:

Номер устройства

1...n

Ц

ТОС

Режим работы

ЗАПРОС, ОПРОС, СОБЫТИЕ

П

ЗАПРОС

Выключатель эха

ЭХО, БЕЗ ЭХА

П

ЭХО

Начальный номер преобразования нормирования

0...n

Ц

0

Начальная позиция

Т (МК)

ТОС

Тип подсказки и эха

-n...-1, 1...n

Ц

1

Область эха

4Д (КУ)

ТОС

Запись данных устройства ВВОДА ПОЗИЦИИ

О

з.р.

Для каждого логического устройства ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ должны существовать следующие поля:

Номер устройства

1...n

Ц

ТОС

Режим работы

ЗАПРОС, ОПРОС, СОБЫТИЕ

П

ЗАПРОС

Выключатель эха

ЭХО, БЕЗ ЭХА

П

ЭХО

Начальный номер преобразования нормирования

0...n

Ц

Неопр.

Начальное число позиций

0...n

Ц

0

Начальная последовательность позиций

nТ (МК)

Пусто

Тип подсказки и эха

-n...-1, 1...n

Ц

1

Область эха

4Д (КУ)

ТОС

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

Размер буфера входных данных

1...n

Ц

ТОС

Для каждого логического устройства ВВОДА ЧИСЛА должны существовать поля:

Номер устройства

1...n

Ц

ТОС

Режим работы

ЗАПРОС, ОПРОС, СОБЫТИЕ

П

ЗАПРОС

Выключатель эха

ЭХО, БЕЗ ЭХА

П

ЭХО

Начальное значение числа

Д

ТОС

Тип подсказки и эха

-n...-1, 1...n

Ц

1

Область эха

4Д (КУ)

ТОС

Запись данных устройства ВВОДА ЧИСЛА, содержащая, по крайней мере:

О

з.р.

Минимальное значение

Д

ТОС

Максимальное значение

Д

ТОС

Для каждого логического устройства ВЫБОРА должны существовать следующие поля:

Номер устройства

1...n

Ц

ТОС

Режим работы

ЗАПРОС, ОПРОС, СОБЫТИЕ

П

ЗАПРОС

Выключатель эха

ЭХО, БЕЗ ЭХА

П

ЭХО

Начальное состояние

ЕСТЬ, НЕТ ВЫБОРА

П

НЕТ ВЫБОРА

Начальный номер альтернативы

1...n

Ц

Неопр.

Тип подсказки и эха

-n...-1, 1...n

Ц

1

Область эха

4Д (КУ)

ТОС

Запись данных устройства ВЫБОРА

О

з.р.

Для каждого логического устройства УКАЗАНИЯ должны существовать следующие поля:

Номер устройства

1...n

Ц

ТОС

Режим работы

ЗАПРОС, ОПРОС СОБЫТИЕ

П

ЗАПРОС

Выключатель эха

ЭХО, БЕЗ ЭХА

П

ЭХО

Начальное состояние

ЕСТЬ,
НЕТ УКАЗАНИЯ

П

НЕТ УКАЗАНИЯ

Начальное имя сегмента

И

Неопр.

Начальный идентификатор указания

И

Неопр.

Тип подсказки и эха

-n...-1, 1...n

Ц

1

Область эха

4Д (КУ)

ТОС

Запись данных устройства УКАЗАНИЯ

О

з.р.

Для каждого логического устройства ВВОДА СТРОКИ должны существовать следующие поля:

Номер устройства

1...n

Ц

ТОС

Режим работы

ЗАПРОС, ОПРОС, СОБЫТИЕ

П

ЗАПРОС

Выключатель эха

ЭХО, БЕЗ ЭХА

П

ЭХО

Начальное значение строки

С

Неопр.

Тип подсказки и эха

-n...-1, 1...n

Ц

1

Область эха

4Д (КУ)

ТОС

Запись данных устройства ВВОДА СТРОКИ, содержащая, по крайней мере:

О

з.р.

Размер буфера входных данных

1...n

Ц

ТОС

Начальную позицию курсора

1...n

Ц

ТОС


4.6. Таблица описания станции

4.6.1. Имеются три категории специальных станций ЯГС:

ОПС - общая память сегментов;

МВЫВОД - вывод метафайла;

МВВОД - ввод метафайла.

В реализациях ЯГС уровней m, 0 и 1 нет станций категорий ОПС. В реализации уровня 2 должна быть одна станция категории ОПС.

4.6.2. Количество типов станций категорий МВЫВОД и МВВОД не ограничено.

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

Таблица 8


Таблица описания станции

Название

Допустимые значения

Тип данных (Система координат)

Начальное значение

Для всех категорий станций

Тип станции

И

з.р.

Категория станции

ВЫВОД, ВВОД, ВВОД-ВЫВОД, ОПС, МВЫВОД, МВВОД

П

з.р.

Кроме станций категорий ОПС, МВЫВОД, МВВОД

Единицы измерения координат устройства

Размер носителя изображения (рабочее поле носителя изображения или доступная для ввода данных область планшета станции ВВОД)

МЕТРЫ, ДРУГИЕ

П

з.р.

в координатах устройства

>0

2Д (КУ)

з.р.

в единицах растра

(для векторных устройств максимальное разрешение; для растровых - число столбцов и строк растра)

>0

2Ц

з.р.

Кроме станций категорий ВВОД, ОПС, МВЫВОД и МВВОД

Класс станции

ВЕКТОРНАЯ, РАСТРОВАЯ, ДРУГАЯ

П

з.р.

Способ динамической модификации для:

Представления связок ломаной

НПГ, НОИ

П

з.р.

Представления связок полимаркера

НПГ, НОИ

П

з.р.

Представления связок текста

НПГ, НОИ

П

з.р.

Представления связок полигональной области

НПГ, НОИ

П

з.р

Представления шаблонов

НПГ, НОИ

П

з.р

Представления цвета

НПГ, НОИ

П

з.р.

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

НПГ, НОИ

П

з.р.

где:

НПГ - неявная повторная генерация;

НОИ - немедленное обновление изображения

Значение момента обновления по умолчанию

БЫСТРО, ГЛОБ, ЛОК, ЛЮБОЙ

П

з.р.

Значение режима неявной повторной генерации по умолчанию

ЗАПРЕЩЕНА, РАЗРЕШЕНА

П

з.р.

Число доступных типов линий

4...n

Ц

з.р.

Список доступных типов линий

-n...-1, 1...n

nЦ

з.р.

Число доступных значений толщины линии

0...n

Ц

з.р.

Номинальное значение толщины линии

>0

Д (КУ)

з.р.

Минимальное значение толщины линии

>0

Д (КУ)

з.р.

Максимальное значение толщины линии

>0

Д (КУ)

з.р.

Число предопределенных связок ломаной

5...n

Ц

з.р.

Таблица предопределенных связок ломаной, содержащая в каждом элементе:

Тип линии

-n...-1, 1...n

Ц

з.р.

Масштаб толщины линии

Д

з.р.

Индекс цвета ломаной

0...n

Ц

з.р.

Число доступных типов маркеров

5...n

Ц

з.р.

Список доступных типов маркеров

-n...-1, 1...n

nЦ

з.р.

Число доступных размеров маркеров (см. прим.1)

0...n

Ц

з.р.

Номинальный размер маркера

>0

Д (КУ)

з.р.

Минимальный размер маркера

>0

Д (КУ)

з.р.

Максимальный размер маркера

>0

Д (КУ)

з.р.

Число предопределенных связок полимаркера

5...n

Ц

з.р.

Таблица предопределенных связок полимаркера, содержащая в каждом элементе:

Тип маркера

-n...-1, 1...n

Ц

з.р.

Масштаб маркера

Д

з.р.

Индекс цвета полимаркера

0...n

Ц

з.р.

Число пар шрифт-точность представлений текста

1...n

Ц

з.р.

Список пар шрифт-точность представления текста

-n...-1, 1...n;
ДО СТРОКИ,
ДО ЛИТЕРЫ,
ДО ШТРИХА

n(Ц; П)

з.р.

Число доступных масштабов расширения литеры

0...n

Ц

з.р.

Минимальный масштаб расширения литеры

>0

Д

з.р.

Максимальный масштаб расширения литеры

>0

Д

з.р.

Число доступных высот литер

0...n

Ц

з.р.

Минимальная высота литеры

>0

Д (КУ)

з.р.

Максимальная высота литеры

>0

Д (КУ)

з.р.

Число предопределенных связок текста

2...n

Ц

з.р.

Таблица предопределенных связок текста, содержащая в каждом элементе:

Шрифт и точность представления

-n...-1, 1...n;
ДО СТРОКИ,
ДО ЛИТЕРЫ,
ДО ШТРИХА

(Ц; П)

з.р.

Масштаб расширения литеры

>0

Д

з.р.

Межлитерный просвет

Д

з.р.

Индекс цвета текста

0...n

Ц

з.р.

Число доступных видов заполнения полигональных областей

1...4

Ц

з.р.

Список доступных видов заполнения полигональной области

ПУСТО, ЗАЛИВКА,
ПО ШАБЛОНУ, ШТРИХОВКА

nЦ

з.р.

Число доступных видов штриховки

0...n

Ц

з.р.

Список доступных видов штриховки

-n...-1, 1...n

Число предопределенных связок полигональной области

5...n

Ц

з.р.

Таблица предопределенных связок полигональной области, содержащая в каждом элементе:

Вид заполнения полигональной области

ПУСТО, ЗАЛИВКА,
ПО ШАБЛОНУ,
ШТРИХОВКА

П

з.р.

Индекс заполнителя полигональной области

-n...-1, 1...n

Ц

з.р.

Индекс цвета полигональной области

0...n

Ц

з.р.

Число предопределенных представлений шаблона

0...n

Ц

з.р.

Таблица предопределенных шаблонов, содержащая для каждого шаблона:

Размерности матрицы шаблона

1...n

2Ц

з.р.

Матрицу шаблона

0...n

nnЦ

з.р.

Число возможных значений индексов цвета

0, 2...n

Ц

з.р.

Наличие цвета

ЦВЕТНОЕ, МОНОХРОМНОЕ

П

з.р.

Число предопределенных представлений цвета

2...n

Ц

з.р.

Таблица предопределенных представлений цвета, содержащая в каждом элементе:

Представления с индексами 0 и 1 обязательны

Значения интенсивностей красного, зеленого и синего

[0., 1.]

3Д

з.р.

Число доступных обобщенных примитивов вывода

0...n

Ц

з.р.

Список доступных обобщенных примитивов вывода (может быть опущен), содержащий:

Идентификатор ОПВ

И

з.р.

Число используемых наборов атрибутов

0...4

Ц

з.р.

Список используемых наборов атрибутов

ЛОМАНАЯ, ПОЛИМАРКЕР, ТЕКСТ, ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ

nП

з.р.

Максимальное число связок ломаной

5...n

Ц

з.р.

Максимальное число связок полимаркера

5...n

Ц

з.р.

Максимальное число связок текста

2...n

Ц

з.р.

Максимальное число связок полигональной области

5...n

Ц

з.р.

Максимальное число индексов шаблона

0...n

Ц

з.р.

Максимальное число индексов цвета

2...n

Ц

з.р.

Число приоритетов сегментов

0...n

Ц

з.р.

Способ динамической модификации для:

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

НПГ, НОИ

П

з.р.

Изменения видимости:

"видимый" - "невидимый"

НПГ, НОИ

П

з.р.

"невидимый" - "видимый"

НПГ, НОИ

П

з.р.

Выделения сегмента

НПГ, НОИ

П

з.р.

Приоритета сегмента

НПГ, НОИ

П

з.р.

Добавления примитивов в открытый сегмент, перкрывающий сегмент с большим приоритетом

НПГ, НОИ

П

з.р.

Удаления сегмента

НПГ, НОИ

П

з.р.

где:

НПГ - требуется неявная повторная генерация;

НОИ - немедленное обновление изображения

Кроме станций категорий ВЫВОД, ОПС, MBЫВОД и MBВОД

Для каждого логического устройства ВВОДА ПОЗИЦИИ:

Номер устройства

1...n

Ц

з.р.

Начальная позиция по умолчанию

Т (МК)

з.р.

Число доступных типов подсказки и эха

1...n

Ц

з.р.

Список доступных типов подсказки и эха

-n...-1, 1...n

nЦ

з.р.

Область эха по умолчанию

4Д (КУ)

з.р.

Запись данных устройства ВВОДА ПОЗИЦИЙ по умолчанию

О

з.р.

Для каждого логического устройства ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ:

Номер устройства

1...n

Ц

з.р.

Максимальный размер буфера входных данных

64...n

Ц

з.р.

Число доступных типов подсказки и эха

1...n

Ц

з.р.

Список доступных типов подсказки и эха

-n...-1, 1...n

nЦ

з.р.

Область эха по умолчанию

4Д (КУ)

з.р.

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

О

з.р.

Размер буфера входных данных

1...n

Ц

з.р.

Для каждого логического устройства ВВОДА ЧИСЛА:

Номер устройства

1...n

Ц

з.р.

Начальное значение по умолчанию

Д

з.р.

Число доступных типов подсказки и эха

1...n

Ц

з.р.

Список доступных типов подсказки и эха

-n...-1, 1...n

nЦ

з.р.

Область эха по умолчанию

4Д (КУ)

з.р.

Запись данных устройства ВВОДА ЧИСЛА по умолчанию, содержащая, по крайней мере:

О

з.р.

Минимальное значение

Д

з.р.

Максимальное значение

Д

з.р.

Для каждого логического устройства ВЫБОРА:

Номер устройства

1...n

Ц

з.р.

Максимальное число альтернатив

1...n

Ц

з.р.

Число доступных типов подсказки и эха

1...n

Ц

з.р.

Список доступных типов подсказки и эха

-n...-1, 1...n

nЦ

з.р.

Область эха по умолчанию

4Д (КУ)

з.р.

Запись данных устройства ВЫБОРА по умолчанию для каждого логического устройства УКАЗАНИЯ:

О

з.р.

Номер устройства

1...n

Ц

з.р.

Число доступных типов подсказки и эха

1...n

Ц

з.р.

Список доступных типов подсказки и эха

-n...-1, 1...n

nЦ

з.р.

Область эха по умолчанию

4Д (КУ)

з.р.

Запись данных устройства УКАЗАНИЯ по умолчанию

О

з.р.

Для каждого логического устройства ВВОДА СТРОКИ:

Номер устройства

1...n

Ц

з.р.

Максимальный размер буфера входных данных

72...n

Ц

з.р.

Число доступных типов подсказки и эха

1...n

Ц

з.р.

Список доступных типов подсказки и эха

-n...-1, 1...n

nЦ

з.р.

Область эха по умолчанию

4Д (КУ)

з.р.

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

О

з.р.

Размер буфера входных данных

1...n

Ц

з.р.

Начальную позицию курсора

1...n

Ц

з.р.

Примечания:

1. Если станция обеспечивает непрерывный диапазон соответствующих значений, то поле принимает значение 0.

2. В диапазоне предварительно определенных индексов цвета.

3. Если этот параметр различен для различных шрифтов, указывается значение для шрифта 1.

4. Для вида заполнения ПО ШАБЛОНУ значение должно находиться в диапазоне предварительно определенных индексов шаблонов. Для вида заполнения ШТРИХОВКА - в диапазоне доступных видов штриховки.

4.7. Таблица состояния сегмента

Состояния сегмента описаны в табл.9.

Таблица 9

Название поля

Допустимые значения

Тип данных

Начальное значение

Имя сегмента

И

Набор связанных с сегментом станций

nИ

Активные станции в момент создания сегмента

Матрица преобразования сегмента

23Д

М13, М23 - в НК, остальные - безразмерные

1., 0., 0., 0., 1., 0.

Видимость

ВИДИМЫЙ, НЕВИДИМЫЙ

П

ВИДИМЫЙ

Выделение

ВЫДЕЛЕННЫЙ, НЕВЫДЕЛЕННЫЙ

П

НЕВЫДЕЛЕННЫЙ

Приоритет сегмента

[0., 1.]

Д

0.

Чувствительность к указанию

УКАЗЫВАЕМЫЙ, НЕУКАЗЫВАЕМЫЙ

П

НЕУКАЗЫВАЕМЫЙ


4.8. Таблица ошибочных состояний ЯГС (табл.10)


Таблица 10

Название поля

Допустимые значения

Тип данных (Система координат)

Начальное значение

Состояние ошибки

ЕСТЬ, НЕТ

П

НЕТ

Файл ошибок

И

з.р.

Идентификатор устройства ввода, вызвавшего переполнение очереди событий:

Идентификатор станции

И

Неопр.

Класс устройства ввода

ВВОД ПОЗИЦИИ, ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ, ВВОД ЧИСЛА, ВЫБОР, УКАЗАНИЕ, ВВОД СТРОКИ

П

Неопр.

Номер устройства ввода

1...n

Ц

Неопр.



ПРИЛОЖЕНИЕ 1
Обязательное


ТЕРМИНЫ, ПРИМЕНЯЕМЫЕ В НАСТОЯЩЕМ СТАНДАРТЕ, И ИХ ПОЯСНЕНИЯ


Таблица 11

Термин

Пояснение

Атрибут

Attribute

Характеристика примитива вывода или сегмента, например выделение, межлитерный просвет.

Примечание. В ЯГС некоторые свойства станций называются атрибутами станции

Атрибут сегмента

Segment attributes

Атрибуты, которые применяются только к сегментам. В ЯГС атрибутами сегментов являются видимость, выделение, обнаруживаемость, приоритет сегмента и преобразование сегмента

Выделение

Highlighting

По СТ СЭВ 5712-86

Графическая рабочая станция

Workstation

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

Драйвер устройства

Device driver

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

Значение выходных данных

Logical input value

Значение, предоставляемое логическим устройством ввода

Идентификатор указания

Pick identifier

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

Измерение

Measure

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

Изображение

Display space

По СТ СЭВ 5712-86

Индекс связки

Bundle index

Индекс элемента в таблице связок для некоторого примитива вывода. Он определяет характеристики примитива, зависящие от станции

Класс устройств ввода

Input class

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

Координатная графика

Coordinate graphics;

Line graphics

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

Координата устройства (КУ)

Device coordinate (DC)

По СТ СЭВ 5712-86.

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

Линия заглавной

Capline

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

Линия основания

Baseline

Горизонтальная линия внутри прямоугольника литеры (черт.3), которая для большинства литер является нижней границей области вычерчивания. Нижняя граница прямоугольника литеры проходит ниже линии основания. Все линии основания в шрифте находятся на одной и той же высоте в прямоугольнике литеры для всех литер

Линия середины

Halfline

Горизонтальная линия, находящаяся между линией основания и линией заглавной внутри прямоугольника литеры (черт.3), вдоль которой горизонтальная строка литер в шрифте должна казаться размещенной по середине в вертикальном направлении. Все линии середины в шрифте находятся на одной и той же высоте в прямоугольнике литеры

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

Logical input device

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

Ломаная

Polyline

Примитив вывода ЯГС, состоящий из набора связанных линий

Маркер

Marker

По СТ СЭВ 5712-86

Матрица ячеек

Cell array

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

Примечание. Эти ячейки обязательно должны отображаться на растры один к одному

Масштабирование

Scalling; zooming

По СТ СЭВ 5712-86

МВВОД

Mi

Аббревиатура метафайла ввода ЯГС; категория станции

МВЫВОД

М

Метафайл ЯГС (МЯГС)

Аббревиатура метафайла вывода ЯГС; категория станции

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

Мировая координата

Word coordinate

По СТ СЭВ 5712-86

Носитель изображения

Display surface

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

Пример: экран электронно-лучевой трубки; бумага в графопостроителе

Нормированная координата (НК)

Normalized device coordinates (NDC)

По СТ СЭВ 5712-86.

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

Обобщенный примитив вывода (ОПВ)

Generalized Drawing Primitive (GDP)

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

Общая память сегментов (ОПС)

Workstantion Independent Segment Storage (WISS)

Станция специального типа для запоминания сегментов и последующего их перемещения на другие станции

Окно

Window

По СТ СЭВ 5712-86

Окно станции

Workstation window

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

Оператор

Operator

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

Подтверждение

Acknowledgement

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

Отклик

Feedback

Ввод, оповещающий оператора, каким образом прикладная программа интерпретировала значение логического ввода

Отсечение

Clipping

По СТ СЭВ 5712-86

Память сегментов станции (ПСС)

Workstation Dependent Segment Storage (WDSS)

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

Перенос

Translation shift

По СТ СЭВ 5712-86

Пиксель

Pixel

Pichure element

По СТ СЭВ 5712-86

Подсказка

Promt

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

Поворот

Rotation

По СТ СЭВ 5712-86

Поле вывода

Viewport

По СТ СЭВ 5712-86

Поле вывода станции

Workstantion viewport

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

Полигональная область

Fill area

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

Полимаркер

Polimarker

Примитив вывода ЯГС, состоящий из набора позиций, которые должны быть обозначены маркером

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

Normalization

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

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

Segment transformation

Преобразование, результатом которого является изменение на носителе изображения положения (перенос), размера (масштабирование) и/или ориентации (поворот)

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

Workstation transformation

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

Примитив вывода

Output primitive, grafic primitive, display element

По СТ СЭВ 5712-86

Приоритет сегмента

Segment priority

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

Пространство устройства

Device space

1) Часть физического пространства устройства, соответствующая области, допустимой для вывода изображения. 2) Рабочая область таких устройств ввода как планшет-сколка

Область литеры

Charecter body

Прямоугольник, задаваемый разработчиком шрифта для определения размеров представления литеры (черт.3). Все области литер имеют одну и ту же высоту

Растровая графика

Raster graphics

По СТ СЭВ 5712-86

Расширение

Escape

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

Таблица связок

Bundle table

Зависимая от станции таблица, связанная с примитивами вывода данного типа. Элементы таблицы (связки) описывают все зависимые характеристики представления примитивов на станции. В ЯГС таблицы связок существуют для следующих примитивов вывода: ломаной, полимаркера, текста и полигональной области

Таблица связок ломаной

Polyline bundle table

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

Таблица связок полигональной области

Fill area bundle table

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

Таблица связок полимаркера

Polymarker bundle table

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

Таблица связок текста

Text bundle table

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

Устройство ввода последовательности позиций

String device

По СТ СЭВ 5712-86

Устройство ввода строки

Valuter device

Логическое устройство ввода ЯГС, предоставляющее строку литер

Устройство ввода чисел

Valuter device

По СТ СЭВ 5712-86

Устройство графического ввода

Display device

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

Устройство выбора

Choice device

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

Устройство указания

Pick device

Логическое устройство ввода ЯГС, предоставляющее индентификатор указания примитива вывода и имя соответствующего сегмента

Сегмент

Segment

По СТ СЭВ 5712-86

Справочная функция

Inquiry function

Функция ЯГС для выдачи значений, зависящих от текущего состояния ЯГС или других заданных свойств реализации ЯГС. Они не оказывают никакого влияния на состояние ЯГС или изображения

Таблица цвета

Colour table

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

Текст

Text

Примитив вывода ЯГС, состоящий из последовательности литер

Требования к реализации

Implementation mandatory

Требования к реализации определяют свойства, которые должны быть реализованы одинаково на всех станциях для всех реализаций ЯГС

Требования к свойствам станции

Workstation mandatory

Требования к свойствам станции описывают свойства, которые должны быть реализованы одинаково на всех станциях реализации ЯГС

Уровень ЯГС

GKS level

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

Фиксатор

Trigger

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

Характеристическое отношение

Aspect ratio

Отношение Х и Y, используется для описания вида прямоугольника в некоторых координатных системах (например окна станции или поля вывода станции)

Характеристика примитива

Aspect of primitives

Способ изменения вида примитива. Некоторые характеристики задаются непосредственно атрибутами примитива, другие - посредством таблиц связок. Примитивы, входящие в состав сегментов, имеют характеристики, общие для всех примитивов в сегменте. Управление характеристикой примитива в этом случае осуществляется на уровне сегмента. Примером такой характеристики является выделение. Примитивы, не входящие в состав сегментов, не имеют общих характеристик

Шрифт и точность текста

Texst font and precision

Атрибут текста в ЯГС, имеющий две компоненты: шрифт и точность, которые вместе определяют вид представления литеры при выводе на конкретную станцию. Точность определяет требования к другим атрибутам текста, выдвигаемым прикладными программами

Центральная линия

Centreline

Вертикальная линия, которая делит прямоугольник литеры пополам

Штриховка

Hatch

Один из возможных методов заполнения многоугольника, определенного как примитив - ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ. Внутренность заполнения одним или несколькими наборами параллельных линий

Эхо

Echo

По СТ СЭВ 5712-86



ПРИЛОЖЕНИЕ 2
Обязательное


НЕКОТОРЫЕ АСПЕКТЫ ПРОЕКТИРОВАНИЯ ЯГС

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

2. Основными целями стандартизации в области базисной машинной графики являются следующие:

1) достижение простоты переносимости прикладных программ, использующих машинную графику, с одной вычислительной установки на другую;

2) оказание помощи прикладным программистам в освоении и использовании графических методов;

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

Для достижения этих целей проектирование ЯГС базировалось на следующих требованиях:

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

б) разнообразные графические устройства, включая векторные и растровые устройства, устройства вывода на микрофильм, устройства отображения на ЭЛТ с запоминанием, векторные и цветные устройства отображения, должны быть управляемыми с помощью ЯГС унифицированным способом;

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

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

1) задачи проектирования. Следующие принципы не должны нарушаться техническим проектированием ЯГС:

целостность. Обязательные требования ЯГС не должны быть взаимно противоречивыми;

совместимость. Другие структуры или общепринятые практические правила не должны нарушаться;

ортогональность. Функции или модули ЯГС должны быть независимыми друг от друга или зависимость должна быть сконструирована и хорошо определена;

2) функциональные возможности. Для определения области действия ЯГС использовались следующие принципы:

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

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

компактность. Желаемый результат должен достигаться с помощью минимального набора функций и параметров;

многообразие. Богатый набор функций представляет обширный диапазон средств, который простирается на базисные функции и включает возможности более высокого порядка.

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

3) проектирование интерфейса с пользователем. Следующие принципы использовались для проектирования интерфейса с пользователем:

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

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

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

Ясность и обработка ошибок являются существенной частью облегчения работы пользователя.

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

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

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

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

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

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

5) реализация. Последняя группа принципов относится к реализации ЯГС:

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

независимость от языков программирования. Должна существовать возможность доступа к стандартным средствам ЯГС из всех стандартных языков программирования;

эффективность. Должна существовать возможность реализации стандарта без алгоритмов, расходующих много времени;

психологические аспекты. Оператор и прикладной программист должны быть защищены всеми возможными способами от аппаратных и программных сбоев системы.

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

ПРИЛОЖЕНИЕ 3
Справочное


СПИСКИ ФУНКЦИЙ

1. Список функций, упорядоченных по латинскому алфавиту

ACCUMULATE TRANSFORMATION MATRIX

ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ

ACTIVATE WORKSTATION

АКТИВИРОВАТЬ СТАНЦИЮ

ASSOCIATE SEGMENT WITHWORKSTATION

СВЯЗАТЬ СЕГМЕНТ СО СТАНЦИЕЙ

AWAIT EVENT

ОЖИДАТЬ СОБЫТИЕ

CELL ARRAY

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

CLEAR WORKSTATION

ОЧИСТИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ

CLOSE GKS

ЗАКРЫТЬ ЯГС

CLOSE SEGMENT

ЗАКРЫТЬ СЕГМЕНТ

CLOSE WORKSTATION

ЗАКРЫТЬ СТАНЦИЮ

COPY SEGMENT TO WORKSTATION

ВЫВЕСТИ КОПИЮ СЕГМЕНТА НА СТАНЦИЮ

CREATE SEGMENT

СОЗДАТЬ СЕГМЕНТ

DEACTIVATE WORKSTATION

ДЕАКТИВИРОВАТЬ СТАНЦИЮ

DELETE SEGMENT

УНИЧТОЖИТЬ СЕГМЕНТ

DELETE SEGMENT FROM WORKSTATION

УДАЛИТЬ СЕГМЕНТ СО СТАНЦИИ

EMERGENCY CLOSE GKS

АВАРИЙНО ЗАКРЫТЬ ЯГС

ERROR HANDLING

ОБРАБОТАТЬ ОШИБКУ

ERROR LOGGING

ЗАРЕГИСТРИРОВАТЬ ОШИБКУ

ESCAPE

РАСШИРЕНИЕ

EVALUATE TRANSFORMATION MATRIX

СФОРМИРОВАТЬ МАТРИЦУ ПРЕОБРАЗОВАНИЙ

FILL AREA

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

FLUSH DEVICE EVENTS

УДАЛИТЬ СОБЫТИЯ ОТ УСТРОЙСТВА

GENERALISED DRAWING PRIMITIVE (GDP)

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

GET CHOICE

ПОЛУЧИТЬ АЛЬТЕРНАТИВУ

GET ITEAM TYPE FROM GKSM

ПОЛУЧИТЬ ТИП ЗАПИСИ ИЗ МЯГС

GET LOCATOR

ПОЛУЧИТЬ ПОЗИЦИЮ

GET PICK

ПОЛУЧИТЬ УКАЗАТЕЛЬ

GET STRING

ПОЛУЧИТЬ СТРОКУ

GET STROKE

ПОЛУЧИТЬ ПОСЛЕДОВАТЕЛЬНОСТЬ ПОЗИЦИЙ

GET VALUATOR

ПОЛУЧИТЬ ЧИСЛО

INITILISE CHOICE

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВЫБОРА

INITIALISE LOCATOR

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ

INITIALISE PICK

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО УКАЗАНИЯ

INITIALISE STRING

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА СТРОКИ

INITIALISE STROKE

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

INITIALISE VALUATOR

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ЧИСЛА

INQUIRE СНОСЕ DEVICE STATE

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВЫБОРА

INQUIRE CLIPPING

УЗНАТЬ ЗНАЧЕНИЯ ОТСЕЧЕНИЯ

INQUIRE COLOUR FACILITIES

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ЦВЕТА

INQUIRE COLOUR REPRESENTATION

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА

INQUIRE CURRENT INDIVIDUAL ATTRIBUTE VALUES

УЗНАТЬ ТЕКУЩИЕ ЗНАЧЕНИЯ ИНДИВИДУАЛЬНЫХ АТРИБУТОВ

INQUIRE CURRENT NORMALIZATION TRANSFORMATION NUMBER

УЗНАТЬ НОМЕР ТЕКУЩЕГО ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ

INQUIRE CURRENT PICK IDENTIFIER VALUE

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

INQUIRE CURRENT PRIMITIVE ATTRIBUTE VALUES

УЗНАТЬ ТЕКУЩИЕ ЗНАЧЕНИЯ АТРИБУТОВ ПРИМИТИВОВ

INQUIRE DEFAULT CHOICE DEVICE DATA

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВЫБОРА

INQUIRE DEFAULT DEFERRAL STATE VALUES

УЗНАТЬ РЕЖИМ ЗАДЕРЖКИ ПО УМОЛЧАНИЮ

INQUIRE DEFAULT LOCATOR DEVICE DATA

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ПОЗИЦИИ

INQUIRE DEFAULT PICK DEVICE DATA

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА УКАЗАНИЯ

INQUIRE DEFAULT STRING DEVICE DATA

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА СТРОКИ

INQUIRE DEFAULT STROKE DEVICE DATA

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

INQUIRE DEFAULT VALUATOR DEVICE DATA

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ЧИСЛА

INQUIRE DYNAMIC MODIFICATION OF SEGMENT ATTRIBUTES

УЗНАТЬ СПОСОБ ДИНАМИЧЕСКОЙ МОДИФИКАЦИИ АТРИБУТОВ СЕГМЕНТОВ

INQUIRE DYNAMIC MODIFICATION OF WORKSTATION ATTRIBUTES

УЗНАТЬ СПОСОБ ДИНАМИЧЕСКОГО ОБНОВЛЕНИЯ ХАРАКТЕРИСТИК ИЗОБРАЖЕНИЯ НА СТАНЦИИ

INQUIRE FILL AREA FACILITIES

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ

INQUIRE FILL AREA REPRESENTATION

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

INQUIRE GENERALIZED DRAWING PRIMITIVE

УЗНАТЬ ХАРАКТЕРИСТИКИ ОБОБЩЕННОГО ПРИМИТИВА ВЫВОДА

INQUIRE INPUT QUEUE OVERFLOW

УЗНАТЬ НАЛИЧИЕ ПЕРЕПОЛНЕНИЯ ОЧЕРЕДИ СОБЫТИЙ

INQUIRE LEVEL OF GKS

УЗНАТЬ УРОВЕНЬ ЯГС

INQUIRE LIST OF AVAILABLE GENERALIZED DRAWING PRIMITIVES

УЗНАТЬ ИДЕНТИФИКАТОРЫ ДОСТУПНЫХ ОБОБЩЕННЫХ ПРИМИТИВОВ ВЫВОДА

INQUIRE LIST OF AVAILABLE WORKSTATION TYPES

УЗНАТЬ ДОСТУПНЫЕ ТИПЫ СТАНЦИЙ

INQUIRE LIST OF COLOUR INDICES

УЗНАТЬ ИНДЕКСЫ ЦВЕТА

INQUIRE LIST OF FILL AREA INDICES

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

INQUIRE LIST OF NORMALIZATION TRANSFORMATION NUMBERS

УЗНАТЬ СПИСОК ПРЕОБРАЗОВАНИЙ НОРМИРОВАНИЯ

INQUIRE LIST OF PATTEN INDICES

УЗНАТЬ ИНДЕКСЫ ШАБЛОНА

INQUIRE LIST OF POLYLINE INDICES

УЗНАТЬ ИНДЕКСЫ ЛОМАНОЙ

INQUIRE LIST OF POLYMARKER INDICES

УЗНАТЬ ИНДЕКСЫ ПОЛИМАРКЕРА

INQUIRE LIST OF TEXT INDICES

УЗНАТЬ ИНДЕКСЫ ТЕКСТА

INQUIRE LOCATOR DEVICE STATE

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ПОЗИЦИИ

INQUIRE DISPLAY SPACE SIZE

УЗНАТЬ РАЗМЕР НОСИТЕЛЯ ИЗОБРАЖЕНИЯ

INQUIRE MAXIMUM LENGTH OF WORKSTATION STATE TABLES

УЗНАТЬ ДЛИНУ ТАБЛИЦ, ХАРАКТЕРИЗУЮЩИХ СТАНЦИЮ

INQUIRE MAXIMUM NORMALIZATION TRANSFORMATION NUMBER

УЗНАТЬ МАКСИМАЛЬНЫЙ НОМЕР ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ

INQUIRE MORE SIMULTANEOUSE EVENTS

УЗНАТЬ НАЛИЧИЕ ОДНОВРЕМЕННЫХ СОБЫТИЙ

INQUIRE NAME OF OPEN SEGMENT

УЗНАТЬ ИМЯ ОТКРЫТОГО СЕГМЕНТА

INQUIRE NORMALIZATION TRANSFORMATION

УЗНАТЬ ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ

INQUIRE NUMBER OF AVAILABLE LOGICAL INPUT DEVICES

УЗНАТЬ КОЛИЧЕСТВО ДОПУСТИМЫХ УСТРОЙСТВ ВВОДА

INQUIRE NUMBER OF SEGMENT PRIORITIES SUPPORTED

УЗНАТЬ ДОПУСТИМОЕ ЧИСЛО ПРИОРИТЕТОВ СЕГМЕНТОВ

INQUIRE OPERATIG STATE VALUE

УЗНАТЬ ФУНКЦИОНАЛЬНОЕ СОСТОЯНИЕ

INQUIRE PATTERN FACILITIES

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ШАБЛОНА

INQUIRE PATTERN REPREZANTATION

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА

INQUIRE PICK DEVICE STATE

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА УКАЗАНИЯ

INQUIRE PIXEL

УЗНАТЬ ХАРАКТЕРИСТИКУ МАТРИЦЫ ПИКСЕЛЕЙ

INQUIRE PIXEL ARRAY

УЗНАТЬ ХАРАКТЕРИСТИКИ МАТРИЦЫ ПИКСЕЛЕЙ

INQUIRE PIXEL ARRAY DIMENSIONS

УЗНАТЬ РАЗМЕРНОСТЬ МАТРИЦЫ ПИКСЕЛЕЙ

INQUIRE POLYLINE FACILITIES

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ЛОМАНОЙ

INQUIRE POLYLINE REPRESENTATION

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ

INQUIRE POLYMARKER FACILITIES

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ПОЛИМАРКЕРА

INQUIRE POLYMARKER REPRESENTATION

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА

INQUIRE PREDEFINED COLOUR REPRESENTATION

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА ПО УМОЛЧАНИЮ

INQUIRE PREDEFINED FILL AREA REPRESENTATION

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ ПО УМОЛЧАНИЮ

INQUIRE PREDEFINED PATTERN REPRESENTATION

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА ПО УМОЛЧАНИЮ

INQUIRE PREDEFINED POLYLINE REPRESENTATION

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ ПО УМОЛЧАНИЮ

INQUIRE PREDEFINED POLYMARKER REPRESENTATION

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА ПО УМОЛЧАНИЮ

INQUIRE PREDEFINE TEXT REPRESENTATION

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА ПО УМОЛЧАНИЮ

INQUIRE SEGMENT ATTRIBUTES

УЗНАТЬ АТРИБУТЫ СЕГМЕНТА

INQUIRE SET OF ACTIVE WORKSTATIONS

УЗНАТЬ НАБОР АКТИВНЫХ СТАНЦИЙ

INQUIRE SET OF ASSOSIATED WORKSTATIONS

УЗНАТЬ СТАНЦИИ, СВЯЗАННЫЕ С СЕГМЕНТОМ

INQUIRE SET OF OPEN WORKSTATIONS

УЗНАТЬ НАБОР ОТКРЫТЫХ СТАНЦИЙ

INQUIRE SET OF SEGMENT NAMES IN USE

УЗНАТЬ ИМЕНА СУЩЕСТВУЮЩИХ СЕГМЕНТОВ

INQUIRE SET OF SEGMENT NAMES ON WORKSTATION

УЗНАТЬ ИМЕНА СЕГМЕНТОВ, ХРАНИМЫХ НА СТАНЦИИ

INQUIRE STRING DEVICE STATE

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА СТРОКИ

INQUIRE STROKE DEVICE STATE

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

INQUIRE TEXT EXTENT

УЗНАТЬ ГАБАРИТЫ ТЕКСТА

INQUIRE TEXT FACILITIES

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ТЕКСТА

INQUIRE TEXT REPRESENTATION

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА

INQUIRE VALUATOR DEVICE STATE

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ЧИСЛА

INQUIRE WORKSTATION CATEGORY

УЗНАТЬ КАТЕГОРИЮ СТАНЦИИ

INQUIRE WORKSTATION CLASSIFICATION

УЗНАТЬ КЛАСС СТАНЦИИ

INQUIRE WORKSTATION CONNECTION AND TYPE

УЗНАТЬ ТИП И ИДЕНТИФИКАТОР СВЯЗИ СТАНЦИИ

INQUIRE WORKSTATION DEFERRAL AND UPDATE STATES

УЗНАТЬ РЕЖИМЫ ЗАДЕРЖКИ И ОБНОВЛЕНИЯ СТАНЦИИ

INQUIRE WORKSTATION MAXIMUM NUMBERS

УЗНАТЬ ДОПУСТИМЫЕ КОЛИЧЕСТВА СТАНЦИЙ

INQUIRE WORKSTATION STATE

УЗНАТЬ СОСТОЯНИЕ СТАНЦИИ

INQUIRE WORKSTATION TRANSFORMATION

УЗНАТЬ ПРЕОБРАЗОВАНИЕ СТАНЦИИ

INSERT SEGMENT

ВСТАВИТЬ СЕГМЕНТ

INTERPRET ITEM

ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ

MESSAGE

СООБЩЕНИЕ

OPEN GKS

ОТКРЫТЬ ЯГС

OPEN WORKSTATION

ОТКРЫТЬ СТАНЦИЮ

POLYLINE

ЛОМАНАЯ

POLYMARKER

ПОЛИМАРКЕР

READ ITEM FROM GKSM

ПРОЧИТАТЬ ЗАПИСЬ ИЗ МЯГС

REDRAW ALL SEGMENTS ON WORKSTATION

ПЕРЕРИСОВАТЬ ВСЕ СЕГМЕНТЫ НА СТАНЦИИ

RENAME SEGMENT

ПЕРЕИМЕНОВАТЬ СЕГМЕНТ

REQUEST CHOICE

ЗАПРОСИТЬ УСТРОЙСТВО ВЫБОРА

REQUEST LOCATOR

ЗАПРОСИТЬ ВВОД ПОЗИЦИИ

REQUEST PICK

ЗАПРОСИТЬ УКАЗАНИЯ

REQUEST STRING

ЗАПРОСИТЬ ВВОД СТРОКИ

REQUEST STROKE

ЗАПРОСИТЬ ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

REQUEST VALUATOR

ЗАПРОСИТЬ ВВОД ЧИСЛА

SAMPLE CHOICE

ОПРОСИТЬ ВЫБОР

SAMPLE LOCATOR

ОПРОСИТЬ ВВОД ПОЗИЦИИ

SAMPLE PICK

ОПРОСИТЬ УКАЗАНИЕ

SAMPLE STRING

ОПРОСИТЬ ВВОД СТРОКИ

SAMPLE STROKE

ОПРОСИТЬ ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

SAMPLE VALUATOR

ОПРОСИТЬ ВВОД ЧИСЛА

SELECT NORMALIZATION TRANSFORMATION

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ

SET ASPECT SOURSE FLAGS

ЗАДАТЬ ФЛАГИ ВЫБОРКИ АТРИБУТОВ

SET CHARACTER EXPANSION FACTOR

ЗАДАТЬ МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ

SET CHARACTER HEIGHT

ЗАДАТЬ ВЫСОТУ ЛИТЕР

SET CHARACTER SPACING

ЗАДАТЬ МЕЖЛИТЕРНЫЙ ПРОСВЕТ

SET CHARACTER UP VECTOR

ЗАДАТЬ ВЕРТИКАЛЬ ЛИТЕРЫ

SET CHOICE MODE

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВЫБОРА

SET CLIPPING INDICATOR

ЗАДАТЬ ИНДИКАТОР ОТСЕЧЕНИЯ

SET COLOUR REPRESENTATION

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА

SET DEFERRAL STATE

ЗАДАТЬ РЕЖИМ ЗАДЕРЖКИ

SET DETECTABILITY

ЗАДАТЬ ЧУВСТВИТЕЛЬНОСТЬ К УКАЗАНИЮ

SET FILL AREA COLOUR INDEX

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

SET FILL AREA INDEX

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

SET FILL AREA INTERIOR STYLE

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

SET FILL AREA REPRESENTATION

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

SET FILL AREA STYLE INDEX

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

SET HIGHLIGHTING

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

SET LINTYPE

ЗАДАТЬ ТИП ЛИНИЙ

SET LINEWIDTH SCALE FACTOR

ЗАДАТЬ МАСШТАБ ТОЛЩИНЫ ЛИНИИ

SET LOCATOR MODE

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОЗИЦИИ

SET MARKER SIZE SCALE FACTOR

ЗАДАТЬ МАСШТАБ МАРКЕРА

SET MARKER TYPE

ЗАДАТЬ ТИП МАРКЕРА

SET PATTERN REFERENCE POINT

ЗАДАТЬ ТОЧКУ ПРИВЯЗКИ ШАБЛОНА

SET PATTERN REPRESENTATION

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА

SET PATTERN SIZE

ЗАДАТЬ РАЗМЕР ШАБЛОНА

SET PICK IDENTIFIER

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

SET PICK MODE

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА УКАЗАНИЯ

SET POLYLINE COLOUR INDEX

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

SET POLYLINE INDEX

ЗАДАТЬ ИНДЕКС ЛОМАНОЙ

SET POLYLINE REPRESENTATION

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ

SET POLYMARKER COLOUR INDEX

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

SET POLYMARKER INDEX

ЗАДАТЬ ИНДЕКС ПОЛИМАРКЕРА

SET POLYMARKER REPRESENTATION

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА

SET SEGMENT PRIORITY

ЗАДАТЬ ПРИОРИТЕТ СЕГМЕНТА

SET SEGMENT TRANSFORMATION

ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА

SET STRING MODE

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА СТРОКИ

SET STROKE MODE

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

SET TEXT ALIGMENT

ЗАДАТЬ ВЫРАВНИВАНИЕ ТЕКСТА

SET TEXT COLOUR INDEX

ЗАДАТЬ ИНДЕКС ЦВЕТА ТЕКСТА

SET TEXT FONT AND PRECISION

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

SET TEXT INDEX

ЗАДАТЬ ИНДЕКС ТЕКСТА

SET TEXT PATH

ЗАДАТЬ НАПРАВЛЕНИЕ ТЕКСТА

SET TEXT REPRESENTATION

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА

SET VALUATOR MODE

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ЧИСЛА

SET VIEWPORT

ЗАДАТЬ ПОЛЕ ВЫВОДА

SET VIEWPORT INPUT PRIORITY

ЗАДАТЬ ПРИОРИТЕТ ПОЛЯ ВЫВОДА ПРИ ВВОДЕ

SET VISIBILITY

ЗАДАТЬ ВИДИМОСТЬ

SET WINDOW

ЗАДАТЬ ОКНО

SET WORKSTATION VIEWPORT

ЗАДАТЬ ПОЛЕ ВЫВОДА СТАНЦИИ

SET WORKSTATION WINDOW

ЗАДАТЬ ОКНО СТАНЦИИ

TEXT

ТЕКСТ

UPDATE WORKSTATION

ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ

WRITE ITEM TO GKSM

ЗАПИСЬ В МЕТАФАЙЛ

2. Список функций, упорядоченных по русскому алфавиту

АВАРИЙНО ЗАКРЫТЬ ЯГС

АКТИВИРОВАТЬ СТАНЦИЮ

ВСТАВИТЬ СЕГМЕНТ

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ

ВЫВЕСТИ КОПИЮ СЕГМЕНТА НА СТАНЦИЮ

ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ

ДЕАКТИВИЗИРОВАТЬ СТАНЦИЮ

ЗАДАТЬ ВЕРТИКАЛЬ ЛИТЕРЫ

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

ЗАДАТЬ ВИДИМОСТЬ

ЗАДАТЬ ВЫСОТУ ЛИТЕРЫ

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

ЗАДАТЬ ВЫРАВНИВАНИЕ ТЕКСТА

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

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

ЗАДАТЬ ИНДЕКС ЛОМАНОЙ

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

ЗАДАТЬ ИНДЕКС ПОЛИМАРКЕРА

ЗАДАТЬ ИНДЕКС ТЕКСТА

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

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

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

ЗАДАТЬ ИНДЕКС ЦВЕТА ТЕКСТА

ЗАДАТЬ ИНДИКАТОР ОТСЕЧЕНИЯ

ЗАДАТЬ МАСШТАБ МАРКЕРА

ЗАДАТЬ МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ

ЗАДАТЬ МАСШТАБ ТОЛЩИНЫ ЛИНИИ

ЗАДАТЬ МЕЖЛИТЕРНЫЙ ПРОСВЕТ

ЗАДАТЬ НАПРАВЛЕНИЕ ТЕКСТА

ЗАДАТЬ ОКНО

ЗАДАТЬ ОКНО СТАНЦИИ

ЗАДАТЬ ПОЛЕ ВЫВОДА СТАНЦИИ

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА

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

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА

ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА

ЗАДАТЬ ПРИОРИТЕТ ПОЛЯ ВЫВОДА ПРИ ВВОДЕ

ЗАДАТЬ ПРИОРИТЕТ СЕГМЕНТА

ЗАДАТЬ РАЗМЕР ШАБЛОНА

ЗАДАТЬ РЕЖИМ ЗАДЕРЖКИ

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВЫБОРА

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОЗИЦИИ

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА СТРОКИ

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ЧИСЛА

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА УКАЗАНИЯ

ЗАДАТЬ ТИП ЛИНИЙ

ЗАДАТЬ ТИП МАРКЕРА

ЗАДАТЬ ТОЧКУ ПРИВЯЗКИ ШАБЛОНА

ЗАДАТЬ ФЛАГИ ВЫБОРКИ АТРИБУТОВ

ЗАДАТЬ ЧУВСТВИТЕЛЬНОСТЬ К УКАЗАНИЮ

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

ЗАКРЫТЬ СЕГМЕНТ

ЗАКРЫТЬ СТАНЦИЮ

ЗАКРЫТЬ ЯГС

ЗАПИСАТЬ В МЕТАФАЙЛ

ЗАПРОСИТЬ ВВОД ПОЗИЦИИ

ЗАПРОСИТЬ ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

ЗАПРОСИТЬ ВВОД ЧИСЛА

ЗАПРОСИТЬ ВЫБОР

ЗАПРОСИТЬ УКАЗАНИЕ

ЗАПРОСИТЬ ВВОД СТРОКИ

ЗАРЕГИСТРИРОВАТЬ ОШИБКУ

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА СТРОКИ

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ЧИСЛА

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВЫБОРА

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО УКАЗАНИЯ

ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ

ЛОМАНАЯ

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

ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ

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

ОЖИДАТЬ СОБЫТИЕ

ОБРАБОТАТЬ ОШИБКУ

ОТКРЫТЬ СТАНЦИЮ

ОТКРЫТЬ ЯГС

ОПРОСИТЬ ВВОД ПОЗИЦИИ

ОПРОСИТЬ ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

ОПРОСИТЬ ВВОД СТРОКИ

ОПРОСИТЬ ВВОД ЧИСЛА

ОПРОСИТЬ ВЫБОР

ОПРОСИТЬ УКАЗАНИЕ

ОЧИСТИТЬ НОСИТЕЛЬ ИЗОБРАЖЕНИЯ НА СТАНЦИИ

ПЕРЕИМЕНОВАТЬ СЕГМЕНТ

ПЕРЕРИСОВАТЬ ВСЕ СЕГМЕНТЫ НА СТАНЦИИ

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

ПОЛИМАРКЕР

ПОЛУЧИТЬ АЛЬТЕРНАТИВУ

ПОЛУЧИТЬ ПОЗИЦИЮ

ПОЛУЧИТЬ ПОСЛЕДОВАТЕЛЬНОСТЬ ПОЗИЦИЙ, ПОЛУЧИТЬ СТРОКУ

ПОЛУЧИТЬ ТИП ЗАПИСИ ИЗ МЯГС

ПОЛУЧИТЬ УКАЗАТЕЛЬ, ПОЛУЧИТЬ ЧИСЛО

ПРОЧИТАТЬ ЗАПИСЬ ИЗ МЯГС

РАСШИРЕНИЕ

СВЯЗАТЬ СЕГМЕНТ ИЗ СТАНЦИИ

СОЗДАТЬ СЕГМЕНТ

СООБЩЕНИЕ

СФОРМИРОВАТЬ МАТРИЦУ ПРЕОБРАЗОВАНИЙ

ТЕКСТ

УДАЛИТЬ СЕГМЕНТ СО СТАНЦИИ

УДАЛИТЬ СОБЫТИЯ ОТ УСТРОЙСТВА

УЗНАТЬ АТРИБУТЫ СЕГМЕНТА

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ЛОМАНОЙ

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ ПО УМОЛЧАНИЮ

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ПОЛИМАРКЕРА

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ТЕКСТА

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ЦВЕТА

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ШАБЛОНА

УЗНАТЬ ГАБАРИТЫ ТЕКСТА

УЗНАТЬ ДЛИНУ ТАБЛИЦ, ХАРАКТЕРИЗУЮЩИХ СТАНЦИЮ

УЗНАТЬ ДОСТУПНЫЕ ТИПЫ СТАНЦИЙ

УЗНАТЬ ДОПУСТИМОЕ ЧИСЛО ПРИОРИТЕТОВ СЕГМЕНТОВ

УЗНАТЬ ДОПУСТИМЫЕ КОЛИЧЕСТВА СТАНЦИЙ

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

УЗНАТЬ ЗНАЧЕНИЯ ОТСЕЧЕНИЯ

УЗНАТЬ ИДЕНТИФИКАТОРЫ ДОСТУПНЫХ ОБОБЩЕННЫХ ПРИМИТИВОВ ВЫВОДА

УЗНАТЬ ИМЕНА СЕГМЕНТОВ, ХРАНИМЫХ НА СТАНЦИИ

УЗНАТЬ ИМЕНА СУЩЕСТВУЮЩИХ СЕГМЕНТОВ

УЗНАТЬ ИМЯ ОТКРЫТОГО СЕГМЕНТА

УЗНАТЬ ИНДЕКСЫ ЛОМАНОЙ

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

УЗНАТЬ ИНДЕКСЫ ПОЛИМАРКЕРА

УЗНАТЬ ИНДЕКС ТЕКСТА

УЗНАТЬ ИНДЕКСЫ ЦВЕТА

УЗНАТЬ ИНДЕКСЫ ШАБЛОНА, УЗНАТЬ КЛАСС СТАНЦИИ

УЗНАТЬ КОЛИЧЕСТВО ДОПУСТИМЫХ УСТРОЙСТВ ВВОДА

УЗНАТЬ МАКСИМАЛЬНЫЙ НОМЕР ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ

УЗНАТЬ НАБОР АКТИВНЫХ СТАНЦИЙ

УЗНАТЬ НАБОР ОТКРЫТЫХ СТАНЦИЙ

УЗНАТЬ НАЛИЧИЕ ОДНОВРЕМЕННЫХ СОБЫТИЙ

УЗНАТЬ НАЛИЧИЕ ПЕРЕПОЛНЕНИЯ ОЧЕРЕДИ СОБЫТИЙ

УЗНАТЬ НОМЕР ТЕКУЩЕГО ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ

УЗНАТЬ ПРЕДСТАВЛЕНИЕ

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ ПО УМОЛЧАНИЮ

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

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА ПО УМОЛЧАНИЮ

УЗНАТЬ ПРЕОБРАЗОВАНИЕ СТАНЦИИ

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА ПО УМОЛЧАНИЮ

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА ПО УМОЛЧАНИЮ

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА ПО УМОЛЧАНИЮ

УЗНАТЬ ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ

УЗНАТЬ РАЗМЕР НОСИТЕЛЯ ИЗОБРАЖЕНИЯ

УЗНАТЬ РАЗМЕРНОСТЬ МАТРИЦЫ ПИКСЕЛЕЙ

УЗНАТЬ РЕЖИМ ЗАДЕРЖКИ ПО УМОЛЧАНИЮ

УЗНАТЬ РЕЖИМЫ ЗАДЕРЖКИ И ОБНОВЛЕНИЯ СТАНЦИИ

УЗНАТЬ СОСТОЯНИЕ СТАНЦИИ

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ПОЗИЦИИ

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА СТРОКИ

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ЧИСЛА

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВЫБОРА

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА УКАЗАНИЯ

УЗНАТЬ СПИСОК ПРЕОБРАЗОВАНИЙ НОРМИРОВАНИЯ

УЗНАТЬ СПОСОБ ДИНАМИЧЕСКОЙ МОДИФИКАЦИИ АТРИБУТОВ СЕГМЕНТОВ

УЗНАТЬ СПОСОБ ДИНАМИЧЕСКОГО ОБНОВЛЕНИЯ ХАРАКТЕРИСТИК ИЗОБРАЖЕНИЯ НА СТАНЦИИ

УЗНАТЬ СТАНЦИИ, СВЯЗАННЫЕ С СЕГМЕНТОМ

УЗНАТЬ ТЕКУЩИЕ ЗНАЧЕНИЯ АТРИБУТОВ ПРИМИТИВОВ

УЗНАТЬ ТЕКУЩИЕ ЗНАЧЕНИЯ ИНДИВИДУАЛЬНЫХ АТРИБУТОВ

УЗНАТЬ ТИП И ИДЕНТИФИКАТОР СВЯЗИ СТАНЦИИ

УЗНАТЬ КЛАСС СТАНЦИИ

УЗНАТЬ УРОВЕНЬ ЯГС

УЗНАТЬ ФУНКЦИОНАЛЬНОЕ СОСТОЯНИЕ

УЗНАТЬ ХАРАКТЕРИСТИКИ МАТРИЦЫ ПИКСЕЛЕЙ

УЗНАТЬ ХАРАКТЕРИСТИКИ ОБОБЩЕННОГО ПРИМИТИВА ВЫВОДА

УЗНАТЬ ХАРАКТЕРИСТИКУ ПИКСЕЛЯ

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ПОЗИЦИИ

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА СТРОКИ

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ЧИСЛА

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВЫБОРА

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА УКАЗАНИЯ

УНИЧТОЖИТЬ СЕГМЕНТ

3. Список функций по порядку появления

3.1. Правила описания функций

3.2. Функции управления

3.2.1. ОТКРЫТЬ ЯГС.

3.2.2. ЗАКРЫТЬ ЯГС.

3.2.3. ОТКРЫТЬ СТАНЦИЮ.

3.2.4. ЗАКРЫТЬ СТАНЦИЮ.

3.2.5. АКТИВИРОВАТЬ СТАНЦИЮ.

3.2.6. ДЕАКТИВИРОВАТЬ СТАНЦИЮ.

3.2.7. ОЧИСТИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ.

3.2.8. ПЕРЕРИСОВАТЬ ВСЕ СЕГМЕНТЫ НА СТАНЦИИ.

3.2.9. ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ.

3.2.10. ЗАДАТЬ РЕЖИМ ЗАДЕРЖКИ.

3.2.11. СООБЩЕНИЕ.

3.2.12. РАСШИРЕНИЕ.

3.3. Функции вывода графических данных

3.3.1. ЛОМАНАЯ.

3.3.2. ПОЛИМАРКЕР.

3.3.3. ТЕКСТ.

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

3.3.5. МАТРИЦА ЯЧЕЕК.

3.3.6. ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОД (ОПВ).

3.4. Функции задания атрибутов выходных данных

3.4.1. Функции задания независимых от станций атрибутов примитивов.

3.4.1.1. ЗАДАТЬ ИНДЕКС ЛОМАНОЙ.

3.4.1.2. ЗАДАТЬ ТИП ЛИНИЙ.

3.4.1.3. ЗАДАТЬ МАСШТАБ ТОЛЩИНЫ ЛИНИИ.

3.4.1.4. ЗАДАТЬ ИНДЕКС ЦВЕТА ЛОМАНОЙ.

3.4.1.5. ЗАДАТЬ ИНДЕКС ПОЛИМАРКЕРА.

3.4.1.6. ЗАДАТЬ ТИП МАРКЕРА.

3.4.1.7. ЗАДАТЬ МАСШТАБ МАРКЕРА.

3.4.1.8. ЗАДАТЬ ИНДЕКС ЦВЕТА ПОЛИМАРКЕРА.

3.4.1.9. ЗАДАТЬ ИНДЕКС ТЕКСТА.

3.4.1.10. ЗАДАТЬ ШРИФТ И ТОЧНОСТЬ ТЕКСТА.

3.4.1.11. ЗАДАТЬ МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ.

3.4.1.12. ЗАДАТЬ МЕЖЛИТЕРНЫЙ ПРОСВЕТ.

3.4.1.13. ЗАДАТЬ ИНДЕКС ЦВЕТА ТЕКСТА.

3.4.1.14. ЗАДАТЬ ВЫСОТУ ЛИТЕРЫ.

3.4.1.15. ЗАДАТЬ ВЕРТИКАЛЬ ЛИТЕРЫ.

3.4.1.16. ЗАДАТЬ НАПРАВЛЕНИЕ ТЕКСТА.

3.4.1.17. ЗАДАТЬ ВЫРАВНИВАНИЕ ТЕКСТА.

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

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

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

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

3.4.1.22. ЗАДАТЬ РАЗМЕР ШАБЛОНА.

3.4.1.23. ЗАДАТЬ ТОЧКУ ПРИВЯЗКИ ШАБЛОНА.

3.4.1.24. ЗАДАТЬ ФЛАГИ ВЫБОРКИ АТРИБУТОВ.

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

3.4.2. Функции задания зависящих от станции атрибутов примитивов.

3.4.2.1. ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ.

3.4.2.2. ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА.

3.4.2.3. ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА.

3.4.2.4. ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ.

3.4.2.5. ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА.

3.4.2.6. ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА.

3.5. Функции преобразований

3.5.1. Функции задания преобразований нормирования.

3.5.1.1. ЗАДАТЬ ОКНО.

3.5.1.2. ЗАДАТЬ ПОЛЕ ВЫВОДА.

3.5.1.3. ЗАДАТЬ ПРИОРИТЕТ ПОЛЯ ВЫВОДА ПРИ ВВОДЕ.

3.5.1.4. ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ.

3.5.1.5. ЗАДАТЬ ИНДИКАТОР ОТСЕЧЕНИЯ.

3.5.2. Функции задания преобразований станции.

3.5.2.1. ЗАДАТЬ ОКНО СТАНЦИИ.

3.5.2.2. ЗАДАТЬ ПОЛЕ ВЫВОДА СТАНЦИИ.

3.6. Функции сегментации

3.6.1. Функции действий над сегментами.

3.6.1.1. СОЗДАТЬ СЕГМЕНТ.

3.6.1.2. ЗАКРЫТЬ СЕГМЕНТ.

3.6.1.3. ПЕРЕИМЕНОВАТЬ СЕГМЕНТ.

3.6.1.4. УНИЧТОЖИТЬ СЕГМЕНТ.

3.6.1.5. УДАЛИТЬ СЕГМЕНТ СО СТАНЦИИ.

3.6.1.6. СВЯЗАТЬ СЕГМЕНТ СО СТАНЦИЕЙ.

3.6.1.7. ВЫВЕСТИ КОПИЮ СЕГМЕНТА НА СТАНЦИЮ.

3.6.1.8. ВСТАВИТЬ СЕГМЕНТ.

3.6.2. Функции задания атрибутов сегментов.

3.6.2.1. ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА.

3.6.2.2. ЗАДАТЬ ВИДИМОСТЬ.

3.6.2.3. ЗАДАТЬ ВЫДЕЛЕНИЕ.

3.6.2.4. ЗАДАТЬ ПРИОРИТЕТ СЕГМЕНТА.

3.6.2.5. ЗАДАТЬ ЧУВСТВИТЕЛЬНОСТЬ К УКАЗАНИЮ.

3.7. Функции ввода

3.7.1. Функции инициализации устройств ввода.

3.7.1.1. ИНИЦИАЛИЗИРОВАТЬ ВВОД ПОЗИЦИИ.

3.7.1.2. ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ.

3.7.1.3. ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ЧИСЛА.

3.7.1.4. ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВЫБОРА.

3.7.1.5. ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО УКАЗАНИЯ.

3.7.1.6. ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА СТРОКИ.

3.7.2. Функции задания режима работы устройства ввода.

3.7.2.1. ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОЗИЦИИ.

3.7.2.2. ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ.

3.7.2.3. ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ЧИСЛА.

3.7.2.4. ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВЫБОРА.

3.7.2.5. ЗАДАТЬ РЕЖИМ УСТРОЙСТВА УКАЗАНИЯ.

3.7.2.6. ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА СТРОКИ.

3.7.3. Функции запроса входных данных.

3.7.3.1. ЗАПРОСИТЬ ВВОД ПОЗИЦИИ.

3.7.3.2. ЗАПРОСИТЬ ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ.

3.7.3.3. ЗАПРОСИТЬ ВВОД ЧИСЛА.

3.7.3.4. ЗАПРОСИТЬ ВЫБОР.

3.7.3.5. ЗАПРОСИТЬ УКАЗАНИЕ.

3.7.3.6. ЗАПРОСИТЬ ВВОД СТРОКИ.

3.7.4. Функции опроса входных данных.

3.7.4.1. ОПРОСИТЬ ВВОД ПОЗИЦИИ.

3.7.4.2. ОПРОСИТЬ ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ.

3.7.4.3. ОПРОСИТЬ ВВОД ЧИСЛА.

3.7.4.4. ОПРОСИТЬ ВЫБОР.

3.7.4.5. ОПРОСИТЬ УКАЗАНИЕ.

3.7.4.6. ОПРОСИТЬ ВВОД СТРОКИ.

3.7.5. Функции обработки входных данных в режиме событий.

3.7.5.1. ОЖИДАТЬ СОБЫТИЕ.

3.7.5.2. УДАЛИТЬ СОБЫТИЯ ОТ УСТРОЙСТВА.

3.7.5.3. ПОЛУЧИТЬ ПОЗИЦИЮ.

3.7.5.4. ПОЛУЧИТЬ ПОСЛЕДОВАТЕЛЬНОСТЬ ПОЗИЦИЙ.

3.7.5.5. ПОЛУЧИТЬ ЧИСЛО.

3.7.5.6. ПОЛУЧИТЬ ВЫБОР.

3.7.5.7. ПОЛУЧИТЬ УКАЗАНИЕ.

3.7.5.8. ПОЛУЧИТЬ СТРОКУ.

3.8. Функции метафайла

3.8.1. ЗАПИСАТЬ В МЕТАФАЙЛ.

3.8.2. ПОЛУЧИТЬ ТИП ЗАПИСИ МЕТАФАЙЛА.

3.8.3. ПРОЧИТАТЬ ЗАПИСЬ МЕТАФАЙЛА.

3.8.4. ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ.

3.9. Справочные функции

3.9.1. Общие сведения.

3.9.2. Справочные функции функционального состояния.

3.9.2.1. УКАЗАТЬ ФУНКЦИОНАЛЬНОЕ СОСТОЯНИЕ.

3.9.3. Справочные функции таблицы описания ЯГС.

3.9.3.1. УЗНАТЬ УРОВЕНЬ ЯГС.

3.9.3.2. УЗНАТЬ ДОСТУПНЫЕ ТИПЫ СТАНЦИЙ.

3.9.3.3. УЗНАТЬ КОЛИЧЕСТВА СТАНЦИЙ ПО ТИПАМ.

3.9.3.4. УЗНАТЬ МАКСИМАЛЬНЫЙ НОМЕР ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ.

3.9.4. Справочные функции таблицы состояния ЯГС.

3.9.4.1. УЗНАТЬ НАБОР ОТКРЫТЫХ СТАНЦИЙ.

3.9.4.2. УЗНАТЬ НАБОР АКТИВНЫХ СТАНЦИЙ.

3.9.4.3. УЗНАТЬ ТЕКУЩИЕ ЗНАЧЕНИЯ АТРИБУТОВ ПРИМИТИВОВ.

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

3.9.4.5. УЗНАТЬ ТЕКУЩИЕ ЗНАЧЕНИЯ ИНДИВИДУАЛЬНЫХ АТРИБУТОВ.

3.9.4.6. УЗНАТЬ НОМЕР ТЕКУЩЕГО ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ.

3.9.4.7. УЗНАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ.

3.9.4.8. УЗНАТЬ СПИСОК ПРЕОБРАЗОВАНИЙ НОРМИРОВАНИЯ.

3.9.4.9. УЗНАТЬ ЗНАЧЕНИЕ ОТСЕЧЕНИЯ.

3.9.4.10. УЗНАТЬ ИМЕНА СУЩЕСТВУЮЩИХ СЕГМЕНТОВ.

3.9.4.11. УЗНАТЬ ИМЯ ОТКРЫТОГО СЕГМЕНТА.

3.9.4.12. УЗНАТЬ НАЛИЧИЕ ОДНОВРЕМЕННЫХ СОБЫТИЙ.

3.9.5. Справочные функции таблицы состояния станции.

3.9.5.1. УЗНАТЬ ТИП И ИДЕНТИФИКАТОР СВЯЗИ СТАНЦИИ.

3.9.5.2. УЗНАТЬ СОСТОЯНИЕ СТАНЦИИ.

3.9.5.3. УЗНАТЬ РЕЖИМЫ ЗАДЕРЖКИ И ОБНОВЛЕНИЯ СТАНЦИИ.

3.9.5.4. УЗНАТЬ ИНДЕКСЫ ЛОМАНОЙ.

3.9.5.5. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ.

3.9.5.6. УЗНАТЬ ИНДЕКСЫ ПОЛИМАРКЕРА.

3.9.5.7. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА.

3.9.5.8. УЗНАТЬ ИНДЕКСЫ ТЕКСТА.

3.9.5.9. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА.

3.9.5.10. УЗНАТЬ ГАБАРИТЫ ТЕКСТА.

3.9.5.11. УЗНАТЬ ИНДЕКСЫ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ.

3.9.5.12. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ.

3.9.5.13. УЗНАТЬ ИНДЕКСЫ ШАБЛОНА.

3.9.5.14. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА.

3.9.5.15. УЗНАТЬ ИНДЕКСЫ ЦВЕТА.

3.9.5.16. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА.

3.9.5.17. УЗНАТЬ ПРЕОБРАЗОВАНИЕ СТАНЦИИ.

3.9.5.18. УЗНАТЬ ИМЕНА ХРАНИМЫХ НА СТАНЦИИ СЕГМЕНТОВ.

3.9.5.19. УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ПОЗИЦИИ.

3.9.5.20. УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ.

3.9.5.21. УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ЧИСЛА.

3.9.5.22. УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВЫБОРА.

3.9.5.23. УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА УКАЗАНИЯ.

3.9.5.24. УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА СТРОКИ.

3.9.6. Справочные функции таблицы описания станции.

3.9.6.1. УЗНАТЬ КАТЕГОРИЮ СТАНЦИИ.

3.9.6.2. УЗНАТЬ КЛАСС СТАНЦИИ.

3.9.6.3. УЗНАТЬ РАЗМЕР НОСИТЕЛЯ ИЗОБРАЖЕНИЯ.

3.9.6.4. УЗНАТЬ ЭФФЕКТ ДИНАМИЧЕСКОЙ МОДИФИКАЦИИ ХАРАКТЕРИСТИК НА СТАНЦИИ.

3.9.6.5. УЗНАТЬ РЕЖИМ ЗАДЕРЖКИ ПО УМОЛЧАНИЮ.

3.9.6.6. УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ЛОМАНОЙ.

3.9.6.7. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ ПО УМОЛЧАНИЮ.

3.9.6.8. УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ПОЛИМАРКЕРА.

3.9.6.9. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА ПО УМОЛЧАНИЮ.

3.9.6.10. УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ТЕКСТА.

3.9.6.11. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА ПО УМОЛЧАНИЮ.

3.9.6.12. УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ.

3.9.6.13. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ ПО УМОЛЧАНИЮ.

3.9.6.14. УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ШАБЛОНА.

3.9.6.15. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА ПО УМОЛЧАНИЮ.

3.9.6.16. УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ЦВЕТА.

3.9.6.17. УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА ПО УМОЛЧАНИЮ.

3.9.6.18. УЗНАТЬ ИДЕНТИФИКАТОРЫ ДОСТУПНЫХ ОБОБЩЕННЫХ ПРИМИТИВОВ ВЫВОДА.

3.9.6.19. УЗНАТЬ ХАРАКТЕРИСТИКИ ОБОБЩЕННОГО ПРИМИТИВА ВЫВОДА.

3.9.6.20. УЗНАТЬ ДЛИНУ ТАБЛИЦ, ХАРАКТЕРИЗУЮЩИХ СТАНЦИЮ.

3.9.6.21. УЗНАТЬ ДОПУСТИМОЕ ЧИСЛО ПРИОРИТЕТОВ СЕГМЕНТОВ.

3.9.6.22. УЗНАТЬ СПОСОБ ДИНАМИЧЕСКОЙ МОДИФИКАЦИИ АТРИБУТОВ СЕГМЕНТОВ.

3.9.6.23. УЗНАТЬ КОЛИЧЕСТВО ДОПУСТИМЫХ УСТРОЙСТВ ВВОДА.

3.9.6.24. УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ПОЗИЦИЙ.

3.9.6.25. УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ.

3.9.6.26. УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ЧИСЛА.

3.9.6.27. УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВЫБОРА.

3.9.6.28. УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА УКАЗАНИЯ.

3.9.6.29. УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА СТРОКИ.

3.9.7. Справочные функции таблицы состояния сегмента.

3.9.7.1. УЗНАТЬ СТАНЦИИ, СВЯЗАННЫЕ С СЕГМЕНТОМ.

3.9.7.2. УЗНАТЬ АТРИБУТЫ СЕГМЕНТОВ.

3.9.8. Справочные функции пикселей.

3.9.8.1. УЗНАТЬ РАЗМЕРНОСТЬ МАТРИЦЫ ПИКСЕЛЕЙ.

3.9.8.2. УЗНАТЬ ХАРАКТЕРИСТИКИ МАТРИЦЫ ПИКСЕЛЕЙ.

3.9.8.3. УЗНАТЬ ХАРАКТЕРИСТИКИ ПИКСЕЛЯ.

3.9.9. Справочные функции таблицы состояния ошибок ЯГС.

3.9.9.1. УЗНАТЬ НАЛИЧИЕ ПЕРЕПОЛНЕНИЯ ОЧЕРЕДИ СОБЫТИЙ.

3.10. Вспомогательные функции

3.10.1. СФОРМИРОВАТЬ МАТРИЦУ ПРЕОБРАЗОВАНИЙ.

3.10.2. ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ.

3.11. Функции обработки ошибок

3.11.1. АВАРИЙНО ЗАКРЫТЬ ЯГС.

3.11.2. ОБРАБОТАТЬ ОШИБКУ.

3.11.3. ЗАРЕГИСТРИРОВАТЬ ОШИБКУ.

4. Список функций, упорядоченных по уровню

4.1. Уровень Ма

АКТИВИРОВАТЬ СТАНЦИЮ

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ

ДЕАКТИВИРОВАТЬ СТАНЦИЮ

ЗАДАТЬ ВЕРТИКАЛЬ ЛИТЕРЫ

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

ЗАДАТЬ ВЫРАВНИВАНИЕ ТЕКСТА

ЗАДАТЬ ВЫСОТУ ЛИТЕРЫ

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

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

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

ЗАДАТЬ ИНДЕКС ЦВЕТА ТЕКСТА

ЗАДАТЬ ИНДИКАТОР ОТСЕЧЕНИЯ

ЗАДАТЬ ОКНО

ЗАДАТЬ ОКНО СТАНЦИИ

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА

ЗАДАТЬ ПОЛЕ ВЫВОДА

ЗАДАТЬ ПОЛЕ ВЫВОДА СТАНЦИИ

ЗАДАТЬ ТИП ЛИНИЙ

ЗАДАТЬ ТИП МАРКЕРА

ЗАКРЫТЬ СТАНЦИЮ

ЗАКРЫТЬ ЯГС

ЛОМАНАЯ

ОБНОВИТЬ ИЗОБРАЖЕНИЕ

ОТКРЫТЬ СТАНЦИЮ

ОТКРЫТЬ ЯГС

ОЧИСТИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ

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

ПОЛИМАРКЕР

РАСШИРЕНИЕ

ТЕКСТ

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ЛОМАНОЙ

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ПОЛИМАРКЕРА

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ЦВЕТА

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ТЕКСТА

УЗНАТЬ ГАБАРИТЫ ТЕКСТА

УЗНАТЬ ДЛИНУ ТАБЛИЦ, ХАРАКТЕРИЗУЮЩИХ СТАНЦИЮ

УЗНАТЬ ЗНАЧЕНИЕ ОТСЕЧЕНИЯ

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА

УЗНАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ

УЗНАТЬ ПРЕОБРАЗОВАНИЕ СТАНЦИИ

УЗНАТЬ РАЗМЕР НОСИТЕЛЯ ИЗОБРАЖЕНИЯ

УЗНАТЬ ТИП И ИДЕНТИФИКАТОР СВЯЗИ СТАНЦИИ

УЗНАТЬ ТЕКУЩИЕ ЗНАЧЕНИЯ АТРИБУТОВ ПРИМИТИВОВ

УЗНАТЬ ТЕКУЩИЕ ЗНАЧЕНИЯ ИНДИВИДУАЛЬНЫХ АТРИБУТОВ

УЗНАТЬ НОМЕР ТЕКУЩЕГО ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ

УЗНАТЬ УРОВЕНЬ ЯГС

4.2. Уровень Mb

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОЗИЦИИ

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА СТРОКИ

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ЧИСЛА

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВЫБОРА

ЗАПРОСИТЬ ВВОД СТРОКИ

ЗАПРОСИТЬ ВВОД ПОЗИЦИИ

ЗАПРОСИТЬ ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

ЗАПРОСИТЬ ВВОД ЧИСЛА

ЗАПРОСИТЬ ВЫБОР

УЗНАТЬ КОЛИЧЕСТВО ДОПУСТИМЫХ УСТРОЙСТВ ВВОДА

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ПОЗИЦИИ

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА СТРОКИ

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ЧИСЛА

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВЫБОРА

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА СТРОКИ

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ЧИСЛА

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВЫБОРА

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ПОЗИЦИИ

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА СТРОКИ

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ЧИСЛА

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВЫБОРА

4.3. Уровень Мс

ОЖИДАТЬ СОБЫТИЕ

ОПРОСИТЬ ВВОД ПОЗИЦИИ

ОПРОСИТЬ ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

ОПРОСИТЬ ВВОД СТРОКИ

ОПРОСИТЬ ВВОД ЧИСЛА

ОПРОСИТЬ ВЫБОР

ПОЛУЧИТЬ АЛЬТЕРНАТИВУ

ПОЛУЧИТЬ ПОЗИЦИЮ

ПОЛУЧИТЬ ПОСЛЕДОВАТЕЛЬНОСТЬ ПОЗИЦИЙ

ПОЛУЧИТЬ СТРОКУ

ПОЛУЧИТЬ ЧИСЛО

УДАЛИТЬ СОБЫТИЯ ОТ УСТРОЙСТВА

УЗНАТЬ НАЛИЧИЕ ОДНОВРЕМЕННЫХ СОБЫТИЙ

УЗНАТЬ НАЛИЧИЕ ПЕРЕПОЛНЕНИЯ ОЧЕРЕДИ СОБЫТИЙ

4.4. Уровень Оа

АВАРИЙНО ЗАКРЫТЬ ЯГС

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

ЗАДАТЬ ИНДЕКС ЛОМАНОЙ

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

ЗАДАТЬ ИНДЕКС ПОЛИМАРКЕРА

ЗАДАТЬ ИНДЕКС ТЕКСТА

ЗАДАТЬ МАСШТАБ МАРКЕРА

ЗАДАТЬ МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ

ЗАДАТЬ МАСШТАБ ТОЛЩИНЫ ЛИНИИ

ЗАДАТЬ МЕЖЛИТЕРНЫЙ ПРОСВЕТ

ЗАДАТЬ НАПРАВЛЕНИЕ ТЕКСТА

ЗАДАТЬ РАЗМЕР ШАБЛОНА

ЗАДАТЬ ТОЧКУ ПРИВЯЗКИ ШАБЛОНА

ЗАДАТЬ ФЛАГИ ВЫБОРКИ АТРИБУТОВ

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

ЗАПИСАТЬ В МЕТАФАЙЛ

ЗАРЕГИСТРИРОВАТЬ ОШИБКУ

ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ

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

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

ОБРАБОТАТЬ ОШИБКУ

ПОЛУЧИТЬ ТИП ЗАПИСИ МЕТАФАЙЛА

ПРОЧИТАТЬ ЗАПИСЬ МЕТАФАЙЛА

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ШАБЛОНА

УЗНАТЬ ДОСТУПНЫЕ ТИПЫ СТАНЦИЙ

УЗНАТЬ ИНДЕКСЫ ЦВЕТА

УЗНАТЬ ИДЕНТИФИКАТОРЫ ДОСТУПНЫХ ОБОБЩЕННЫХ ПРИМИТИВОВ ВЫВОДА

УЗНАТЬ КАТЕГОРИЮ СТАНЦИИ

УЗНАТЬ МАКСИМАЛЬНЫЙ НОМЕР ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ

УЗНАТЬ НАБОР ОТКРЫТЫХ СТАНЦИЙ

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ ПО УМОЛЧАНИЮ

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

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА ПО УМОЛЧАНИЮ

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА ПО УМОЛЧАНИЮ

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА ПО УМОЛЧАНИЮ

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА ПО УМОЛЧАНИЮ

УЗНАТЬ РАЗМЕРНОСТЬ МАТРИЦЫ ПИКСЕЛЕЙ

УЗНАТЬ РЕЖИМЫ ЗАДЕРЖКИ И ОБНОВЛЕНИЯ СТАНЦИИ

УЗНАТЬ СОСТОЯНИЕ СТАНЦИИ

УЗНАТЬ СПИСОК ПРЕОБРАЗОВАНИЙ НОРМИРОВАНИЯ

УЗНАТЬ КЛАСС СТАНЦИИ

УЗНАТЬ ФУНКЦИОНАЛЬНОЕ СОСТОЯНИЕ

УЗНАТЬ ХАРАКТЕРИСТИКИ МАТРИЦЫ ПИКСЕЛЕЙ

УЗНАТЬ ХАРАКТЕРИСТИКИ ОБОБЩЕННОГО ПРИМИТИВА ВЫВОДА

УЗНАТЬ ХАРАКТЕРИСТИКИ ПИКСЕЛЯ

4.5. Уровень Оb

ЗАДАТЬ ПРИОРИТЕТ ВЫВОДА ПРИ ВВОДЕ

4.6. Уровень 1а

ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ

ЗАДАТЬ ВИДИМОСТЬ

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

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ

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

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА

ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА

ЗАДАТЬ ПРИОРИТЕТ СЕГМЕНТА

ЗАДАТЬ РЕЖИМ ЗАДЕРЖКИ

ЗАКРЫТЬ СЕГМЕНТ

ПЕРЕРИСОВАТЬ ВСЕ СЕГМЕНТЫ НА СТАНЦИИ

ПЕРЕРИСОВАТЬ СЕГМЕНТ

СОЗДАТЬ СЕГМЕНТ

СООБЩЕНИЕ

СФОРМИРОВАТЬ МАТРИЦУ ПРЕОБРАЗОВАНИЙ

УДАЛИТЬ СЕГМЕНТ СО СТАНЦИИ

УЗНАТЬ АТРИБУТЫ СЕГМЕНТА

УЗНАТЬ ДОПУСТИМОЕ ЧИСЛО ПРИОРИТЕТОВ СЕГМЕНТОВ

УЗНАТЬ ДОПУСТИМЫЕ КОЛИЧЕСТВА СТАНЦИЙ

УЗНАТЬ ИМЕНА СЕГМЕНТОВ, ХРАНИМЫХ НА СТАНЦИИ

УЗНАТЬ ИМЕНА СУЩЕСТВУЮЩИХ СЕГМЕНТОВ

УЗНАТЬ ИМЯ ОТКРЫТОГО СЕГМЕНТА

УЗНАТЬ ИНДЕКСЫ ЛОМАНОЙ

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

УЗНАТЬ ИНДЕКСЫ ПОЛИМАРКЕРА

УЗНАТЬ ИНДЕКСЫ ТЕКСТА

УЗНАТЬ ИНДЕКСЫ ШАБЛОНА

УЗНАТЬ НАБОР АКТИВНЫХ СТАНЦИЙ

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ

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

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА

УЗНАТЬ СПОСОБ ДИНАМИЧЕСКОЙ МОДИФИКАЦИИ АТРИБУТОВ СЕГМЕНТОВ

УЗНАТЬ СПОСОБ ДИНАМИЧЕСКОГО ОБНОВЛЕНИЯ ХАРАКТЕРИСТИК ИЗОБРАЖЕНИЯ НА СТАНЦИИ

УЗНАТЬ СТАНЦИИ, СВЯЗАННЫЕ С СЕГМЕНТОМ

УЗНАТЬ РЕЖИМ ЗАДЕРЖКИ ПО УМОЛЧАНИЮ

УНИЧТОЖИТЬ СЕГМЕНТ

4.7. Уровень 1b

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

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА УКАЗАНИЯ

ЗАДАТЬ ЧУВСТВИТЕЛЬНОСТЬ К УКАЗАНИЮ

ЗАПРОСИТЬ УКАЗАНИЕ

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО УКАЗАНИЯ

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА УКАЗАНИЯ

УЗНАТЬ ТЕКУЩЕЕ ЗНАЧЕНИЕ ИНДИВИДУАЛЬНЫХ АТРИБУТОВ

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА УКАЗАНИЯ

4.8. Уровень 1с

ОПРОСИТЬ УКАЗАНИЕ

ПОЛУЧИТЬ УКАЗАТЕЛЬ

4.9. Уровень 2а

ВСТАВИТЬ СЕГМЕНТ

ВЫВЕСТИ КОПИЮ СЕГМЕНТА НА СТАНЦИЮ

СВЯЗАТЬ СЕГМЕНТ СО СТАНЦИЕЙ

5. Список функций, упорядоченных по состояниям

5.1. Список функций, разрешенных в состоянии ГЯЗК

АВАРИЙНО ЗАКРЫТЬ ЯГС

ЗАРЕГИСТРИРОВАТЬ ОШИБКУ

ОБРАБОТАТЬ ОШИБКУ

ОТКРЫТЬ ЯГС

5.2. Список функций, разрешенных в состоянии ГЯОТ

АВАРИЙНО ЗАКРЫТЬ ЯГС

ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ

ЗАДАТЬ ВЕРТИКАЛЬ ЛИТЕРЫ

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

ЗАДАТЬ ВЫРАВНИВАНИЕ ТЕКСТА

ЗАДАТЬ ВЫСОТУ ЛИТЕРЫ

ЗАДАТЬ ПРИОРИТЕТ ПОЛЯ ВЫВОДА ПРИ ВВОДЕ

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

ЗАДАТЬ ИНДЕКС ЛОМАНОЙ

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

ЗАДАТЬ ИНДЕКС ПОЛИМАРКЕРА

ЗАДАТЬ ИНДЕКС ТЕКСТА

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

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

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

ЗАДАТЬ ИНДЕКС ЦВЕТА ТЕКСТА

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

ЗАДАТЬ ИНДИКАТОР ОТСЕЧЕНИЯ

ЗАДАТЬ МАСШТАБ МАРКЕРА

ЗАДАТЬ МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ

ЗАДАТЬ МАСШТАБ ТОЛЩИНЫ ЛИНИИ

ЗАДАТЬ МЕЖЛИТЕРНЫЙ ПРОСВЕТ

ЗАДАТЬ НАПРАВЛЕНИЕ ТЕКСТА

ЗАДАТЬ ОКНО

ЗАДАТЬ ПОЛЕ ВЫВОДА

ЗАДАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ

ЗАДАТЬ РАЗМЕР ШАБЛОНА

ЗАДАТЬ ТИП МАРКЕРА

ЗАДАТЬ ТОЧКУ ПРИВЯЗКИ ШАБЛОНА

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

ЗАКРЫТЬ ЯГС

ЗАРЕГИСТРИРОВАТЬ ОШИБКУ

ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ

ОБРАБОТАТЬ ОШИБКУ

ОТКРЫТЬ СТАНЦИЮ

РАСШИРЕНИЕ

СФОРМИРОВАТЬ МАТРИЦУ ПРЕОБРАЗОВАНИЙ

5.3. Список функций, не разрешенных в состоянии СТОТ

ВСТАВИТЬ СЕГМЕНТ

ДЕАКТИВИРОВАТЬ СТАНЦИЮ

ЗАКРЫТЬ ЯГС

ЗАПИСЬ В МЯГС

ЛОМАНАЯ

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

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

ОТКРЫТЬ ЯГС

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

ПОЛИМАРКЕР

СОЗДАТЬ СЕГМЕНТ

ТЕКСТ

5.4. Список функций, не разрешенных в состоянии СТАК

ЗАКРЫТЬ СЕГМЕНТ

ЗАКРЫТЬ ЯГС

ОТКРЫТЬ ЯГС

5.5. Список функций, не разрешенных в состоянии СГОТ

АКТИВИРОВАТЬ СТАНЦИЮ

ВЫВЕСТИ КОПИЮ СЕГМЕНТА НА СТАНЦИЮ

ДЕАКТИВИРОВАТЬ СТАНЦИЮ

ЗАКРЫТЬ ЯГС

СВЯЗАТЬ СЕГМЕНТ СО СТАНЦИЕЙ

СОЗДАТЬ СЕГМЕНТ

ОТКРЫТЬ ЯГС

ОЧИСТИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ

6. Применимость функций к станциям различных классов

Устанавливаются шесть классов станций:

1 - общая память сегментов;

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

3 - станция вывода;

4 - станция ввода-вывода;

5 - станция ввода;

6 - станция ввода метафайла.

Функции ЯГС и классы станций, к которым они применяются прямо или косвенно, приведены в табл.12.

Цифра ноль обозначает, что функции применяются к ЯГС, а не к классу станций.

Таблица 12

Функция ЯГС

Применимость к классам станций

Функции управления

ОТКРЫТЬ ЯГС

0

ЗАКРЫТЬ ЯГС

0

ОТКРЫТЬ СТАНЦИЮ

1-6

ЗАКРЫТЬ СТАНЦИЮ

1-6

АКТИВИРОВАТЬ СТАНЦИЮ

1-4

ДЕАКТИВИРОВАТЬ СТАНЦИЮ

1-4

ОЧИСТИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ

1-4

ПЕРЕРИСОВАТЬ ВСЕ СЕГМЕНТЫ НА СТАНЦИИ

2-4

ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ

2-4

ЗАДАТЬ РЕЖИМ ЗАДЕРЖКИ

2-4

СООБЩЕНИЕ

2-5

РАСШИРЕНИЕ

1-6

Функции вывода

ЛОМАНАЯ

1-4

ПОЛИМАРКЕР

1-4

ТЕКСТ

1-4

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

1-4

МАТРИЦА

1-4

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

1-4

Функции установки атрибутов выходных данных

ЗАДАТЬ ИНДЕКС ЛОМАНОЙ

1-4

ЗАДАТЬ ТИП ЛИНИЙ

1-4

ЗАДАТЬ МАСШТАБ ТОЛЩИНЫ ЛИНИЙ

1-4

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

1-4

ЗАДАТЬ ИНДЕКС ПОЛИМАРКЕРА

1-4

ЗАДАТЬ ТИП МАРКЕРА

1-4

ЗАДАТЬ МАСШТАБ МАРКЕРА

1-4

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

1-4

ЗАДАТЬ ИНДЕКС ТЕКСТА

1-4

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

1-4

ЗАДАТЬ МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ

1-4

ЗАДАТЬ МЕЖЛИТЕРНЫЙ ПРОСВЕТ

1-4

ЗАДАТЬ ИНДЕКС ЦВЕТА ТЕКСТА

1-4

ЗАДАТЬ ВЫСОТУ ЛИТЕРЫ

1-4

ЗАДАТЬ ВЕРТИКАЛЬ ЛИТЕРЫ

1-4

ЗАДАТЬ НАПРАВЛЕНИЕ ТЕКСТА

1-4

ЗАДАТЬ ВЫРАВНИВАНИЕ ТЕКСТА

1-4

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

1-4

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

1-4

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

1-4

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

1-4

ЗАДАТЬ РАЗМЕР ШАБЛОНА

1-4

ЗАДАТЬ ТОЧКУ ПРИВЯЗКИ ШАБЛОНА

1-4

ЗАДАТЬ ФЛАГИ ВЫБОРКИ АТРИБУТОВ

1-4

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

1-4

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ

2-4

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА

2-4

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА

2-4

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

2-4

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА

2-4

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА

2-4

Функции преобразований

ЗАДАТЬ ОКНО

1-5

ЗАДАТЬ ПОЛЕ ВЫВОДА

1-5

ЗАДАТЬ ПРИОРИТЕТ ПОЛЯ ВЫВОДА ПРИ ВВОДЕ

1-5

ЗАДАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ

1-5

ЗАДАТЬ ИНДИКАТОР ОТСЕЧЕНИЯ

1-5

ЗАДАТЬ ОКНО СТАНЦИИ

2-5

ЗАДАТЬ ПОЛЕ ВЫВОДА СТАНЦИИ

2-5

Функции сегментации

СОЗДАТЬ СЕГМЕНТ

1-4

ЗАКРЫТЬ СЕГМЕНТ

1-4

ПЕРЕИМЕНОВАТЬ СЕГМЕНТ

1-4

УНИЧТОЖИТЬ СЕГМЕНТ

1-4

УДАЛИТЬ СЕГМЕНТ СО СТАНЦИИ

1-4

СВЯЗАТЬ СЕГМЕНТ СО СТАНЦИЕЙ

1-4

ВЫВЕСТИ КОПИЮ СЕГМЕНТА НА СТАНЦИЮ

1-4

ВСТАВИТЬ СЕГМЕНТ

1-4

ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА

1-4

ЗАДАТЬ ВИДИМОСТЬ

1-4

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

1-4

ЗАДАТЬ ПРИОРИТЕТ СЕГМЕНТА

1-4

ЗАДАТЬ ЧУВСТВИТЕЛЬНОСТЬ К УКАЗАНИЮ

1-4

Функции ввода

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ

4-5

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

4-5

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ЧИСЛА

4-5

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВЫБОРА

4-5

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО УКАЗАНИЯ

4-5

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА СТРОКИ

4-5

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОЗИЦИИ

4-5

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

4-5

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ЧИСЛА

4-5

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВЫБОРА

4-5

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА УКАЗАНИЯ

4-5

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА СТРОКИ

4-5

ЗАПРОСИТЬ ВВОД ПОЗИЦИИ

4-5

ЗАПРОСИТЬ ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

4-5

ЗАПРОСИТЬ ВВОД ЧИСЛА

4-5

ЗАПРОСИТЬ ВЫБОР

4-5

ЗАПРОСИТЬ УКАЗАНИЕ

4-5

ЗАПРОСИТЬ ВВОД СТРОКИ

4-5

ОПРОСИТЬ ВВОД ПОЗИЦИИ

4-5

ОПРОСИТЬ ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

4-5

ОПРОСИТЬ ВВОД ЧИСЛА

4-5

ОПРОСИТЬ ВЫБОР

4-5

ОПРОСИТЬ УКАЗАНИЕ

4-5

ОПРОСИТЬ ВВОД СТРОКИ

4-5

ОЖИДАТЬ СОБЫТИЕ

4-5

УДАЛИТЬ СОБЫТИЯ ОТ УСТРОЙСТВА

4-5

ПОЛУЧИТЬ ПОЗИЦИЮ

4-5

ПОЛУЧИТЬ ПОСЛЕДОВАТЕЛЬНОСТЬ ПОЗИЦИЙ

4-5

ПОЛУЧИТЬ ЧИСЛО

4-5

ПОЛУЧИТЬ АЛЬТЕРНАТИВУ

4-5

ПОЛУЧИТЬ УКАЗАТЕЛЬ

4

ПОЛУЧИТЬ СТРОКУ

4-5

Функции метафайла

ЗАПИСАТЬ В МЕТАФАЙЛ

1

ПОЛУЧИТЬ ТИП ЗАПИСИ МЕТАФАЙЛА

6

ПРОЧИТАТЬ ЗАПИСЬ МЕТАФАЙЛА

6

ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ

1-5

Справочные функции

УЗНАТЬ ФУНКЦИОНАЛЬНОЕ СОСТОЯНИЕ

0

УЗНАТЬ УРОВЕНЬ ЯГС

0

УЗНАТЬ ДОСТУПНЫЕ ТИПЫ СТАНЦИЙ

0

УЗНАТЬ ДОПУСТИМЫЕ КОЛИЧЕСТВА СТАНЦИЙ

0

УЗНАТЬ МАКСИМАЛЬНЫЙ НОМЕР ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ

0

УЗНАТЬ НАБОР ОТКРЫТЫХ СТАНЦИЙ

0

УЗНАТЬ НАБОР АКТИВНЫХ СТАНЦИЙ

0

УЗНАТЬ ТЕКУЩИЕ ЗНАЧЕНИЯ АТРИБУТОВ ПРИМИТИВОВ

0

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

0

УЗНАТЬ ТЕКУЩИЕ ЗНАЧЕНИЯ ИНДИВИДУАЛЬНЫХ АТРИБУТОВ

0

УЗНАТЬ НОМЕР ТЕКУЩЕГО ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ

0

УЗНАТЬ СПИСОК ПРЕОБРАЗОВАНИЙ НОРМИРОВАНИЯ

0

УЗНАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ

0

УЗНАТЬ ЗНАЧЕНИЕ ОТСЕЧЕНИЯ

0

УЗНАТЬ ИМЯ ОТКРЫТОГО СЕГМЕНТА

0

УЗНАТЬ ИМЕНА СУЩЕСТВУЮЩИХ СЕГМЕНТОВ

0

УЗНАТЬ НАЛИЧИЕ ОДНОВРЕМЕННЫХ СОБЫТИЙ

0

УЗНАТЬ ТИП И ИДЕНТИФИКАТОР СВЯЗИ СТАНЦИИ

1-6

УЗНАТЬ СОСТОЯНИЕ СТАНЦИИ

1-4

УЗНАТЬ РЕЖИМЫ ЗАДЕРЖКИ И ОБНОВЛЕНИЯ СТАНЦИИ

2-4

УЗНАТЬ ИНДЕКСЫ ЛОМАНОЙ

2-4

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ

2-4

УЗНАТЬ ИНДЕКСЫ ПОЛИМАРКЕРА

2-4

УЗНАТЬ ИНДЕКСЫ ТЕКСТА

2-4

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА

2-4

УЗНАТЬ ГАБАРИТЫ ТЕКСТА

2-4

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

3-4

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

2-4

УЗНАТЬ ИНДЕКСЫ ШАБЛОНА

2-4

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА

2-4

УЗНАТЬ ИНДЕКСЫ ЦВЕТА

2-4

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА

2-4

УЗНАТЬ ПРЕОБРАЗОВАНИЕ СТАНЦИИ

2-4

УЗНАТЬ ИМЕНА СЕГМЕНТОВ, ХРАНИМЫХ НА СТАНЦИИ

2-5

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ПОЗИЦИИ

1-4

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

4-5

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ЧИСЛА

4-5

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВЫБОРА

4-5

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА УКАЗАНИЯ

4-5

УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА СТРОКИ

4

УЗНАТЬ КЛАСС СТАНЦИИ

1-6

УЗНАТЬ ТИП СТАНЦИИ

3-4

УЗНАТЬ РАЗМЕР НОСИТЕЛЯ ИЗОБРАЖЕНИЯ

3-5

УЗНАТЬ СПОСОБ ДИНАМИЧЕСКОГО ОБНОВЛЕНИЯ ХАРАКТЕРИСТИК ИЗОБРАЖЕНИЯ НА СТАНЦИИ

3-4

УЗНАТЬ РЕЖИМ ЗАДЕРЖКИ ПО УМОЛЧАНИЮ

3-4

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ЛОМАНОЙ

3-4

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ ПО УМОЛЧАНИЮ

3-4

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ПОЛИМАРКЕРА

3-4

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА ПО УМОЛЧАНИЮ

3-4

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ТЕКСТА

3-4

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА ПО УМОЛЧАНИЮ

3-4

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ

3-4

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ ПО УМОЛЧАНИЮ

3-4

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ШАБЛОНА

3-4

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА ПО УМОЛЧАНИЮ

3-4

УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ЦВЕТА

3-4

УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА ПО УМОЛЧАНИЮ

3-4

УЗНАТЬ ИДЕНТИФИКАТОР ДОСТУПНЫХ ОБОБЩЕННЫХ ПРИМИТИВОВ ВЫВОДА

3-4

УЗНАТЬ ХАРАКТЕРИСТИКИ ОБОБЩЕННОГО ПРИМИТИВА ВЫВОДА

3-4

УЗНАТЬ ДЛИНУ ТАБЛИЦ, ХАРАКТЕРИЗУЮЩИХ СТАНЦИЮ

3-4

УЗНАТЬ ДОПУСТИМОЕ ЧИСЛО ПРИОРИТЕТОВ СЕГМЕНТОВ

3-4

УЗНАТЬ СПОСОБ ДИНАМИЧЕСКОЙ МОДИФИКАЦИИ АТРИБУТОВ СЕГМЕНТОВ

3-4

УЗНАТЬ КОЛИЧЕСТВО ДОПУСТИМЫХ УСТРОЙСТВ ВВОДА

4-5

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ПОЗИЦИИ

4-5

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

4-5

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ЧИСЛА

4-5

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВЫБОРА

4-5

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА УКАЗАНИЯ

4

УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА СТРОКИ

4-5

УЗНАТЬ СТАНЦИИ, СВЯЗАННЫЕ С СЕГМЕНТОМ

1-4

УЗНАТЬ АТРИБУТЫ СЕГМЕНТА

1-4

УЗНАТЬ РАЗМЕРНОСТЬ МАТРИЦЫ ПИКСЕЛЕЙ

3-4

УЗНАТЬ ХАРАКТЕРИСТИКИ МАТРИЦЫ ПИКСЕЛЕЙ

3-4

УЗНАТЬ ХАРАКТЕРИСТИКУ ПИКСЕЛЯ

УЗНАТЬ НАЛИЧИЕ ПЕРЕПОЛНЕНИЯ ОЧЕРЕДИ СОБЫТИЙ

3-4

Вспомогательные функции

СФОРМИРОВАТЬ МАТРИЦУ ПРЕОБРАЗОВАНИЙ

0

ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ

0

Функции обработки ошибок

АВАРИЙНО ЗАКРЫТЬ ЯГС

0

ОБРАБОТАТЬ ОШИБКУ

0

ЗАРЕГИСТРИРОВАТЬ ОШИБКУ

0



ПРИЛОЖЕНИЕ 4
Справочное


СПИСОК ОШИБОК

1. Ошибки, зависящие от реализации

Ошибки, зависящие от реализации, имеют номер меньше нуля.

<0 Implementation dependent errors

2. Ошибки состояния

1

ЯГС не находится в состоянии ГЯЗА.

GKS not in proper state: GKS shall be in the state GKCL.

2

ЯГС не находится в состоянии ГЯОТ.

GKS not in proper state: GKS shall be in the state GKOP.

3

ЯГС не находится в состоянии СТАК.

GKS not in proper state: GKS shall be in the state WSAC.

4

ЯГС не находится в состоянии СГОТ.

GKS not in proper state: GKS shall be in the state SCOP.

5

ЯГС не находится в состоянии СТАК или СГОТ.

GKS not in proper state: GKS shall be either in the state WSAC or in the state SGOP.

6

ЯГС не находится в состоянии СТОТ или СТАК.

GKS not in proper state: GKS shall be either in the state WSOP or in the state WSAC.

7

ЯГС не находится в состоянии СТОТ, СТАК или СГОТ.

GKS not in proper state: GKS shall be in one of the states WSOP, WSAC or SGOP.

8

ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.

GKS not in proper state: GKS shall be in one of the states GKOP, WSOP, WSAC or SGOP.

3. Ошибки станций

20

Неверно задан идентификатор станции.

Specified workstation identifier is invalid.

21

Неверно задан идентификатор связи.

Specified connection identifier is invalid.

22

Неверно задан тип станции.

Specified workstation type is invalid.

23

Заданный тип станции не существует.

Specified workstation type does not exist.

24

Указанная станция уже открыта.

Specified workstation is open.

25

Указанная станция не открыта.

Specified workstation is not open.

26

Указанная станция не может быть открыта.

Specified workstation cannot be opened.

27

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

Workstation Independent Segment Storage is not open.

28

Общая память сегментов уже открыта.

Workstation Independent Segment Storage is olready open.

29

Указанная станция активна.

Specified workstation is active.

30

Указанная станция не активна.

Specified workstation is not active.

31

Указанная станция - станция вывода метафайла ЯГС.

Specified workstation is of category МО.

32

Указанная станция не является станцией вывода метафайла ЯГС.

Specified workstation is not of category МО.

33

Указанная станция - станция ввода метафайла ЯГС.

Specified workstation is of category MI.

34

Указанная станция не является станцией ввода метафайла ЯГС.

Specified workstation is not of category MI.

35

Указанная станция является станцией ввода.

Specified workstation is of category INPUT.

36

Указанная станция является общей памятью сегментов.

Specified workstation is Workstation Independent Segment Storage.

37

Указанная станция не является станцией ввода-вывода.

Specified workstation is not of category OUTIN.

38

Указанная станция не является станцией ввода или ввода-вывода.

Specified workstation is neither of category INPUT nor of category OUTIN.

39

Указанная станция не является станцией вывода или ввода-вывода.

Specified workstation is neither of category OUTPUT nor of category OUTIN.

40

Указанная станция не имеет возможности обратного чтения памяти пикселей.

Specified workstation has no pixel store readback capability.

41

Станция указанного типа не может генерировать указанный обобщенный примитив вывода.

Specified workstation type is not able to generate the specified generalized drawing primitive.

42

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

Maximum number of simultaneously open workstations would be exceeded.

43

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

Maximum number of simultaneously active workstations would be exceeded.

4. Ошибки преобразований

50

Неверно задан номер преобразования.

Transformation number is invalid.

51

Неверно задан прямоугольник.

Rectangle definition is invalid.

52

Поле вывода находится вне единичного квадрата нормированных координат.

Viewport is not within the Normalized Device.

Coordinate unit square.

53

Окно станции находится вне единичного квадрата нормированных координат.

Workstation window is not within the Normalized. Device Coordinate unit square.

54

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

Workstation viewport is not within the display space.

5. Ошибки атрибутов вывода

60

Неверно задан индекс ломаной.

Polyline index is invalid.

61

Представление для указанного индекса ломаной не было определено на данной станции.

A representation for the specified polyline index has not been defined on this workstation.

62

Представление для указанного индекса ломаной не предопределено на данной станции.

A representation for the specified polyline index has not been predefined on this workstation.

63

Тип линии равен нулю.

Linetype is equal to zero.

64

Указанный тип линий не поддерживается на данной станции.

Specified linetype is not supported on this workstation.

65

Масштаб толщины линии меньше нуля.

Linewidth scale factor is less than zero.

66

Неверно задан индекс полимаркера.

Polymarker index is invalid.

67

Представление для указанного индекса полимаркера не было определено на данной станции.

A representation for the specified polymarker index has not been defined on this workstation.

68

Представление для указанного индекса полимаркера не предопределено на данной станции.

A representation for the specified polymarker index has not been predefined on this workstation.

69

Тип маркера равен нулю.

Marker type is equal to zero.

70

Заданный тип маркера не поддерживается на данной станции.

Specified marker type is not supported on this workstation.

71

Масштаб маркера меньше нуля.

Marker size scale factor is less then zero.

72

Неверно задан индекс текста.

Text idex is invalid.

73

Представление для указанного индекса текста не было определено на данной станции.

A representation for the specified text index has not been defined on this workstation.

74

Представление для указанного индекса текста не предопределено на данной станции.

A representation for the specified text index has not been predefined on this workstation.

75

Шрифт равен нулю.

Text font is equal to zero.

76

Заданный шрифт не поддерживается с требуемой точностью представления текста на данной станции.

Requested text font is not supported for the specified precision on this workstation.

77

Масштаб расширения литеры меньше или равен нулю.

Character expansion factor is less than or equal to zero.

78

Высота литеры меньше или равна нулю.

Character height is less than or equal to zero.

79

Длина вертикали литеры равна нулю.

Length of character up vector is zero.

80

Неверно задан индекс полигональной области.

Fill area index is invalid.

81

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

A representation for the specified fill area index has not been defined on this workstation.

82

Представление для указанного индекса полигональной области не предопределено на данной станции.

A representation for the specified fill area index has not been predefined on this workstation.

83

Заданный вид заполнения полигональной области не поддерживается на данной станции.

Specified fill area interior style is not supported on this workstation.

84

Индекс заполнителя (шаблона или штриховки) равен нулю.

Style (pattern or hatch) index is equal to zero.

85

Неверно задан индекс шаблона.

Specified pattern index is invalid.

86

Заданный вид штриховки не поддерживается на данной станции.

Specified hatch style is not supported on this workstation.

87

Значение размера шаблона не положительно.

Pattern size value is not positive.

88

Представление для указанного индекса шаблона не было определено на данной станции.

A representation for the specified pattern index has not been defined on this workstation.

89

Представление для указанного индекса шаблона не предопределено на данной станции.

A representation for the specified pattern index has not been predefined on this workstation.

90

Заполнение по шаблону не поддерживается на данной станции.

Interior style PATTERN is not supported on this workstation.

91

Неверно заданы размерности массива индексов цвета.

Dimensions of colour array are invalid.

92

Индекс цвета меньше нуля.

Colour index is less then zero.

93

Неверно задан индекс цвета.

Colour index is invalid.

94

Представление для указанного индекса цвета не было определено на данной станции.

A representation for the specified colour index has not been defined on this workstation.

95

Представление для указанного индекса цвета не предопределено на данной станции.

A representation for the specified colour index has not been predefined on this workstation.

96

Интенсивность цвета лежит вне диапазона от нуля до единицы.

Colour is outside range [0, 1].

97

Неверно задан идентификатор указания.

Pick identifier is invalid.

6. Ошибки примитивов вывода

100

Неверно задано число точек.

Number of points is invalid.

101

Неверный код литеры.

Invalid code in string.

102

Неверно задан идентификатор ОПВ.

Generalized drawing primitive identifier is invalid.

103

Неверно задано содержимое записи данных ОПВ.

Content of generalized drawing primitive data record is invalid.

104

Ни одна активная станция не может сгенерировать указанный ОПВ.

At least one active workstation is not able to generate the specified generalized drawing primitive.

105

Ни одна активная станция не в состоянии сгенерировать указанный ОПВ при текущих преобразованиях и прямоугольнике отсечения.

At least one active workstation is not able to generate the specified generalized drawing primitive under the current transformations and clipping rectangle.

7. Ошибки сегментов

120

Неверно задано имя сегмента.

Specified segment name is invalid.

121

Указанное имя сегмента уже используется.

Specified segment name is already in use.

122

Указанный сегмент не существует.

Specified segment does not exist.

123

Указанный сегмент не существует на указанной станции.

Specified segment does not exist on specified workstation.

124

Указанный сегмент не существует в общей памяти сегментов.

Specified segment does not exist on Workstation Independent Segment Storage.

125

Указанный сегмент открыт.

Specified segment is open.

126

Приоритет сегмента вне диапазона от нуля до единицы.

Segment priority is outside the range [0, 1].

8. Ошибки ввода

140

Указанное устройство ввода отсутствует на станции.

Specified input device is not present on workstation.

141

Устройство ввода не находится в режиме ЗАПРОС.

Input device is not in REQUEST mode.

142

Устройство ввода не находится в режиме ОПРОС.

Input device is not in SAMPLE mode.

143

Режим ОПРОС и режим СОБЫТИЕ не доступен на данном уровне ЯГС.

EUENT and SAMPLE input mode are not available at this level of GKS.

144

Запрошенный тип подсказки и эха не поддерживается на данной станции.

Specified prompt and echo type is not supported on this workstation.

145

Область эха находится за пределами пространства изображения.

Echo area is outside display space.

146

Неверно задано содержимое записи данных.

Contents of input data record are invalid.

147

Очередь событий переполнена.

Input queue has overflowed.

148

Очередь событий не переполнялась после открытия ЯГС или после последнего обращения к функции УЗНАТЬ НАЛИЧИЕ ПЕРЕПОЛНЕНИЯ ОЧЕРЕДИ СОБЫТИЙ.

Input queue has not overflowed since GKS was opened or the last invocation of INQUIRE INPUT QUEUE OVERFLOW.

149

Очередь событий переполнялась, но соответствующая станция была закрыта.

Input queue has overflowed, but assosiated workstation has been closed.

150

Значение ввода данного класса отсутствует в отчете о текущем событии.

No input value of correct class is in the current event report.

151

Неверно задано время ожидания.

Timeout is invalid.

152

Неверно задано начальное значение.

Initial value is invalid.

153

Число точек в начальной последовательности позиции больше размера буфера.

Number of points in the initial stroke is greater than the buffer size.

154

Длина начальной строки больше размера буфера.

Length of the initial string is greater than the buffer size.

9. Ошибки метафайла

160

Тип записи не разрешен для записи пользователя.

Item type is not allowed for user items.

161

Неправильная длина записи.

Item length is invalid.

162

В метафайле ввода ЯГС не осталось больше записей.

No item is left in GKS Metafile input.

163

Неправильная запись в метафайле.

Metafile item is invalid.

164

Неправильный тип записи метафайла ЯГС.

Item type is not a valid GKS item.

165

Содержимое записи данных не соответствует указанному типу записи.

Content of item data record is invalid for the specified item type.

166

Неверно задана максимальная длина записи данных.

Maximum item data record length is invalid.

167

Запись пользователя не может быть интерпретирована.

User item cannot be interpreted.

168

Указанная функция не поддерживается на этом уровне ЯГС.

Specified function is not supported in this level of GKS.

10. Ошибки расширения

180

Указанная функция расширения не обеспечена.

Specified escape function is not supported.

181

Идентификатор указанной функции расширения задан неверно.

Specified escape function identification is invalid.

182

Неверно задано содержимое записи данных функции расширения.

Contents of escape data record are invalid.

11. Прочие ошибки

200

Неверно задан указанный файл ошибок.

Specified error file is invalid.

12. Системно зависимые ошибки

300

Переполнение памяти ЯГС.

Storage overflow has occurred in GKS.

301

Переполнение памяти хранения сегментов.

Storage overflow has occurred in segment storage.

302

Ошибка ввода/вывода в процессе чтения.

Input/Output error has occurred while reading.

303

Ошибка ввода/вывода в процессе записи.

Input/Output error has occurred while writing.

304

Ошибка ввода/вывода в процессе передачи данных на станцию.

Input/Output error has occurred while sending data to a workstation.

305

Ошибка ввода/вывода в процессе приема данных со станции.

Input/Output error has occurred while receiving data from a workstation.

306

Ошибка ввода/вывода в процессе работы с библиотекой.

Input/Output error has occurred during program library management.

307

Ошибка ввода/вывода в процессе чтения таблицы описания ЯГС.

Input/Output error has occurred while reading workstation description table.

308

Арифметическая ошибка.

Arithmetic error has occurred.

13. Зарезервированные ошибки

13.1.

Неиспользованные номера ошибок меньше 2000, а также ошибки с номерами больше 4000 зарезервированы для дальнейшей стандартизации.

Unused error numbers less than 2000 are reserved for future standartization.

13.2.

Ошибки с номерами от 2000 до 3999 предназначены для привязки к языкам программирования.

Error numbers 2000-3999 are reserved for language bindings.

13.3.

Номера от 4000 и более отводятся для регистрации ошибок.

Error numbers greater than or equal to 4000 are reserved for registration.



ПРИЛОЖЕНИЕ 5
Справочное


ИНТЕРФЕЙСЫ

1. Введение

Для реализации ЯГС на различных языках высокого уровня при его описании применяются абстрактные термины.

Для использования ЯГС в некоторой прикладной программе, написанной на определенном языке, необходимы следующие преобразования:

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

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

2. Связь с языками программирования

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

Этот документ является продолжением настоящего стандарта.

При разработке таких документов необходимо соблюдать следующие правила:

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

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

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

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

5. При описании связи ЯГС с языком следует определить набор идентификаторов, допустимых в этом языке, которые могут быть использованы в реализации для внутренних связей. При реализации обычно не накладывается ограничений на использование внешних идентификаторов, которые определяются в соответствии с правилами 1-4. Поэтому в прикладных программах следует избегать использования идентификаторов из набора, определяемого правилом 5. Этот набор может состоять, например, из идентификаторов, начинающихся с литеры G.

3. Реализация ЯГС

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

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

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

3. В описании реализации ЯГС следует определить для каждой характеристики, зависящей от реализации и станций, значение этой характеристики в данной реализации. Некоторые детальные характеристики настоящего стандарта специально не заданы, чтобы предоставить специалистам достаточную свободу для адаптации к определенным ЭВМ и определенным операционным системам. Эти характеристики указываются в тексте словами "зависит от реализации". Другие, не заданные характеристики, позволяют адаптироваться к графическим устройствам. Они указаны в тексте словами "зависит от станции". Список всех таких характеристик дан в приложении 6. Значение такой характеристики следует описывать в документации так, чтобы можно было предсказать поведение прикладной программы.

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

ПРИЛОЖЕНИЕ 6
Справочное

ДОПУСТИМЫЕ РАЗЛИЧИЯ В РЕАЛИЗАЦИЯХ ЯГС

1. Введение

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

Другие допустимые различия распадаются на две категории:

глобальные различия;

различия, зависящие от станции.

2. Глобальные различия

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

1) Функциональная сфера:

уровень ЯГС.

2) Возможности:

число доступных типов станций;

список доступных типов станций;

максимальное число одновременно открытых станций;

максимальное число одновременно активных станций;

максимальное число станций, связанных с сегментом;

максимальное число преобразований нормирования;

количество одновременно определимых сегментов (на станцию);

максимальный размер входной очереди;

число доступных шрифтов;

число обобщенных примитивов вывода (ОПВ);

число функций РАСШИРЕНИЕ.

3) Прочие различия:

начальное значение флагов выборки атрибутов (ФВА);

режим работы функции АВАРИЙНО ЗАКРЫТЬ ЯГС;

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

формат метафайла, используемый в каждой станции категории МВЫВОД;

шрифты.

Примечания:

1. Данные, приведенные в п.1) и в первых шести перечислениях п.2), содержатся в таблице описания ЯГС и могут быть выяснены прикладной программой.

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

3. Для различных уровней ЯГС определены минимальные возможности, приведенные в подразд.2.10 настоящего стандарта.

3. Различия, зависящие от станции

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

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

Дополнительные различия, зависящие от станций, следующие:

Функции управления:

1) реализация функций ЯГС: СООБЩЕНИЕ, РАСШИРЕНИЕ;

2) буферизация отложенных действий при режимах задержки ГЛОБ, ЛОКА и ЛЮБО.

Выходные функции и атрибуты:

1) ЛОМАНАЯ:

продолжается или начинается текстура линии в начале ломаной, в начале усеченной части ломаной и в каждой вершине ломаной;

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

форма конца линии для некоторого значения масштаба ширины линии.

2) ПОЛИМАРКЕР:

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

отсечение маркера, если его позиция попадает на границу отсечения.

3) ТЕКСТ:

отсечение для текста точности ДО СТРОКИ и ДО ЛИТЕРЫ;

влияние установленных в данное время характеристик для точности ДО СТРОКИ;

влияние характеристик:

масштаб расширения литер, ВЫСОТА ЛИТЕР, НАПРАВЛЕНИЕ ТЕКСТА для точности ДО ЛИТЕРЫ;

действия по контролю над литерами внутри строки.

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

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

действуют ли преобразования на шаблоны и штриховку;

тип линии и толщина линии для вида заполнения ПУСТО.

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

будет ли МАТРИЦА ЯЧЕЕК полностью поддерживаться или при необходимости моделироваться и как моделироваться (минимальное выполняемое действие - нарисовать преобразованные границы прямоугольников ячеек, используя цвет, тип линии и толщину линии в зависимости от реализации).

6) ОПВ:

реализация каждого ОПВ;

7) все примитивы:

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

на одноцветных станциях алгоритм получения интенсивности. Рекомендуется алгоритм:

интенсивность = 0,3красный + 0,59зеленый + 0,11голубой;

что вычерчивается, если точки или линии совпадают.

Сегменты:

1) обнаружение сегментов равного приоритета;

2) отображение перекрывающихся сегментов с равным приоритетом;

3) реализация выделения.

Функции ввода:

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

2) реализация режима "подсказка - эхо", принятого по умолчанию;

3) использование записи данных ввода для необязательных параметров.

Справочные функции:

1) значение, возвращаемое функцией УЗНАТЬ ГАБАРИТЫ ТЕКСТА;

2) значение узнаваемой характеристики пикселя;

3) ответ, возвращаемый справочными функциями при флаге РЕАЛИЗОВАНО.

ПРИЛОЖЕНИЕ 7
Справочное


СТРУКТУРА МЕТАФАЙЛА

1. Введение

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

передачи графической информации между системами;

передачи графической информации из одного места в другое;

передачи графической информации от одной прикладной задачи, использующей ЯГС, к другой;

хранения сопровождающей неграфической информации.

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

кодирование в соответствии со СТ СЭВ 359-76 для передачи по сетям;

двоичное кодирование для экономии памяти ЭВМ во время счета;

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

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

Для метафайла ЯГС определяются два вида кодирования:

текстовое кодирование;

двоичное кодирование.

2. Формат файла и формат данных

Метафайл ЯГС создается как последовательность логических записей данных. Файл начинается с записи, имеющей фиксированный формат - ЗАГОЛОВОК ФАЙЛА, которая определяет начало метафайла (автора, устройство, формат следующих записей и представление чисел). Файл заканчивается записью КОНЕЦ. Между этими двумя записями записывается следующая информация:

записи управления станцией и записи сообщения;

записи примитивов вывода, описывающие элементарные графические объекты;

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

записи сегмента, описывающие структуру и преобразования сегмента;

записи пользователя.

Общая структура метафайла ЯГС имеет следующий вид:

Все записи данных, за исключением заголовка файла, имеют заголовок записи, содержащий:

строку символов "GKSM" (необязательная), улучшающую читаемость файла и обеспечивающую возможность контроля ошибок;

тип логической записи, определяющий вид информации, которая содержится в записи.

Длина каждого из этих подполей заголовка записи зависит от реализации и задается в заголовке файла. Содержимое записи для каждого типа логической записи описано ниже.

Метафайл содержит символы, целые числа и действительные числа, помеченные (С), (Ц), (Д) в описании записи. Символы в метафайле должны соответствовать СТ СЭВ 359-76. Числа представляются в формате F1 для целых и формате F2 для действительных.

Форматы F1 и F2 могут быть записаны посредством форматов ФОРТРАНА I и F соответственно.

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

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

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

3. Генерация метафайлов

Табл.13 содержит список функций ЯГС, которые применяются для станций категории МВЫВОД, и их действия на метафайл. В этой таблице МВЫВОД является идентификатором станции, которая генерирует метафайл данного формата.

Таблица 13


Функции ЯГС и их действие на станцию вывода метафайла ЯГС

Функции ЯГС, применяемые к станциям категории МВЫВОД

Запись метафайла или действие

Функции управления

ОТКРЫТЬ СТАНЦИЮ (МВЫВОД)

Заголовок файла
1 (условно)

ЗАКРЫТЬ СТАНЦИЮ (МВЫВОД)

0 (конечная запись)

АКТИВИРОВАТЬ СТАНЦИЮ (МВЫВОД)

(61, 21-44)
Выводит текущие атрибуты, разрешает вывод

ДЕАКТИВИРОВАТЬ СТАНЦИЮ (МВЫВОД)

Запрещает вывод

ОЧИСТИТЬ СТАНЦИЮ (МВЫВОД)

1

ПЕРЕРИСОВАТЬ ВСЕ СЕГМЕНТЫ НА СТАНЦИИ (МВЫВОД)

2

ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ (МВЫВОД)

3

ЗАДАТЬ РЕЖИМ ЗАДЕРЖКИ (МВЫВОД)

4

СООБЩЕНИЕ (МВЫВОД)

5 (сообщение)

РАСШИРЕНИЕ

6

Примитивы вывода

ЛОМАНАЯ

11

ПОЛИМАРКЕР

12

ТЕКСТ

13

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

14

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

15

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

16

Атрибуты примитивов вывода

ЗАДАТЬ ИНДЕКС ЛОМАНОЙ

21

ЗАДАТЬ ТИП ЛИНИИ

22

ЗАДАТЬ МАСШТАБ ТОЛЩИНЫ ЛИНИИ

23

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

24

ЗАДАТЬ ИНДЕКС ПОЛИМАРКЕРА

25

ЗАДАТЬ ТИП МАРКЕРА

26

ЗАДАТЬ МАСШТАБ МАРКЕРА

27

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

28

ЗАДАТЬ ИНДЕКС ТЕКСТА

29

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

30

ЗАДАТЬ МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ

31

ЗАДАТЬ МЕЖЛИТЕРНЫЙ ПРОСВЕТ

32

ЗАДАТЬ ИНДЕКС ЦВЕТА ТЕКСТА

33

ЗАДАТЬ ВЫСОТУ ЛИТЕРЫ

34

ЗАДАТЬ ВЕРТИКАЛЬ ЛИТЕРЫ

34

ЗАДАТЬ НАПРАВЛЕНИЕ ТЕКСТА

35

ЗАДАТЬ ВЫРАВНИВАНИЕ ТЕКСТА

36

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

37

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

38

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

39

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

40

ЗАДАТЬ РАЗМЕР ШАБЛОНА

41

ЗАДАТЬ ТОЧКУ ПРИВЯЗКИ ШАБЛОНА

42

ЗАДАТЬ ФЛАГИ ВЫБОРКИ АТРИБУТОВ

43

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

44

Атрибуты станции

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ (МВЫВОД)

51

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА (МВЫВОД)

52

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА (МВЫВОД)

53

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ (МВЫВОД)

54

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА (МВЫВОД)

55

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА (МВЫВОД)

56

Функции преобразований

ЗАДАТЬ ОКНО текущего преобразования нормирования

34, 41, 42

ЗАДАТЬ ПОЛЕ ВЫВОДА текущего преобразования нормирования

61, 34, 41, 42

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ

61, 34, 41, 42

ЗАДАТЬ ИНДИКАТОР ОТСЕЧЕНИЯ

61

ЗАДАТЬ ОКНО СТАНЦИИ (МВЫВОД)

71

ЗАДАТЬ ПОЛЕ ВЫВОДА СТАНЦИИ (МВЫВОД)

72

Функции сегментов

СОЗДАТЬ СЕГМЕНТ

81

ЗАКРЫТЬ СЕГМЕНТ

82

ПЕРЕИМЕНОВАТЬ СЕГМЕНТ

83

УНИЧТОЖИТЬ СЕГМЕНТ

84

УДАЛИТЬ СЕГМЕНТ СО СТАНЦИИ (МВЫВОД)

84

СВЯЗАТЬ СЕГМЕНТ СО СТАНЦИЕЙ (МВЫВОД)

81, (91-95), (21-44),
(11-16), (61), 82

ВЫВЕСТИ КОПИЮ СЕГМЕНТА НА СТАНЦИЮ

(21-44), (11-16), (61)

ВСТАВИТЬ СЕГМЕНТ

(21-44), (11-16), (61)

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

ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА

91

ЗАДАТЬ ВИДИМОСТЬ

92

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

93

ЗАДАТЬ ПРИОРИТЕТ СЕГМЕНТА

94

ЗАДАТЬ ЧУВСТВИТЕЛЬНОСТЬ К УКАЗАНИЮ

95

Функции метафайла

ЗАПИСАТЬ В МЕТАФАЙЛ

>100

Примечания:

1. Запись 61 (прямоугольник отсечения) более подробно описана в подразд.4.3.

2. При изменении текущего преобразования нормирования генерируются записи, относящиеся к геометрическим атрибутам (записи 34, 41, 42).

Концепция отсечения отражена в специальной записи метафайла, которая задает прямоугольник отсечения. Эта запись записывается в метафайл при активации станции со значениями (0., 1., 0., 1.,), если индикатор отсечения в таблице состояния ЯГС имеет значение НЕ ОТСЕКАТЬ или "прямоугольник отсечения", если индикатор отсечения имеет значение ОТСЕКАТЬ.

При переопределении прямоугольника отсечения и когда индикатор отсечения имеет значение ОТСЕКАТЬ, записывается новая запись прямоугольника отсечения. Если индикатор отсечения в таблице состояния ЯГС изменяется на НЕ ОТСЕКАТЬ, записывается прямоугольник отсечения (0., 1., 0., 1., 0.,). Если индикатор отсечения меняется на ОТСЕКАТЬ, записывается прямоугольник отсечения из таблицы состояния ЯГС.

4. Интерпретация метафайла

4.1. Общие сведения

Интерпретация метафайла в ЯГС описывается в подразд.2.9 настоящего стандарта. Действие функции ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ для всех типов записей метафайла описывается в пп.4.2-4.8. Записи группируются по классам в соответствии с табл.13.

4.2. Интерпретация управляющих записей

Интерпретация записей для этого класса описывается при определении каждой записи в разд.5 настоящего приложения.

4.3. Интерпретация записей о примитивах вывода

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

4.4. Интерпретация записей об атрибутах примитивов вывода

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

________________

* Текст соответствует оригиналу. - .

4.5. Интерпретация записей об атрибутах станций

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

4.6. Интерпретация записей о преобразованиях

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

4.7. Интерпретация записей о манипулировании сегментами

Интерпретация записей этого класса имеет такое же действие, как обращение к соответствующим функциям ЯГС, приведенным в табл.11. (Запись 84 является причиной вызова функции УНИЧТОЖИТЬ СЕГМЕНТ.)

4.8. Интерпретация записей об атрибутах сегментов

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

5. Управляющие записи

ЗАГОЛОВОК ФАЙЛА

GKSM И ДА В З Т Д Ц Р Ф П НОЛЬ ЕДИНИЦА

Все поля в записи заголовка файла имеют фиксированную длину. Числа представлены в формате F1 (формат ФОРТРАНА I). Длина записей и пояснения к ним приведены в табл.14, 15, 16.

Таблица 14


Общая информация

Имя записи

Длина записи

Пояснение

GKSM

4 байта

Содержит строку "GKSM"

И

40 байтов

Содержит имя автора/установки

ДА

8 байтов

Дата (год/месяц/день, например 79/12/31)

В

2 байта

Номер версии: метафайл, описанный здесь, имеет версию номер 1



Таблица 15


Задание длины полей

Имя поля

Длина поля

Пояснение

З

2 байта

Целое число, определяющее, сколько байтов строки "GKSM" повторяется в начале каждой записи. Возможны значения: 0, 1, 2, 3, 4

Т

2 байта

Длина поля, определяющего тип записи

Д

2 байта

Длина поля, определяющего длину записи

Ц

2 байта

Длина представления целого числа в записи (применяется ко всем данным, помещенным* (Ц) в описание записи)

Р

2 байта

Длина представления действительного числа (применяется ко всем данным, помеченным (Т) в описании записи)

________________

* Текст соответствует оригиналу. - .

Таблица 16


Задание представления чисел

Имя

Длина

Пояснение

Ф

2 байта

Возможны значения: 1, 2. Применяется ко всем данным, находящимся в записях, которые помечены (Ц) или (Д), к типу записи и к длине записи:

1: все числа форматированы

2: все числа (за исключением заголовка файла) записываются во внутреннем двоичном формате

П

2 байта

Возможны значения: 1, 2. Представление числа для данных, помеченных (Д):

1 = действительное, 2 = целое

НОЛЬ

11 байтов

Целое, равное 0,0, если П=2

ЕДИНИЦА

11 байтов

Целое, равное 1,0, если П=2

Заголовок файла имеет фиксированный формат. Все значения в последующих записях имеют формат, определенный в заголовке файла. Для дальнейшего описания предполагается задание: З=4, Т=2, Ф=1. В дополнение к форматам (Ц), (У) и (Д), которые уже описаны, (Т) означает точку, представленную парой действительных чисел (2Д). Это обозначение позволяет одним символом, поставленным в начале выражения, указывать число значений этого типа.

КОНЕЧНАЯ ЗАПИСЬ

"GKSM 0"

Последняя запись каждого метафайла ЯГС. Устанавливает условие для ошибки "При вводе метафайла ЯГС записей не осталось".

ОЧИСТИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ

"GKSM 1" Д У

Запрос функции ОЧИСТИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ для всех активных станций

У (ц): флаг управления очистки (0 = УСЛОВНО, 1 = ВСЕГДА)

ПЕРЕРИСОВАТЬ ВСЕ СЕГМЕНТЫ НА СТАНЦИИ

"GKSM 2" Д

Запрос функции ПЕРЕРИСОВАТЬ ВСЕ СЕГМЕНТЫ НА СТАНЦИИ для всех активных станций

ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ

"GKSM 3" Д Р

Запрос функции ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ на всех активных станциях

Р (ц): обновить флаг регенерации (0 = РАЗРЕШИТЬ, 1 = ЗАПРЕТИТЬ)

РЕЖИМ ЗАДЕРЖКИ

"GKSM 4" Д З Р

Запрос функции ЗАДАТЬ РЕЖИМ ЗАДЕРЖКИ на всех активных станциях

З (ц): режим задержки

(0 = БЫСТРО, 1 = ГЛОБ, 2 = ЛОК, 3 = ЛЮБОЙ)

Р (ц): неявная повторная генерация

(0 = ЗАПРЕЩЕНА, 1 = РАЗРЕШЕНА)

СООБЩЕНИЕ

"GKSM 5" Д Ч C

Ч (ц): число литер в строке

С (Чс): строка с Ч-литерами

РАСШИРЕНИЕ

"GKSM 6" Д ИФ ДЦ ДР Ц Р

Запрос функции РАСШИРЕНИЕ

ИФ (ц): идентификатор функции

ДЦ (ц): длина целых данных в записи

ДР (ц): длина действительных данных в записи

Ц (ДЦц): целые данные

В (Рц): действительные данные

6. Записи о примитивах вывода

ЛОМАНАЯ

"GKSM 11" Д Ч T

Ч (ц): число точек ломаной

Т (Чц): список точек

ПОЛИМАРКЕР

"GKSM 12" Д Ч Т

Ч (ц): число точек

Т (Чц): список точек

ТЕКСТ

"GKSM 13" Д Т Ч С

Т (Т) 5 начальная точка текста

Ч (ц): число литер в строке С

С (Чс): строка с Ч-литерами

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

"GKSM 14" Д Ч Т

Ч (ц): число точек

Т (Чц): список точек

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

"GKSM 15" Д Р Q R N М Ц

P(g), Q(g), R(g) координаты углов матрицы ячеек (Р И Q изображения точек Р И Q, заданных в функции МАТРИЦА ЯЧЕЕК И R образ точек угла, связанных с элементами (Nx, 1) функцией МАТРИЦА ЯЧЕЕК)

М: число строк в матрице

N: число столбцов в матрице

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

"GKSM 16" Д ИОПВ Ч Т ДЦ ДР Ц Р

ИОПВ: (ц): идентификатор ОПВ

Ч (ц): число точек

ДЦ (ц): длина целых данных в записи

ДР (ц): длина действительных данных в записи

Т (Чт): список точек

Ц (Дц): целые данные

Р (Рц): действительные данные

7. Записи об атрибутах примитивов вывода

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

"GKSM 21" Д И

И (ц): индекс ломаной

ТИП ЛИНИЙ

"GKSM 22" Д ТЛ

ТЛ (ц): тип линии

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

"GKSM 23" Д ТЛ

ТЛ (р): масштаб толщины линии

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

"GKSM 24" Д ИЦ

ИЦ (ц): индекс цвета ломаной

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

"GKSM 25" ДИ

И (ц): индекс полимаркера

ТИП МАРКЕРА

"GKSM 26" Д ТМ

ТМ (ц): ТИП МАРКЕРА

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

"GKSM 27" Д ММ

ММ (р): масштаб маркера

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

"GKSM 28" Д ИЦ

ИЦ (ц): индекс цвета полимаркера

ИНДЕКС ТЕКСТА

"GKSM 29" Д И

И (Ц): индекс текста

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

"GKSM 30" Д Ш Т

Ш (ц). шрифт текста

Т (ц): точность текста

(0 = ДО СТРОКИ, 1 = ДО ЛИТЕРЫ, 2 = ДО ШТРИХА)

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

"GKSM 32" Д МРЛ

МРЛ (ц): масштаб расширения литеры

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

"GKSM 32" Д МП

МП (ц): межлитерный просвет

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

"GKSM 33" Д ИЦ

ИЦ (ц): индекс цвета текста

ВЕКТОРЫ ЛИТЕРЫ

"GKSM 34" Д ВЛ ГЛ

ВЛ (2р): вертикаль литеры

ГЛ (2р): горизонталь литеры

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

"GKSM 35" Д Н

Н (ц): направление текста

(0 = ВПРАВО, 1 = ВЛЕВО, 2 = ВВЕРХ, 3 = ВНИЗ)

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

"GKSM 36" Д Г В

Г (ц): горизонтальное выравнивание текста

(0 = ОБЫЧНОЕ, 1 = ЛЕВОЕ, 2 = ЦЕНТРАЛЬНОЕ, 3 = ПРАВОЕ)

В (ц): вертикальное выравнивание текста

(0 = ОБЫЧНОЕ, 1 = ПО ВЕРХУ, 2 = ПО ЗАГЛАВНОЙ, 3 = ПО СЕРЕДИНЕ, 4 = ПО ОСНОВАНИЮ, 5 = ПО НИЗУ)

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

"GKSM 37" Д И

И (ц): индекс полигональной области

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

"GKSM 37" Д И

И (ц): индекс полигональной области

________________

* Текст соответствует оригиналу. - .

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

"GKSM 38" Д З

З (ц): вид заполнения полигональной области

(0 = ПУСТО, 1 = ЗАЛИВКА, 2 = ПО ШАБЛОНУ, 3 = ШТРИХОВКА)

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

"GKSM 39" Д ИЗ

ИЗ (ц): индекс заполнения полигональной области

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

"GKSM 40" Д ИЦ

ИЦ (ц): индекс цвета полигональной области

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

"GKSM 41" Д ГШ ВШ

ГШ (2р): горизонталь шаблона

ВШ (2р): вертикаль шаблона

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

"GKSM 42" Д Т

Т (т): точка привязки

ФЛАГИ ВЫБОРКИ АТРИБУТОВ

"GKSM 43" Д Ф

Ф (Вц): флаги выборки атрибутов

(0 = СВЯЗАННЫЙ, 1 = ИНДИВИДУАЛЬНЫЙ)

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

"GKSM 44" Д У

У (ц): идентификатор указания

8. Записи об атрибутах станции

ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ

"GKSM 51" Д И ТЛ МТЛ ИЦ

И (ц): индекс ломаной

ТЛ (ц): номер типа линий

МТЛ (р): масштаб толщины линии

ИЦ (ц): индекс цвета ломаной

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

"GKSM 52" Д И ТМ MM ИЦ

И (ц): индекс полимаркера

ТМ (ц): тип маркера

ММ (р): масштаб маркера

ИЦ (ц): индекс цвета полимаркера

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

"GKSM 53" Д И Ш Т МРЛ МП ИЦ

И (ц): индекс текста

Ш (ц): шрифт текста

Т (ц): точность текста

(0 = ДО СТРОКИ, 1 = ДО СИМВОЛА, 2 = ДО ШТРИХА)

МРЛ (р): масштаб расширения литер

МП (р): межлитерный просвет

ИЦ (ц): индекс цвета текста

ПРЕДСТАВЛЕНИЕ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ

"GKSM 54" Д И З ИЗ ИЦ

И (ц): индекс полигональной области

З (ц): вид заполнения полигональной области

(0 = ПУСТО, 1 = ЗАЛИВКА, 2 = ПО ШАБЛОНУ, 3 = ШТРИХОВКА)

ИЗ (ц): индекс вида заполнения полигональной области

ИЦ (ц): индекс цвета полигональной области

ПРЕДСТАВЛЕНИЕ ШАБЛОНА

"GKSM 55" Д И Н М ИЦ

И (ц): индекс шаблона

Н (ц): число столбцов в массиве

М (ц): число строк в массиве

ИЦ (МНц): таблица индексов цвета, запомненных в порядке строк

ПРЕДСТАВЛЕНИЕ ЦВЕТА

"GKSM 56" Д ИЦ КЗГ

ИЦ (ц): индекс цвета

КЗГ (ц): интенсивности красного, зеленого, голубого

9. Записи о преобразованиях

ПРЯМОУГОЛЬНИК ОТСЕЧЕНИЯ

"GKSM 61" Д П

П (4р): границы прямоугольника отсечения

ОКНО СТАНЦИИ

"GKSM 71" Д О

О (4р): границы окна станции

ПОЛЕ ВЫВОДА СТАНЦИИ

"GKSM 72" Д ПВ

ПВ (4р): границы поля вывода станции

10. Записи о сегментах

СОЗДАТЬ СЕГМЕНТ

"GKSM 81" Д И

И (ц): имя сегмента

ЗАКРЫТЬ СЕГМЕНТ

"GKSM 82" Д

Индикация окончания сегмента

ПЕРЕИМЕНОВАТЬ СЕГМЕНТ

"GKSM 83" Д ИС ИН

ИС (ц): старое имя сегмента

ИН (ц): новое имя сегмента

УНИЧТОЖИТЬ СЕГМЕНТ

"GKSM 84" Д И

И (ц): имя сегмента

11. Записи об атрибутах

ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА

"GKSM 91" Д И М

И (ц): имя сегмента

М (6д): матрица преобразований

M11, M12, М13, М21, М22, М23

ЗАДАТЬ ВИДИМОСТЬ

"GKSM 92" Д И B

И (ц): имя сегмента

В (ц): видимость

(0 = ВИДИМЫЙ, 1 = НЕВИДИМЫЙ)

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

"GKSM 93" Д И В

И (ц): имя сегмента

В (ц): выделение

(0 = НОРМАЛЬНЫЙ, 1 = ВЫДЕЛЕННЫЙ)

ЗАДАТЬ ПРИОРИТЕТ СЕГМЕНТА

"GKSM 93" Д И П

И (ц): имя сегмента

П (р): приоритет сегмента

ЗАДАТЬ ЧУВСТВИТЕЛЬНОСТЬ К УКАЗАНИЮ

"GKSM 95" Д И Ч

И (ц): имя сегмента

Ч (ц): чувствительность к указанию

(0 = УКАЗАННЫЙ, 1 = НЕ УКАЗЫВАЕМЫЙ)

12. Записи пользователя ЯГС

ЗАПИСЬ ПОЛЬЗОВАТЕЛЯ

"GKSM XXX" Д ДН

ХХХ>100

ДН: данные пользователя (Д байтов)



ПРИЛОЖЕНИЕ 8
Справочное


ПРИМЕРЫ ПРОГРАММ

Использование функций ЯГС в программах, написанных на базе языка программирования Паскаль, показано в примерах 1-6.

В примере 1 в пакетном задании создаются примитивы вывода и запоминаются для долговременного хранения в метафайле ЯГС.

Текст, заключенный в фигурные скобки, является комментарием.

Пример 1.

{Определения и объявления опущены}

ОТКРЫТЬ ЯГС;

{станция вывода метафайла}

ОТКРЫТЬ СТАНЦИЮ (МВЫВ, ФАЙЛ-1, МВЫВ);

{Выходные данные направляются в метафайл}

АКТИВИРОВАТЬ СТАНЦИЮ (МВЫВ);

.
.
.

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

ЛОМАНАЯ (число точек, массив координат-точек);

ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ (число точек, массив координат-точек);

ДЕАКТИВИРОВАТЬ СТАНЦИЮ (МВЫВ);

{Метафайл освобождается}

ЗАКРЫТЬ СТАНЦИЮ (МВЫВ);

ЗАКРЫТЬ ЯГС.

В примере 2 в пакетном задании считывается метафайл ЯГС и создаются выходные данные для графопостроителя.

Пример 2.

{Определения и объявления опущены}

ОТКРЫТЬ ЯГС;

{Открывается станция ввода метафайла}

ОТКРЫТЬ СТАНЦИЮ (МВВО, ФАЙЛ-1, МЯГС-ВВОДА);

{Окрывается* станция для графопостроителя}
_______________
* Текст соответствует оригиналу. - .

ОТКРЫТЬ СТАНЦИЮ (ГП, ГПДДО, ПЛАНШЕТНЫЙ ГП);

{Выходные данные направляются на графопостроитель}

АКТИВИРОВАТЬ РАБОЧУЮ СТАНЦИЮ (ГП);

.
.
.

REPEAT

ПОЛУЧИТЬ ТИП ЗАПИСИ ИЗ МЯГС (МВВО, ТИП ЗАПИСИ, ДЛИНА ЗАПИСИ);

ПРОЧИТАТЬ ЗАПИСЬ ИЗ МЯГС (МВВО, ДЛИНА МАССИВА, МАССИВ);

ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ (МВВО, ТИП ЗАПИСИ, ДЛИНА МАССИВА, МАССИВ);

UNTIL ТИП ЗАПИСИ = КОНЕЦ ФАЙЛА;

.
.
.


{Ввод данных на графопостроитель прекращается}

ДЕАКТИВИРОВАТЬ СТАНЦИЮ (ГП);

ЗАКРЫТЬ СТАНЦИЮ (ГП);

{Метафайл освобождается}

ЗАКРЫТЬ СТАНЦИЮ (МВВО);

ЗАКРЫТЬ ЯГС.

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

Сегменты могут быть, например, символами блок-схемы. Они появляются наверху, внизу или у края экрана и используются для построения блок-схемы.

Пример 3.

{Определения и объявления опущены}

ОТКРЫТЬ ЯГС;

{Открывается станция ввода-вывода для устройства отображения на ЭЛТ}

ОТКРЫТЬ СТАНЦИЮ (УОЭЛТ, УОДД, ВЕКТОРУОЭЛТ);

{Открывается станция ввода для графопостроителя}

ОТКРЫТЬ СТАНЦИЮ (ГП, ГПДД, БАРАБАННЫЙ ГП);


{Открывается станция ввода метафайла}

ОТКРЫТЬ СТАНЦИЮ (МВВО, ФАЙЛ 1, МЯГС ВВОДА);

{Открывается независимая от станции память сегментов}

ОТКРЫТЬ СТАНЦИЮ (ОПС 1, НРСПСДД, ОПС);

{Содержимое метафайла отображается на устройстве отображения на ЭЛТ}

{Если имеются сегменты, они запоминаются в общей памяти сегментов}

{Выходные данные направляются на устройство отображения на ЭЛТ}


АКТИВИРОВАТЬ СТАНЦИЮ (УОЭЛТ);

{Выходные данные направляются в общую память сегментов}

АКТИВИРОВАТЬ СТАНЦИЮ (ОПС 1);

{Считывается и интерпретируется МЯГС}

REPEAT

ПОЛУЧИТЬ ТИП ЗАПИСИ ИЗ МЯГС (МЯГС ВВ, ТИП ЗАПИСИ, ДЛИНА ЗАПИСИ);

ПРОЧИТАТЬ ЗАПИСЬ ИЗ МЯГС (МЯГС ВВ ДЛИНА МАССИВА, МАССИВ);

ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ (ТИП ЗАПИСИ, ДЛИНА ЗАПИСИ, МАССИВ);

UNTIL ТИП ЗАПИСИ = КОНЕЦ ФАЙЛА;

{Освобождается метафайл}

ЗАКРЫТЬ СТАНЦИЮ (МВВОД);

{Вывод данных в общую память сегментов прекращается}

ДЕАКТИВИРОВАТЬ СТАНЦИЮ (ОПС 1);

{С этого момента картина, содержащаяся в метафайле, видна на носителе изображения. Сегменты, содержащиеся в графических данных, могут быть использованы для создания новой картины, которая будет выведена на графопостроитель}

REPEAT

{Указывается сегмент и обеспечивается точка позиционирования сегмента}

{Разрешается ввод входных данных выбора элементов в режиме обработки событий}

ЗАДАТЬ РЕЖИМ УКАЗАНИЯ (УОЛТ, 1, СОБЫТИЕ, ЭХО);

{Разрешается ввод позиций в режиме обработки событий}

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОЗИЦИИ (УОЛТ, 1, СОБЫТИЕ, ЭХО);

FOR I=1 ТО 2 DO BEGIN

{Считывается одно событие выбора элементов О и одно событие ввода позиций в произвольном порядке}

{Устанавливается время ожидания, равное продолжительности рабочего дня}

ВРЕМЯ ОЖИДАНИЯ = 8 часов;

{Ожидаются входные данные выбора элементов и ввода позиций}

ОЖИДАТЬ СОБЫТИЕ (ВРЕМЯ ОЖИДАНИЯ, PC, КЛАСС, НОМЕРЛУВ);

КЛАСС = ВЫБОР


{Получено имя сегмента}

ПОЛУЧИТЬ УКАЗАТЕЛЬ (СОСТОЯНИЕ, ИМЯ СЕГМЕНТА, ИДЕНТИФИКАТОР ВЫБОРА);


ЗАДАТЬ РЕЖИМ УКАЗАНИЯ (УОЭЛТ, 1, ЗАПРОС, ЭХО);

{Получена точка позиционирования сегмента}

ПОЛУЧИТЬ ПОЗИЦИЮ (НОМЕР ПРЕОБРАЗОВАНИЯ 1, ТОЧКА, ЭХО);

ЗАДАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (НОМЕР ПРЕОБРАЗОВАНИЯ 1);

{Ожидается, что последующие точки должны быть в пределах поля вывода преобразования нормирования, заданного параметром

НОМЕР ПРЕОБРАЗОВАНИЯ 1. Это преобразование должно иметь номер 0, так как никакие преобразования явно не задавались}.

{Подготавливается логическое устройство ввода чисел номер 1, которое будет иметь начальное значение 1, диапазон значений от 0 до 19 и область эха справа вверху}

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ЧИСЛА (УОЭЛТ, 1, 1, 1, (0.95, 1.0), (0.95, 1.0), (0, 10));

{Подготавливается логическое устройство ввода чисел номер 2, которое будет иметь начальное значение 0, диапазон значений от 0 до 3.14 и область эха слева от области логического устройства ввода числа номер 1}

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ЧИСЛА (УОЛТ, 2.0, 1, (0.90, 0.95), (0.95, 1.0), (0, 3.14));

{Подготавливается логическое устройство ввода позиций номер 1, которое будет иметь в качестве начального значения точку позиционирования сегмента и подсказку и эхо в виде вертикальной и горизонтальной пересекающихся линий, проходящих через весь экран}

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (УОЭЛТ, 1, ТОЧКА 1, НОМЕР ПРЕОБРАЗОВАНИЯ 1, 2, (0.0, 1.0), (0.0, 1.0), ПУСТО);

{Разрешается ввод данных с логического устройства ввода числа номер 1 в режиме опроса}

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ЧИСЛА (УОЭЛТ, 1, ОПРОС, ЭХО);

{Разрешается ввод данных с логического устройства ввода числа номер 2 в режиме опроса}

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ЧИСЛА (УОЭЛТ, 2, ОПРОС, ЭХО);

{Разрешается ввод позиций в режиме опроса}

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОЗИЦИИ (УОЭЛТ, 1, ОПРОС, ЭХО);

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

ЗАДАТЬ РЕЖИМ ВЫБОРА (УОЭЛТ, 1, СОБЫТИЕ, ЭХО);

{Преобразование сегмента с именем, заданным переменной}

ИМЯ СЕГМЕНТА

{Подготавливается матрица преобразований}

СФОРМУЛИРОВАТЬ МАТРИЦУ ПРЕОБРАЗОВАНИЙ ((0,0), (0.0), 0, (1.1), МК, МАТРИЦА);

REPEAT

{Коэффициент масштабирования}

ОПРОСИТЬ УСТРОЙСТВО ВВОДА ЧИСЛА (УОЭЛТ, 1, МАСШТАБ);

{Угол поворота}

ОПРОСИТЬ УСТРОЙСТВО ВВОДА ЧИСЛА (УОЭЛТ, 2, УГОЛ);

{Точка, в которую будет передвигаться сегмент}

ОПРОСИТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (УОЭЛТ, 1, НОМЕР ПРЕОБРАЗОВАНИЯ 2, ТОЧКА 2);

IF НОМЕР ПРЕОБРАЗОВАНИЯ 1 = НОМЕР ПРЕОБРАЗОВАНИЯ 2

THEN GO TO КОНЕЦ ЦИКЛА;

{Перемножаются матрицы преобразований}

ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ (МАТРИЦА, ТОЧКА 1, ТОЧКА 2 ТОЧКА 1 УГОЛ, (МАСШТАБ, МАСШТАБ) МК, МАТРИЦА ИТОГ);

{Сегмент, имя которого задано переменной ИМЯ СЕГМЕНТА, масштабируется с использованием коэффициентов масштабирования по Х и Y направлениям, заданным переменной МАСШТАБ, относительно точки, заданной параметром ТОЧКА 1, поворачивается на угол, заданный параметром УГОЛ, относительно точки, заданной параметром ТОЧКА 1, и, наконец, сдвигается из точки, заданной параметром ТОЧКА 1, в точку, заданную параметром ТОЧКА 2}

ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА (ИМЯ СЕГМЕНТА, МАТРИЦА ИТОГ);

ВРЕМЯ ОЖИДАНИЯ: 0;

{Осуществляется проверка: имеются входные данные выбора альтернативы или нет}

ОЖИДАТЬ СОБЫТИЕ {ВРЕМЯ ОЖИДАНИЯ PC, КЛАСС, НОМЕР ЛУВ);

{Преобразование сегмента закончено, если имеются входные данные устройства выбора}

UNTIL КЛАСС-ВЫБОР;

КОНЕЦ ЦИКЛА;

{Прекращается ввод данных с логического устройства ввода числа номер 1 в режиме опроса}

ЗАДАТЬ РЕЖИМ ВВОДА ЧИСЛА (УОЭЛТ, 1, ЗАПРОС, ЭХО);

{Прекращается ввод данных с логического устройства ввода числа номер 2 в режиме опроса}

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ЧИСЛА (УОЭЛТ, 2, ЗАПРОС, ЭХО);

{Прекращается ввод позиций в режиме опроса}

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОЗИЦИЙ (УОЭЛТ, 1, ЗАПРОС, ЭХО);

{Преобразованный сегмент выводится на графопостроитель}

ВЫВЕСТИ СЕГМЕНТ НА СТАНЦИЮ (ГП, ИМЯ СЕГМЕНТА);

ПОЛУЧИТЬ АЛЬТЕРНАТИВУ (СОСТОЯНИЕ ВЫБОРА, АЛЬТЕРНАТИВА);

{Прекращается ввод альтернатив в режиме обработки событий}

УСТАНОВИТЬ РЕЖИМ ВЫБОРА (УОЭЛТ, 1, ЗАПРОС, ЭХО);

{Значение параметра АЛЬТЕРНАТИВА, равное 2, указывает на завершение создания картины}

UNTIL АЛЬТЕРНАТИВА = 2 AND СОСТОЯНИЕ ВЫБОРА = ДА

ДЕАКТИВИРОВАТЬ РАБОЧУЮ СТАНЦИЮ (УОЭЛТ);

ЗАКРЫТЬ СТАНЦИЮ (УОЭЛТ);

ЗАКРЫТЬ СТАНЦИЮ (ОПС 1);

ЗАКРЫТЬ ЯГС;

В примере 4 с помощью интерактивной станции генерируется многоугольник, который затем модифицируется в интерактивном режиме и вычерчивается на графопостроителе.

Пример 4.

{Определения и объявления опущены}

ОТКРЫТЬ ЯГС;

ОТКРЫТЬ СТАНЦИЮ (УОЭЛТ, УОЭЛТДД, 3);

АКТИВИРОВАТЬ СТАНЦИЮ (УОЭЛТ);

ОТКРЫТЬ СТАНЦИЮ (ПСЕГ, СЕГДД, ОПС);

АКТИВИРОВАТЬ СТАНЦИЮ (ПСЕГ);

{Устанавливается преобразование нормирования}

ЗАДАТЬ ОКНО (1, ГРАНИЦЫ ОКНА);

ЗАДАТЬ ПОЛЕ ВЫВОДА (1, ГРАНИЦЫ ПОЛЯ);

ЗАДАТЬ ВХОДНОЙ ПРИОРИТЕТ ПОЛЯ ВЫВОДА (1, 0, ВЫШЕ);

{Конструирование сегмента с именем МНОГОУГОЛЬНИК}

СОЗДАТЬ СЕГМЕНТ (МНОГОУГОЛЬНИК);

ЗАДАТЬ ИНДЕКС ЛОМАНОЙ (3);

НОМЕР ТОЧКИ: =1;

ЗАПРОСИТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (УОЭЛТ, 1, СОСТОЯНИЕ, ПРЕОБРАЗОВАНИЕ 1, Т [1]);

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (ПРЕОБРАЗОВАНИЕ 1);

REPEAT

НОМЕР ТОЧКИ: = НОМЕР ТОЧКИ + 1; .

ЗАПРОСИТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (УОЭЛТ, 1, СОСТОЯНИЕ, ПРЕОБРАЗОВАНИЕ, Т [НОМЕР ТОЧКИ]);

UNTIL СОСТОЯНИЕ = ОТБОЙ OR ПРЕОБРАЗОВАНИЕ-ПРЕОБРАЗОВАНИЕ 1;

Т [НОМЕР ТОЧКИ]: = Т [1];

ЛОМАНАЯ (НОМЕР ТОЧКИ, Т);

ЗАКРЫТЬ СЕГМЕНТ;

{Подготавливается матрица преобразований}

СФОРМИРОВАТЬ МАТРИЦУ ПРЕОБРАЗОВАНИЙ (0.0), (0.0), 0, (1.1), МК, МАТРИЦА);

REPEAT

ЗАПРОСИТЬ УСТРОЙСТВО ВЫБОРА (УОЭЛТ, 1, СОСТОЯНИЕ, ВЫБОР);

IF СОСТОЯНИЕ = ОТБОЙ OR СОСТОЯНИЕ = НЕТ ВЫБОРА GO TO КОНЕЦ ЦИКЛА;

CASE ВЫБОР OF

{Сдвиг многоугольника в заданную позицию}

СДВИГ: BEGIN

ЗАПРОСИТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (УОЭЛТ, 1, СОСТОЯНИЕ, ПРЕОБРАЗОВАНИЕ 2, Т1);

IF СОСТОЯНИЕ = ОТБОЙ GO ТО КОНЕЦ ЦИКЛА;

ЗАПРОСИТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (УОЭЛТ, 1, СОСТОЯНИЕ, ПРЕОБРАЗОВАНИЕ 2, Т2);

IF СОСТОЯНИЕ = ОТБОЙ OR ПРЕОБРАЗОВАНИЕ = ПРЕОБРАЗОВАНИЕ 2, GO TO КОНЕЦ ЦИКЛА;

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (ПРЕОБРАЗОВАНИЕ 2);

ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ (МАТРИЦА, (0.0), Т2-Т1, 0, (1, 1), МК, МАТРИЦА ИТОГ);

ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА (МНОГОУГОЛЬНИК, МАТРИЦА ИТОГ);

END;

{Масштабирование многоугольника}

УВЕЛИЧЕНИЕ: BEGIN

.
.
.

END:

{Поворот многоугольника}

поворот: BEGIN

.
.
.

END;

ELSE;

ENDCASE;

ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ (УОЛТ, ВЫПОЛНИТЬ);

UNTIL ВЫБОР = СДВИГ, УВЕЛИЧЕНИЕ, ПОВОРОТ;

{Многоугольник выводится на графопостроитель}

ДЕАКТИВИРОВАТЬ СТАНЦИЮ (УОЭЛТ);

ДЕАКТИВИРОВАТЬ СТАНЦИЮ (ПСЕГ);

ОТКРЫТЬ СТАНЦИЮ (ГП, ГПДД, ГПЧПЕРА);

АКТИВИРОВАТЬ СТАНЦИЮ (ГП);

{Задаются представления примитивов для станции}

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА (ГП, ЦВЕТ 1, (1, 0, 0));

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ (ГП, 3, 1, 1.5, ЦВЕТ 1);

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА (ГП, 2, 1, 0, ЦВЕТ 1);

ЗАДАТЬ ПОЛЕ ВЫВОДА СТАНЦИИ (ГП, 0, РХ, 0, PY);

ВЫВЕСТИ СЕГМЕНТ НА СТАНЦИЮ (ГП, МНОГОУГОЛЬНИК);

ЗАДАТЬ ИНДЕКС ТЕКСТА (2);

ЗАДАТЬ ВЫСОТУ ЛИТЕРЫ (0.1);

ТЕКСТ ((0.5, 0.5), "ЭТО МНОГОУГОЛЬНИК");

ДЕАКТИВИРОВАТЬ СТАНЦИЮ (ГП);

ЗАКРЫТЬ СТАНЦИЮ (ГП);

ЗАКРЫТЬ СТАНЦИЮ (УОЭЛТ);

ЗАКРЫТЬ СТАНЦИЮ (ПСЕГ);

ЗАКРЫТЬ ЯГС:

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

Пример 5.

{Определения и объявления опущены}

ОТКРЫТЬ ЯГС;

ОТКРЫТЬ СТАНЦИЮ (МЯГС ВВ, ФАЙЛ 1, МЯГС ВВОДА);

ОТКРЫТЬ СТАНЦИЮ (ПСЕГ, ПСДД, ОПС);

АКТИВИРОВАТЬ СТАНЦИЮ (ПСЕГ);

REPEAT

ПОЛУЧИТЬ ТИП ЗАПИСИ ИЗ МЯГС (МЯГС ВВ, ТИП ЗАПИСИ, ДЛИНА ЗАПИСИ);

ПРОЧИТАТЬ ЗАПИСЬ ИЗ МЯГС (МЯГС ВВ, ДЛИНА МАССИВА, МАССИВ);

UNTIL ТИП ЗАПИСИ = КОНЕЦ ФАЙЛА;

ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ (МЯГС ВВ, ТИП ЗАПИСИ, ДЛИНА МАССИВА, МАССИВ);

ДЕАКТИВИРОВАТЬ СТАНЦИЮ (ПСЕГ);

{Открывается и активируется станция для графопостроителя}

ОТКРЫТЬ СТАНЦИЮ (ГП, ГПДД, ПЛАНШЕТНЫЙ ГП);

АКТИВИРОВАТЬ СТАНЦИЮ (ГП);

{Устанавливается система координат}

ЗАДАТЬ ОКНО (1, ГРАНИЦЫ ОКНА);

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (ПРЕОБРАЗОВАНИЕ 1);

СФОРМИРОВАТЬ МАТРИЦУ ПРЕОБРАЗОВАНИЙ (0.0), (0,0), 0, (1.1), МК, МАТРИЦА);

REPEAT

ПРОЧИТАТЬ (ТИП СИМВОЛА, (ХПОЗ, УПОЗ), УГОЛ);

CASE ТИП СИМВОЛА OF

ТРАНЗИСТОР:

ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ (МАТРИЦА, (0.0), (ХПОЗ, УПОЗ), УГОЛ, (1.1), МК, МАТРИЦА ИТОГ);

ВСТАВИТЬ СЕГМЕНТ (СЕГ ТРАНЗИСТОР, МАТРИЦА ИТОГ);

СОПРОТИВЛЕНИЕ:

ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ (МАТРИЦА, (0.0), (ХПОЗ, УПОЗ), УГОЛ, (1.1), МК, МАТРИЦА ИТОГ);

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

СОЕДИНЕНИЕ:

{Считываются параметры из неграфического файла};

ПРОЧИТАТЬ (ХПОЗ1, УПОЗ1)

ЛОМАНАЯ (2, (ХПОЗ, УПОЗ), (ПОЗ1, УПОЗ1))

.
.
.

ENDCASE;

UNTIL КОНЕЦ ВХОДНОГО ФАЙЛА;

ДЕАКТИВИРОВАТЬ СТАНЦИЮ (ГП);

ЗАКРЫТЬ СТАНЦИЮ (ГП);

ЗАКРЫТЬ СТАНЦИЮ (МВВО);

ЗАКРЫТЬ ЯГС;

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

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

Для создания нового изображения в новом окне требуется ввод позиции, указывающей на область команды, находящуюся внизу области изображения, содержащую надпись НОВЫЙ ВИД. Две последующие позиции задают нижний левый угол и верхний правый угол поля вывода изображения.

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

Пример 6.

{Определения и объявления опущены}

ОТКРЫТЬ ЯГС;

ОТКРЫТЬ СТАНЦИЮ (ПЕРВАЯ, ВВДД, УОЭЛТ);

АКТИВИРОВАТЬ СТАНЦИЮ (ПЕРВАЯ);

{Установить окно для рисования всей картины}

ЗАДАТЬ ОКНО (1, 0, 100, 0, 100);

ЗАДАТЬ ПОЛЕ ВЫВОДА (1, 0.5, 0.95, 0.4, 0.8);

{Задается окно для отображения и рисования увеличений фрагментов изображения. В начальный момент отображается все изображение}

ЗАДАТЬ ОКНО (2, 0, 100, 0, 100);

ЗАДАТЬ ПОЛЕ ВЫВОДА (2, 0.05, 0.45, 0.4, 0.8);

{Задаются окна для команд}

ЗАДАТЬ ОКНО (3, 0, 8, 0, 1);

ЗАДАТЬ ПОЛЕ ВЫВОДА (3, 0.1, 0.9, 0.05, 0.15);

ЗАДАТЬ ОКНО (4, 0, 8, 0, 1);

ЗАДАТЬ ПОЛЕ ВЫВОДА (4, 0.1, 0.9, 0.15, 0.25);

ЗАДАТЬ ВХОДНОЙ ПРИОРИТЕТ ПОЛЯ ВЫВОДА (1, 0, ВЫШЕ);

ЗАДАТЬ ВХОДНОЙ ПРИОРИТЕТ ПОЛЯ ВЫВОДА (2, 1, ВЫШЕ);

ЗАДАТЬ ВХОДНОЙ ПРИОРИТЕТ ПОЛЯ ВЫВОДА (3, 2, ВЫШЕ);

ЗАДАТЬ ВХОДНОЙ ПРИОРИТЕТ ПОЛЯ ВЫВОДА (4, 3, ВЫШЕ);

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (3);

ЗАДАТЬ ВЫСОТУ ЛИТЕР (0.8);

ТЕКСТ ((0.1, 0.1), "НОВЫЙ ВИД");

Т[1] = (0,0);

Т[2] = (0,1);

Т[3] = (8,1);


Т[4] = (8,0);

Т[5] = Т[1];

ЛОМАНАЯ (5, т);

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (4);

ТЕКСТ ((0.1, 0.1), "РАЗРЫВ");

ЛОМАНАЯ (5, т);

Т1[1] = (0,0);

Т1[2] = (0,100);

T1[3] = (100, 100);

T1[4] = (100,0);

T1[5] = T1[1];

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (2);

ЛОМАНАЯ (5, Т1);

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (1);

ЛОМАНАЯ (5, Т1);

{Были установлены и нарисованы границы областей. Массив КАРТИНА содержит пары точек, определяющих линии картины. Следующие программы используются в примере, но не запрограммированы}:

РИСОВАНИЕ КАРТИНЫ - воспроизводит все ломаные, хранящиеся в массиве КАРТИНА в окне, которое выбрано в качестве текущего.

ДОБАВЛЕНИЕ К КАРТИНЕ (Т) - добавляется точка Т в массив КАРТИНА.

НОВАЯ ЛОМАНАЯ В КАРТИНЕ - добавляется точка Т в массив КАРТИНА и указывается, что начинается новая ломаная.

УДАЛЕНИЕ КАРТИНЫ - из окна, которое выбрано в качестве текущего, удаляется весь набор ломаных.

ВЫВОД КАРТИНЫ - картина выводится в метафайл или на графопостроитель}

{Запрещается рисование вне поля вывода}

ЗАДАТЬ ИНДИКАТОР ОТСЕЧЕНИЯ (ОТСЕЧЕНИЕ);

{Подготавливается логическое устройство ввода позиции номер 1 в станции ПЕРВАЯ. Задается подсказка и это* в виде пересечения вертикальной и горизонтальной линий, проходящих через весь экран}

________________

* Текст документа соответствует оригиналу. - .

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (ПЕРВАЯ, 1, (0.0), 1, 2, (0.0), (1.1), ПУСТО);

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОЗИЦИИ (ПЕРВАЯ, 1, ЗАПРОС, ЭХО);

ПОСЛПОЗ = НУЛЬПОЗ;

REPEAT

ЗАПРОСИТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (ПЕРВАЯ, 1, СОСТОЯНИЕ, ПРЕОБР, ПОЗ);

IF СОСТОЯНИЕ = ОТБОЙ THEN GO TO ФИНАЛ;

IF ПРЕОБР = 3 ИЛИ ПРЕОБР = 4 THEN

BEGIN

REPEAT

ПРЕОБР1 = ПРЕОБР;

ЗАПРОСИТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (ПЕРВАЯ, 1, СОСТОЯНИЕ, ПРЕОБР, ПОЗ);

IF СОСТОЯНИЕ = ОТБОЙ ИЛИ ПРЕОБР = 0 THEN GO TO ФИНАЛ;

{Наличие следующей проверки позволяет ввести второй список команд в области команд}

IF ПРЕОБР = 3 ИЛИ ПРЕОБР = 4 THEN GO TO СЛЕДУЮЩИЙ;

{В настоящее время имеется номер преобразования нормирования ПРЕОБР1, задающий действие и позиция ПОЗ в окне 1 или в окне 2}

IF ПРЕОБР1 = 3 THEN

{Увеличение. Необходимо две границы}

{Вторая граница устанавливается путем использования подсказки и эха в виде прямоугольника, диагональ которого перемещается методом "резиновая нить"}

BEGIN

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (ПЕРВАЯ, 1, ПОЗ, ПРЕОБР, 5, (0,0), (1,1), ПУСТО);

ЗАПРОСИТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (ПЕРВАЯ, 1, СОСТОЯНИЕ, ПРЕОБР, ВЕРХНЯЯ ПРАВАЯ);

IF СОСТОЯНИЕ = ОТБОЙ ИЛИ ПРЕОБР = 0 THEN GO TO ФИНАЛ;

IF ПРЕОБР = 3 ИЛИ ПРЕОБР = 4 THEN GO TO СЛЕДУЮЩИЙ;

{Сейчас введенная точка находится в одной из областей для рисования картины}

{Сначала восстанавливается состояние логического устройства ввода позиции}

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ (ПЕРВАЯ, 1, (0,0), 1, 2, (0.0), (1.1), ПУСТО);

{Затем задаются новые границы окна и пересматривается картина}

ЗАДАТЬ ОКНО (2, ПОЗ. X, ВЕРХНЯЯ ПРАВАЯ. X, ПОЗ. Y, ВЕРХНЯЯ ПРАВАЯ. Y);

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (2);

УДАЛЕНИЕ КАРТИНЫ;

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

END;

ELSE;

BEGIN;

НОВАЯ ЛОМАНАЯ В КАРТИНЕ (ПОЗ);

ПОСЛПОЗ = ПОЗ;

END;

GO TO ВЫХОД ИЗ ЦИКЛА;

СЛЕДУЮЩИЙ:

UNTIL FALSE;

ВЫХОД ИЗ ЦИКЛА;

END;

ELSE

IF ПРЕОБР = 1 ИЛИ ПРЕОБР = 2 THEN

BEGIN

{Логическое устройство ввода позиции находилось в одной из двух областей рисования картины}

IF ПОСЛПОЗ = НУЛЬПОЗ THEN

BEGIN

НОВАЯ ЛОМАНАЯ В КАРТИНЕ (ПОЗ);

ПОСЛПОЗ = ПОЗ;

END;

ELSE;

BEGIN

ДОБАВЛЕНИЕ К КАРТИНЕ (ПОЗ);

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (1);

ЛОМАНАЯ (2, (ПОСЛПОЗ, ПОЗ));

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ (2);

ЛОМАНАЯ (2, (ПОСЛПОЗ, ПОЗ));

END;

END;

ELSE GO TO ОШИБКА;

UNTIL FALSE;

ФИНАЛ;

ВЫВОД КАРТИНЫ;

ДЕАКТИВИРОВАТЬ СТАНЦИЮ (ПЕРВАЯ);

ЗАКРЫТЬ СТАНЦИЮ (ПЕРВАЯ);

ЗАКРЫТЬ ЯГС.



ПРИЛОЖЕНИЕ 9
Справочное



Таблица 17


КРАТКОЕ ОПИСАНИЕ ФУНКЦИЙ ЯГС

Наименование функции

Действие

1. Функции управления

ОТКРЫТЬ ЯГС

Начинается работа с ЯГС

ЗАКРЫТЬ ЯГС

Завершается работа с ЯГС

ОТКРЫТЬ СТАНЦИЮ

Создается соединение между станцией и ЯГС

ЗАКРЫТЬ СТАНЦИЮ

Соединение между станцией и ЯГС прерывается

АКТИВИРОВАТЬ СТАНЦИЮ

Выходные данные передаются на станцию

ДЕАКТИВИРОВАТЬ СТАНЦИЮ

Передача выходных данных на станцию прекращается

ОЧИСТИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ

Выполняются все отложенные действия и очищается поле вывода

ПЕРЕРИСОВАТЬ ВСЕ СЕГМЕНТЫ НА СТАНЦИИ

Повторно рисуются все видимые сегменты, содержащиеся в ПСС

ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ

Выполняются все отложенные действия и повторно отображаются все видимые сегменты, содержащиеся в ПСС

ЗАДАТЬ РЕЖИМ ЗАДЕРЖКИ

Задается состояние задержки для станции

СООБЩЕНИЕ

К станции посылается сообщение

РАСШИРЕНИЕ

Описание нестандартных свойств оборудования

2. Функции вывода графических данных

ЛОМАНАЯ

Генерируется ломаная линия, заданная точками в мировых координатах

ПОЛИМАРКЕР

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

ТЕКСТ

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

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

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

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

Заданная матрица индексов цвета привязывается к полю вывода

ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОД (ОПВ)

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

3. Функции задания атрибутов выходных данных

3.1. Функции задания независимых от станций атрибутов примитивов

ЗАДАТЬ ИНДЕКС ЛОМАНОЙ

Задается индекс связи ломаной

ЗАДАТЬ ТИП ЛИНИЙ

Задается тип линий, который используется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬНЫЙ

ЗАДАТЬ МАСШТАБ ТОЛЩИНЫ ЛИНИИ

Задается масштаб толщины линии, который используется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬНЫЙ

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

Задается индекс цвета ломаной, который используется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬНЫЙ

ЗАДАТЬ ИНДЕКС ПОЛИМАРКЕРА

Задается индекс связки для полимаркера

ЗАДАТЬ ТИП МАРКЕРА

Задается тип маркера, который используется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬНЫЙ

ЗАДАТЬ МАСШТАБ МАРКЕРА

Задается масштаб маркера, который используется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬНЫЙ

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

Задается индекс цвета полимаркера, который используется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬНЫЙ

ЗАДАТЬ ИНДЕКС ТЕКСТА

Выбирается индекс связки для текста

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

Задается шрифт и точность текста, которые используются, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬНЫЙ

ЗАДАТЬ МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ

Задается масштаб, который используется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬНЫЙ

ЗАДАТЬ МЕЖЛИТЕРНЫЙ ПРОСВЕТ

Задается величина промежутка между литерами, который используется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬНЫЙ

ЗАДАТЬ ИНДЕКС ЦВЕТА ТЕКСТА

Задается индекс цвета текста, который используется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬНЫЙ

ЗАДАТЬ ВЫСОТУ ЛИТЕРЫ

Задается высота литеры

ЗАДАТЬ ВЕРТИКАЛЬ ЛИТЕРЫ

Задается вертикаль литеры

ЗАДАТЬ НАПРАВЛЕНИЕ ТЕКСТА

Задается одно из возможных направлений текста ВПРАВО, ВЛЕВО, ВВЕРХ или ВНИЗ

ЗАДАТЬ ВЫРАВНИВАНИЕ ТЕКСТА

Задается горизонтальное и вертикальное выравнивание текста

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

Задается индекс связок для примитива вывода полигональная область

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

Задается вид заполнения полигональной области, который используется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬНЫЙ

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

Задается индекс вида заполнителя полигональной области, который используется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬНЫЙ

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

Задается индекс цвета полигональной области, который используется, когда соответствующий ФВА имеет значение ИНДИВИДУАЛЬНЫЙ

ЗАДАТЬ РАЗМЕР ШАБЛОНА

Задается размер шаблона, используемый при создании примитивов полигональная область с видом заполнения ПО ШАБЛОНУ

ЗАДАТЬ ТОЧКУ ПРИВЯЗКИ ШАБЛОНА

Задается точка привязки шаблона, используемая при создании примитивов полигональная область с видом заполнения ПО ШАБЛОНУ

ЗАДАТЬ ФЛАГИ ВЫБОРКИ АТРИБУТОВ

Значение каждой негеометрической характеристики примитива извлекается из соответствующего индивидуального атрибута или из подходящей связки станции

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

Задается идентификатор указания

3.2. Функции задания зависящих от станции атрибутов примитивов

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ

Определяется представление ломаной на станции

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА

Определяется представление полимаркера на станции

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА

Определяется представление текста на станции

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

Определяется представление полигональной области на станции

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА

Определяется шаблон, который следует связать с индексом шаблона (т.е. с индексом заполнителя полигональной области)

ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА

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

4. Функции преобразований

4.1. Функции задания преобразований нормирования

ЗАДАТЬ ОКНО

Задается окно в мировых координатах для указанного преобразования нормирования

ЗАДАТЬ ПОЛЕ ВЫВОДА

Задается поле вывода в нормированных координатах для указанного преобразования нормирования

ЗАДАТЬ ПРИОРИТЕТ ПОЛЯ ВЫВОДА ПРИ ВВОДЕ

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

ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ

Выбирается преобразование нормирования для данных ввода

ЗАДАТЬ ИНДИКАТОР ОТСЕЧЕНИЯ

Включается или выключается индикатор отсечения для преобразования нормирования

4.2. Функции задания преобразований станции

ЗАДАТЬ ОКНО СТАНЦИИ

Задается окно в нормированных координатах

ЗАДАТЬ ПОЛЕ ВЫВОДА СТАНЦИИ

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

5. Функции сегментации

5.1. Функции действий над сегментами

СОЗДАТЬ СЕГМЕНТ

Создается сегмент и начинается его конструирование

ЗАКРЫТЬ СЕГМЕНТ

Заканчивается конструирование сегмента

ПЕРЕИМЕНОВАТЬ СЕГМЕНТ

Изменяется имя сегмента

УНИЧТОЖИТЬ СЕГМЕНТ

Уничтожается сегмент

УДАЛИТЬ СЕГМЕНТ СО СТАНЦИИ

Сегмент удаляется с указанной станции

СВЯЗАТЬ СЕГМЕНТ СО СТАНЦИЕЙ

Сегмент, присутствующий в общей памяти сегментов, связывается с открытой станцией

ВЫВЕСТИ КОПИЮ СЕГМЕНТА НА СТАНЦИЮ

Примитивы сегмента, присутствующего в общей памяти сегментов, копируются на станцию

ВСТАВИТЬ СЕГМЕНТ

Сегмент из общей памяти сегментов (после выполнения преобразования сегмента и заданного в данной функции преобразования вставки) вставляется в открытый сегмент или в поток примитивов вне сегментов

5.2. Функции задания атрибутов сегментов

ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА

Задается матрица преобразования сегмента для указанного сегмента

ЗАДАТЬ ВИДИМОСТЬ

Сегмент отмечается как видимый или невидимый

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

Сегмент отмечается как выделенный или невыделенный

ЗАДАТЬ ПРИОРИТЕТ СЕГМЕНТА

Устанавливается приоритет сегмента

ЗАДАТЬ ЧУВСТВИТЕЛЬНОСТЬ К УКАЗАНИЮ

Сегмент отмечается как обнаруживаемый или не обнаруживаемый

6. Функции ввода

6.1. Функции инициализации устройств ввода

ИНИЦИАЛИЗИРОВАТЬ ВВОД ПОЗИЦИИ

Подготавливается указанное устройство ввода позиции

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

Подготавливается указанное устройство ввода последовательности позиций

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ЧИСЛА

Подготавливается указанное устройство ввода числа

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВЫБОРА

Подготавливается указанное устройство выбора

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО УКАЗАНИЯ

Подготавливается указанное устройство указания

ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА СТРОКИ

Подготавливается указанное устройство ввода строки

6.2. Функции задания режима работы устройства ввода

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОЗИЦИИ

Задается режим работы указанного устройства ввода позиции

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

Задается режим работы указанного устройства ввода последовательности позиций

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ЧИСЛА

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

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВЫБОРА

Задается режим работы указанного устройства выбора

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА УКАЗАНИЯ

Задается режим работы указанного устройства указания

ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА СТРОКИ

Задается режим работы указанного устройства ввода строки

6.3. Функции запроса входных данных

ЗАПРОСИТЬ ВВОД ПОЗИЦИИ

От указанного устройства ввода позиции запрашивается позиция в мировых координатах и номер преобразования нормирования

ЗАПРОСИТЬ ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

От указанного устройства ввода последовательности позиций запрашивается позиция в мировых координатах и номер преобразования нормирования

ЗАПРОСИТЬ ВВОД ЧИСЛА

От указанного устройства ввода числа запрашивается действительное число

ЗАПРОСИТЬ ВЫБОР

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

ЗАПРОСИТЬ УКАЗАНИЕ

От указанного устройства указания запрашивается имя сегмента, идентификатор выбора и состояния выбора

ЗАПРОСИТЬ ВВОД СТРОКИ

От указанного устройства ввода строки запрашивается набор литер

6.4. Функции опроса входных данных

Эти функции проверяют режим работы логических устройств ввода и возвращают значения логических входных данных без ожидания каких-либо действий оператора

ОПРОСИТЬ ВВОД ПОЗИЦИИ

Опрашивается устройство ввода позиции, что приводит к считыванию точки в мировых координатах и номера преобразования нормирования

ОПРОСИТЬ ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ

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

ОПРОСИТЬ ВВОД ЧИСЛА

Опрашивается устройство ввода числа, что приводит к считыванию действительного числа

ОПРОСИТЬ ВЫБОР

Опрашивается устройство выбора, что приводит к считыванию целого положительного числа, которое представляет выбор из набора альтернатив

ОПРОСИТЬ УКАЗАНИЕ

Опрашивается устройство указания, что приводит к считыванию имени сегмента, идентификатора выбора и состояния выбора

ОПРОСИТЬ ВВОД СТРОКИ

Опрашивается устройство ввода строки, что приводит к считыванию набора литер

6.5. Функции обработки входных данных в режиме событий

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

ОЖИДАТЬ СОБЫТИЕ

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

УДАЛИТЬ СОБЫТИЯ ОТ УСТРОЙСТВА

Из входной очереди удаляются все сообщения о событиях, полученные от указанного логического устройства ввода

ПОЛУЧИТЬ ПОЗИЦИЮ

Позиция в мировых координатах и номер преобразования нормирования передаются прикладной программе из текущего сообщения о событии

ПОЛУЧИТЬ ПОСЛЕДОВАТЕЛЬНОСТЬ ПОЗИЦИЙ

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

ПОЛУЧИТЬ ЧИСЛО

Действительное число передается прикладной программе из текущего сообщения о событии

ПОЛУЧИТЬ ВЫБОР

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

ПОЛУЧИТЬ УКАЗАНИЕ

Имя сегмента, идентификатор выбора и состояние выбора передаются прикладной программе из текущего сообщения о событии

ПОЛУЧИТЬ СТРОКУ

Набор литер передается прикладной программе из текущего сообщения о событии

7. Функции метафайла

ЗАПИСАТЬ В МЕТАФАЙЛ

Неграфические данные из прикладной программы записываются в метафайл

ПОЛУЧИТЬ ТИП ЗАПИСИ МЕТАФАЙЛА

Тип и длина поля данных следующей записи из метафайла передаются прикладной программе

ПРОЧИТАТЬ ЗАПИСЬ МЕТАФАЙЛА

Текущая графическая или пользовательская запись из метафайла передается прикладной программе

ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ

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

8. Справочные функции

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

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

Функциональное состояние ЯГС может быть выяснено при закрытом ЯГС.

9. Вспомогательные функции

СФОРМИРОВАТЬ МАТРИЦУ ПРЕОБРАЗОВАНИЙ

Формируется матрица преобразования, заданная коэффициентами масштабирования, поворота и сдвига. Результат помещается в выходной параметр "матрица преобразования"

ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ

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

10. Функции обработки ошибок

АВАРИЙНО ЗАКРЫТЬ ЯГС

В случае ошибки ЯГС закрывается и сохраняется максимальное количество информации

ОБРАБОТАТЬ ОШИБКУ

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

ЗАРЕГИСТРИРОВАТЬ ОШИБКУ

Процедура, вызываемая стандартной процедурой обработки ошибок ЯГС. Эта процедура печатает сообщение об ошибке и идентификатор функции в файл ошибок




Электронный текст документа
и сверен по:

М.: Издательство стандартов, 1989