Другие допустимые различия распадаются на две категории:

глобальные различия;

различия, зависящие от станции.

  1. Глобальные различия

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

  1. Функциональная сфера: уровень ЯГС.

  2. Возможности:

число доступных типов станций;

список доступных типов станций;

максимальное число одновременно открытых станций;

максимальное число одновременно активных станций;

максимальное число станций, связанных с сегментом;

максимальное число преобразований нормирования;

количество одновременно определимых сегментов (на станцию);

максимальный размер входной очереди;

число доступных шрифтов;

число обобщенных примитивов вывода (ОПВ);

число функций РАСШИРЕНИЕ.

  1. Прочие различия:

начальное значение флагов выборки атрибутов (ФВА);

режим работы функции АВАРИЙНО ЗАКРЫТЬ ЯГС;

действия, выполняемые с параметрами справочных функций, если инфор­мация не доступна;

формат метафайла, используемый в каждой станции категории МВЫВОД; шрифты.

Примечания:

  1. Данные, приведенные в п. 1) и в первых шести перечислениях п. 2), со­держатся в таблице описания ЯГС и могут быть выяснены прикладной про­граммой.

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

  3. Для различных уровней ЯГС определены минимальные возможности, приведенные в подразд. 2.10 настоящего стандарта.

  1. Различия, зависящие отстанции

Эта группа допустимых различий предназначена для ряда станций, кото­рые используются в некоторой реализации ЯГС. Основная группа различий в качестве таблицы описания станции приведена в подразд. 4.6. Она составляет часть структур данных ЯГС. Данные этой таблицы могут быть выяснены при­кладной программой.

На значения некоторых данных указаны ограничения. Для различных уров­ней ЯГС определены некоторые минимальные возможности станций, которые описаны в разд. 2.10 настоящего стандарта.

Дополнительные различия, зависящие от станций, следующие:

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

  1. реализация функций ЯГС: СООБЩЕНИЕ, РАСШИРЕНИЕ;

  2. буферизация отложенных действий при режимах задержки ГЛОБ, ПОКА и ЛЮБО.

Выходные функции и атрибуты:

  1. ЛОМАНАЯ:

продолжается или начинается текстура линии в начале ломаной, в нача­ле усеченной части ломаной и в каждой вершине ломаной;

графическое представление доступных типов линий (с ограничением, что- типы линий с 1 по 4 должны быть узнаваемы как сплошная, штриховая, пунк­тирная и штрихпунктирная, и что другие типы линий должны иметь одинако­вый вид на всех станциях, на которых они доступны);

форма конца линии для некоторого значения масштаба ширины линии.

  1. ПОЛИМАРКЕР:

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

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

  1. ТЕКСТ:

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

влияние установленных в данное время характеристик для точности ДО- СТРОКИ;

влияние характеристик:

масштаб расширения литер, ВЫСОТА ЛИТЕР, НАПРАВЛЕНИЕ ТЕКСТА для точности ДО ЛИТЕРЫ;

действия по контролю над литерами внутри строки.

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

графическое представление доступных видов штриховки (с ограничением,, что виды штриховки должны иметь одинаковый вид на всех станциях, на ко­торых они доступны);

действуют ли преобразования на шаблоны и штриховку;

тип линии и толщина линии для вида заполнения ПУСТО.

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

будет ли МАТРИЦА ЯЧЕЕК полностью поддерживаться или при необхо­димости моделироваться и как моделироваться (минимальное выполняемо^- действие — нарисовать преобразованные границы прямоугольников ячеек, ис­пользуя цвет, тип линии и толщину линии в зависимости от реализации).

  1. ОПВ:

реализация каждого ОПВ;

  1. все примитивы:

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

на одноцветных станциях алгоритм получения интенсивности. Рекоменду­ется алгоритм:

интенсивность=0,3 х красный + 0.59 X зеленый -f-0,11 X голубой;

что вычерчивается, если точки или линии совпадают.

Сегменты:

1) обнаружение сегментов разного приоритета;

‘ 2) отображение перекрывающихся сегментов с равным приоритетом;

3) реализация выделения.

Функции ввода;

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

2) реализация режима «подсказка — эхо», принятого по умолчанию;

3) использование записи данных ввода для необязательных параметров.

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

  1. значение, возвращаемое функцией УЗНАТЬ ГАБАРИТЫ ТЕКСТА;

  2. значение узнаваемой характеристики пикселя;

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

ПРИЛОЖЕНИЕ 7 Справочное

СТРУКТУРА МЕТАФАЙЛА

  1. Введение

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

передачи графической информации между системами;

передачи графической информации из одного места в другое;

передачи графической информации от одной прикладной задачи, использу­ющей ЯГС, к другой;

хранения сопровождающей неграфической информации.

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

кодирование в соответствии со СТ СЭВ 359—76 для передачи по сетям;

двоичное кодирование для экономии памяти ЭВМ во время счета;

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

Спецификация формата и содержания записей метафайла не является со­ставной частью стандарта ЯГС. Определяется только интерфейс с метафайлом. Реализация ЯГС может поддерживать любое количество типов станции клас­са МВВОД и МВЫВОД. Пользователь может выбрать наиболее подходящую из них в зависимости от прикладной области и среды.

Для метафайла ЯГС определяются два вида кодирования:

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

двоичное кодирование.


  1. Формат файла и формат данных

Метафайл ЯГС создается как последовательность логических записей дан­ных. Файл начинается с записи, имеющей фиксированный формат — ЗАГОЛО­ВОК ФАЙЛА, которая определяет начало метафайла (автора, устройство, фор­мат следующих записей и представление чисел). Файл заканчивается записью КОНЕЦ. Между этими двумя записями записывается следующая информация:

записи управления станцией и записи сообщения;

записи примитивов вывода, описывающие элементарные графические объ­екты;

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

записи сегмента, описывающие структуру и преобразования сегмента;

записи пользователя.

Общая структура метафайла ЯГС имеет следующий вид:

Файл:


Заголовок Запись


файла 1


Запись


Запись
N


Конечная
запись


Запись:


Заголовок
записи


Логическая запись


Заголовок
записи:


«GKSM» необяза­тельно


Идентификационный
номер


Длина логической
записи в байтах



Все записи данных, за исключением заголовка файла, имеют заголовок за­писи, содержащий:

строку символов «GKSM» (необязательная), улучшающую читаемость файла и обеспечивающую возможность контроля ошибок;

тип логической записи, определяющий вид информации, которая содер­жится в записи.

Длина каждого из этих подполей заголовка записи зависит от реализации и задается в заголовке файла. Содержимое записи для каждого типа логичес­кой записи описано ниже.

Метафайл содержит символы, целые числа и действительные числа, поме­ченные (С), (Ц), (Д) в описании записи. Символы в метафайле должны соот­ветствовать СТ СЭ'В 359'—76. Числа представляются в формате F1 для целых и формате F2 для действительных.

Форматы F1 и F2 могут быть записаны посредством форматов ФОРТРАНА. I и F соответственно.

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

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

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

  1. Генерация метафайлов

Табл. 13 содержит список функций ЯГС, которые применяются для стан­ций категории МВЫВОД, и их действия на метафайл. В этой таблице МВЫВОД является идентификатором станции, которая генерирует метафайл данного формата.

Концепция отсечения отражена в специальной записи метафайла, которая задает прямоугольник отсечения. Эта запись записывается в метафайл при активации станции со значениями (0., 1., 0., 1.,), если индикатор отсечения в таблице состояния ЯГС имеет значение НЕ ОТСЕКАТЬ или «прямоугольник от­сечения», если индикатор отсечения имеет значение ОТСЕКАТЬ.

При переопределении прямоугольника отсечения и когда индикатор отсе­чения имеет значение ОТСЕКАТЬ, записывается новая запись прямоугольни­ка отсечения. Если индикатор отсечения в таблице состояния ЯГС изменяется на НЕ ОТСЕКАТЬ, записывается прямоугольник отсечения (0., 1., 0., 1., 0.,). Если индикатор отсечения меняется на ОТСЕКАТЬ, записывается прямоуголь­ник отсечения из таблицы состояния ЯГС.

  1. Интерпретация метафайла

    1. Общие сведения

Интерпретация метафайла в ЯГС описывается в подразд. 2.9 настоящего стандарта. Действие функции ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ для всех ти­пов записей метафайла описывается в пи. 4.2—4.8. Записи группируются по классам в соответствии с табл. 13.

  1. И и т е р п р е т а ц и я управляющих записей

Интерпретация записей для этого класса описывается при определении каж­дой записи в разд. 5 настоящего приложения.

  1. Интерпретация записей о примитивах вывода

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

  1. И н т е р п р е т а ц и я записей об атрибутах примитивов вывода

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



Таблица 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