50 Неверно задан номер преобразования.
ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ
ГЯОТ СТОТ, СТАК, СГОТ Уровень та.
SELECT NORMALIZATION TRANSFORMATION.
Параметры:
Вх номер преобразования (0 . . . п) Ц.
Действие:
Параметр заносится в поле «текущий номер преобразования нормирования» таблицы состояния ЯГС. В поле «прямоугольник отсечения» устанавливаются границы поля вывода указанного номера преобразования.
Описание функции в соответствии с п. 2.6.1.
Ошибки:
ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ;
Неверно задан номер преобразования.
ЗАДАТЬ ИНДИКАТОР ОТСЕЧЕНИЯ
ГЯОТ, СТОТ, СТАК, СГОТ Уровень та.
SET CLIPPING INDICATOR.
Параметры:
Вх индикатор отсечения (ОТСЕКАТЬ, НЕ ОТСЕКАТЬ) П. Действие:
В поле «индикатор отсечения» таблицы состояния ЯГС заносится значение, заданное параметром.
Описание функции в соответствии с пп. 2.6.2; 2.7.4; 2.7.6; 2.8.4.
Ошибки:
8 ЯГС не находится в состоянии ГЯОТ, СТОТ, СТАК или СГОТ.
Функции задания преобразования станции
ЗАДАТЬ ОКНО СТАНЦИИ
СТОТ, СТАК, СГОТ Уровень та.
SET WORKSTATION WINDOW.
Параметры:
Вх идентификатор станции И;
Вх границы окна станции
Xmin<Xmax, Ymin<Ymax НК 4хД.
Действие:
В поле «запрошенное окно станций» таблицы состояния станции заносятся значения, заданные параметром границы окна станции.
Если поле «способ динамической модификации для преобразования станции» в таблице описания станции имеет значение НОИ или если поле «заполненность носителя изображения» в таблице состояния станции имеет значение ПУСТ, то в поле «текущее окно станции» заносится значение, заданное параметром, и в поле «состояние обновления преобразования станции» заносится значение НЕ ЗАДЕРЖАНО. В противном случае в поле «состояние обновления преобразования станции» в таблице состояния станции заносится значение ЗАДЕРЖАНО, а поле «текущее окно станции» не изменяется.
Описание функции в соответствии с п. 2.6.3.
Ошибки:
7 ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;
20 Неверно задан идентификатор станции;
25 Указанная станция не открыта;
33 Указанная станция — станция ввода метафайла ЯГС;
36 Указанная станция является общей памятью сегментов;
51 Неверно задан прямоугольник;
53 Окно станции находится вне единичного квадрата нормиро* ванных координат.
3.5.2.2. ЗАДАТЬ ПОЛЕ ВЫВОДА СТАНЦИИ
СТОТ, СГОТ, СТАК Уровень та,.
SET WORKSTATION VIEWPORT.
Параметры:
Вх идентификатор стаиции И;
Вх границы поля вывода станции
Xmin<Xmax, Ymin<Ymax КУ 4ХД.
Действие:
В поле «запрошенное поле вывода станции» в таблице состояния станции заносится значение, заданное параметром «границы поля вывода станции».
Если поле «способ динамической модификации для преобразования станции» в таблице описания станции имеет значение НОИ 'или если поле «заполненность носителя изображения» в таблице состояния станции имеет значение ПУСТ, то в поле «текущее поле 'вывода станции» заносится значение, заданное параметром, и в поле «состояние обновления преобразования станции» задается значение НЕ ЗАДЕРЖАНО. В противном случае в поле «состояние обновления преобразования станцией» в таблице состояния станции заносится значение ЗАДЕРЖАНО, а поле «текущее поле вывода станции» не изменяется.
Описание функции в соответствии с п. 2.6.3.
Ошибки:
7 ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;
20 Неверно задан идентификатор станции;
25 Указанная станция не открыта;
33 Указанная станция — станция ввода метафайла ЯГС;
36 Указанная станция является общей памятью сегментов;
51 Неверно задан прямоугольник;
54 Поле вывода станции не находится внутри пространства изображения.
3.6. Функции сегментации
Функции действий над сегментами
СОЗДАТЬ СЕГМЕНТ
СТАК Уровень 1а. ' CREAT SEGMENT.
Параметры:
Вх имя сегмента И
Действие:
ЯГС переводится в функциональное состояние СГОТ — «сегмент открыт». Создается и подготавливается таблица состояния сегмента. Имя сегмента записывается в поле «имя открытого сегмента» в таблицу состояния ЯГС. Последующие выходные примитивы до вызова функции ЗАКРЫТЬ СЕГМЕНТ объединяются в этот сегмент. Имя сегмента заносится в поле «список запомненных 'на станции сегментов» таблицы состояния станции всех активных станций. Все активные станции включаются в «набор связанных с сегментом станций» таблицы состояния сегмента. Имя сегмента за- ■носится в «набор имен существующих сегментов» таблицы состояния ЯГС. Атрибуты примитивов не изменяются.
Описание функции в соответствии с п. 2.7.1.
Ошибки:
3 ЯГС не находится в состоянии СТАК;
120 Неверно задано имя сегмента;
121 Указанное имя сегмента уже используется.
ЗАКРЫТЬ СЕГМЕНТ
СГОТ Уровень 1а.
CLOSE SEGMENT.
Параметры:
Нет.
Действие:
ЯГС переводится в функциональное состояние СТАК — «по крайней мере одна станция актйвна». Выходные примитивы больше не добавляются к сегменту. Поле «имя открытого сегмента» таблицы состояния ЯГС становится недоступным.
Описание функции в соответствии с п. 2.7.1.
Ошибки:
4 ЯГС не находится в состоянии СГОТ.
ПЕРЕИМЕНОВАТЬ СЕГМЕНТ
СТОТ, СТАК, СГОТ Уровень 1 а.
RENAME SEGMENT.
Параметры:
Вх старое имя сегмента И;
Вх новое имя сегмента И.
Действие:
Прежнее имя сегмента в поле «список запомненных на станции сегментов» таблицы состояния станции и в поле «набор имен существующих сегментов» таблицы состояния ЯГС заменяется новым именем сегмента. Если сегмент открыт, то в поле «имя открытого сегмента» таблицы состояния ЯГС заносится новое имя сегмента.
(Примечание. Прежнее имя сегмента может быть вно®ь йспользовано прикладной программой.
Описание функции в соответствии с п. 2.7.1.
Ошибки:
7 ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;
Неверно задано имя сегмента;
Указанное имя сегмента уже используется;
Указанный сегмент не существует.
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.
Параметры:
Вх идентификатор станции И;
Вх имя сегмента И.
Действие:
Сегмент удаляется с заданной станции. Имя сегмента удаляется из поля «список запомненных на станции сегментов» таблицы состояния станции. Идентификатор станции удаляется из поля «набор связанных с сегментом станций» таблицы состояния сегмента. Если поле «набор связанных с сегментом станций» становится пустым, то сегмент удаляется, т. е. выполняется функция УНИЧТОЖИТЬ СЕГМЕНТ.
Описание функции в соответствии с пп. 2.5.3; 2.7.1.
Ошибки:
7 ЯГС не находится в состоянии СТОТ, СТАК или СГОТ;
20 Неверно задан идентификатор станции;
25 Указанная станция не открыта;
33 Указанная станция — станция ввода метафайла ЯГС;
35 Указанная станция является станцией ввода;
120 Неверно задано имя сегмента;
123 Указанный сегмент не существует на указанной станции;
125 Указанный сегмент открыт.
3.6.1.6. СВЯЗАТЬ СЕГМЕНТ СО СТАНЦИЕЙ
СТОТ, СТАК Уровень 2а.
ASSOSIATE SEGMENT WITH WORKSTATION
Параметры:
Вх идентификатор станции И;
•Вх имя сегмента И.
.Действие:
Заданный сегмент посылается на указанную станцию так же, хак если бы станция была активна во время его создания. Прямоугольники отсечения копируются без изменений. Имя сегмента добавляется в поле «список запомненных на станции сегментов» таблицы состояния станции. Идентификатор станции включается в «набор связанных с сегментом станций» таблицы состояния сегмента.
П р им еч а н и я:
Если сегмента нет в общей памяти сегментов, формируется сообщение об ошибке.
Если сегмент уже связан со станцией, то данная функция не выполняется.
Описание функции в соответствии с пп. 2.5.3; 2.7.1.
Ошибки:
6 ЯГС не находится в состоянии СТОТ или СТАК;
20 Неверно задан идентификатор станции;
25 Указанная станция не открыта;
27 Общая память сегментов не открыта;
33 Указанная станция — станция ввода метафайла ЯГС;
35 Указанная станция является станцией ввода;
120 Неверно задано имя сегмента;
124 Указанный сегмент не существует в общей памяти сегментов;
3.6.1.7. ВЫВЕСТИ КОПИЮ СЕГМЕНТ НА СТАНЦИЮ
СТОТ, СТАК Уровень 2а.
COPY SEGMENT ТО WORKSTATION.
Параметры:
Вх идентификатор станции И;
Вх имя сегмента И.
Действие:
После преобразования сегмента и отсечения по границам прямоугольника отсечения, запомненного вместе с каждым примитивом, примитивы сегмента посылаются на указанную станцию. Эти примитивы не запоминаются в сегменте.
Примечания: >
Если указанный сегмент отсутствует в общей памяти сегментов, выдается сообщение об ошибке. Указанная станция не должна быть общей памятью сегментов.
У всех копируемых примитивов сохраняются значения атрибутов (таких, как индекс ломаной, направление текста, идентификатор указания), которые были назначены им во время их создания (в соответствии с п. 2.7.1).
Текущие значения атрибутов примитивов вывода, используемые при генерации последующих примитивов, не изменяются операцией копирования.
Описание функции в соответствии с пп. 2.5.3; 2.7.1; 2.7.6.
Ошибки:
6 ЯГС не находится в состоянии СТОТ или СТАК;
Неверно задан идентификатор станции;
Указанная станция не открыта;
Общая память сегментов не открыта;
Указанная станция — станция ввода метафайла ЯГС; ' <
Указанная станция является станцией ввода;
Указанная станция является общей памятью сегментов;.
Неверно задано имя сегмента;124 Указанный сегмент не существует в общей памяти сег
ментов.
З.6.І.8. ВСТАВИТЬ СЕГМЕНТ
. СТАК, СГОТ, Уровень 2а.
INSERT SEGMENT.
Параметры:
Вх имя сегмента И;
Вх матрица преобразования 2ХЗХД.
Действие: .
Преобразованные примитивы из заданного сегмента копируются или в открытый сегмент (в состоянии СГОТ), или в поток примитивов вне сегмента (в состоянии СТАК). В любом случае преобразованные примитивы посылаются на все активные станции. Координаты преобразуются сначала преобразованием сегмента, вставляемого сегмента, а затем умножением на заданную в параметре матрицу: где х и у — исходные координаты в НК;
МП М12 М13
М21 М22 М23
х' и у' — преобразованные координаты в НК;
МИ, М12, М13, М21, М22, М23 — значения, заданные параметром Матрица преобразования.
М13, М23 являются координатами в НК, а остальные значения — безразмерные. Для геометрических атрибутов векторов (например ВЕРТИКАЛЬ ЛИТЕРЫ) значения М13 и М23 не учитываются.
Это, преобразование называется преобразованием вставки и (концептуально) определено в пространстве НК.
Всё прямоугольники отсечения во вставляемом сегменте игнорируются. Каждому примитиву назначается новый прямоугольник отсечения из таблицы состояния ЯГС, если индикатор отсечения имеет значение ОТСЕКАТЬ, или единичный прямоугольник (О . , 1 . ] X [0 • , 1 • ], если индикатор отсечения имеет значение НЕ ОТСЕКАТЬ. Все примитивы, обрабатываемые в процессе одного вызова функции ВСТАВИТЬ СЕГМЕНТ, получают одинаковый прямоугольник отсечения.
П р им ечания:
1. Если заданного сегмента нет в общей памяти сегментов, формируется сообщение об ошибке.
Є. У всех вставляемых примитивов сохраняются значения атрибутов (таких, как индекс ломаной, направление текста, идентификатор указания), которые были назначены им во время их создания в соответствии с га. 2.7.1.
3. Текущие значения атрибутов примитивов вывода, используемые при генерации последующих примитивов .в пределах сегмента, в который осуществляется вставка, ие изменяются операцией вставки.
Описание функции в соответствии с пп. 2.5.3; 2.7.6. ■
Ошибки:
5 ЯГС не находится в состоянии СТАК или СГОТ;
27 Общая память сегментов не открыта;
120 Неверно задано имя сегмента;
Указанный сегмент не существует в общей памяти сегментов;
Указанный сегмент открыт.
Функции задания атрибутов сегментов
.6.2.1. ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА
СТОТ, СТАК, СГОТ Уровень 1а.
SET SEGMENT TRANSFORMATION. . .... у
Параметры:
Вх имя сегмента И;
Вх матрица преобразования 2ХЗХД.
Действие:
В поле «матрица преобразования сегмента» таблицы состояния сегмента заносятся значения, заданные параметром матрица преобразования. При отображении сегмента координаты примитивов сегмента будут преобразовываться по следующей формуле:
МП М12 М13
М21 М22 М23
где х и у — исходные координаты в НК;
х' и у' — преобразованные координаты в НК;
МП, М12, М13, М21, М22, М23 — значения элементов матрицы преобразования.
М13, М23 являются координатами в НК, а остальные значения — безразмерные. Для геометрических атрибутов векторов (например ВЕРТИКАЛЬ ЛИТЕРЫ) значения М13 и М23 не учитываются.