ЛОМАНАЯ — набор связанных между собой отрезков прямых линий, определяемых последовательностью точек;
ПОЛИМАРКЕР — графические символы одного типа, центрированные в заданных позициях;
ТЕКСТ — строка литер в заданной позиции;
ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ — многоугольник, который может быть либо пуст, либо закрашен одним цветом, либо заполнен узором, либо заштрихован;
МАТРИЦА ЯЧЕЕК — матрица ячеек, каждая из которых име-^ ет свой индивидуальный цвет;
ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОДА (ОПВ) — ЯГС обращается к специальным дополнительным возможностям геометрического вывода станции. Таким как, например, вычерчивание сплайновых кривых, дуг окружностей и эллипсов. Объекты вывода характеризуются идентификатором, набором точек и дополнительными данными. ЯГС применяет все преобразования к точкам, но оставляет их интерпретацию за станцией.
Атрибуты графических примитивов вывода
Каждый примитив вывода имеет три типа атрибутов: геометрический, негеометрический и идентификационный. Первые два типа атрибутов определяют точное представление примитива вывода, а третий тип атрибутов используется совместно а вводом. Значения атрибутов устанавливаются по мере необходим мости и заносятся в таблицу состояния ЯГС. Предоставляются отдельные функции ЯГС для установки отдельно каждого из атрибутов примитива (за исключением флагов выборки атрибутов (ФВА), которые описаны ниже), что позволяет прикладной программе задавать значения атрибута, не обязательно задавая значения других атрибутов. Во время создания примитива вывода (а именно, когда вызывается одна из функций ЯГС для генерации примитива вывода) значения атрибутов связываются с примитивом и не могут впоследствии быть изменены.
Атрибуты первого типа управляют геометрическими характеристиками примитивов, которые влияют на форму и размер всего примитива (например ВЫСОТА ЛИТЕРЫ для примитивов ТЕКСТ). Атрибуты этого типа не зависят от станции...Они,, представляют координатные данные (точки или смещения) и задаются в мировых координатах, либо принимают одно из перечисленных значений. Геометрические атрибуты задаются отдельно для каждого из видов примитивов. Примитивы могут иметь один или несколько геометрических атрибутов или не иметь ни одного атрибута такого типа.
Текущие значения геометрических атрибутов запоминаются в мировых координатах. Когда они связываются с соответствующими примитивами, их значения подвергаются тем же преобразованиям, что и геометрические данные, содержащиеся в параметрах примитива. Следовательно, на них не влияют изменения в преобразовании нормирования и преобразовании станции.
Атрибуты второго типа управляют негеометрическими характеристиками примитивов, которые влияют на визуальное представление примитива (например тип линии для примитива ЛОМАНАЯ или индекс цвета для всех примитивов, за исключением примитива МАТРИЦА ЯЧЕЕК). Негеометрические характеристики не представляют координатных данных.
Негеометрические характеристики примитива могут задаваться одним из двух способов: через связку или индивидуально.
Для каждого примитива существует атрибут — ИНДЕКС < примитива>, который является указателем в таблице связок примитива. Для каждого примитива, за исключением ОБОБЩЕННОГО ПРИМИТИВА ВЫВОДА и примитива МАТРИЦА ЯЧЕЕК, имеется таблица связок. Негеометрические характеристики при задании через связку являются зависимыми от станции. Каждая станция имеет свой набор таблиц связок, находящихся в таблице состояния станции. Данные в конкретной связке или запись в таблице связок могут быть различными для разных станций.
При индивидуальном задании характеристик существует отдельный атрибут для каждой негеометрической характеристики. Как и атрибуты, управляющие геометрическими характеристиками, эти атрибуты являются независимыми от станции и точно также запоминаются в таблице состояния ЯГС. Поскольку каждая негеометрическая характеристика встречается только в одном типе связки примитива, каждый из этих атрибутов применяется только к одному виду примитива.
Для заданной негеометрической характеристики значение соответствующего компонента связки подобно значению атрибута при индивидуальном задании. Поскольку связки задаются отдельно для каждой станции, значения их компонентов ограничены допустимыми значениями для этой станции и запоминаются в таблице состояний станции. В случае индивидуального задания атрибута такие ограничения не налагаются. Определены стандартные действия, которые будут выполняться при отображении примитива, если этот примитив будет создаваться со значениями индивидуально заданных атрибутов, ошибочными для данной станции.
Примитивы ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОДА (ОПВ) и МАТРИЦА ЯЧЕЕК не имеют ассоциированных таблиц связок и соответствующих индивидуально задаваемых атрибутов. Если примитив ОБОБЩЕННЫЙ ПРИМИТВ ВЫВОДА (ОПВ) подобен примитиву ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ, то следует использовать таблицу связок полигональной области или набор ее индивидуально задаваемых атрибутов. Примитив МАТРИЦА ЯЧЕЕК содержит информацию об индексе цвета как часть своего задания и не имеет других, негеометрических характеристик, поэтому нет необходимости в использовании ни таблицы связок, ни набора индивидуально задаваемых атрибутов.
Способ задания негеометрических атрибутов примитива может быть выбран отдельно для каждого атрибута. Группа атрибутов, называемая ФЛАГАМИ ВЫБОРКИ АТРИБУТОВ (ФВА), которые принимают значения ИНДИВИДУАЛЬНЫЙ или СВЯЗАННЫЙ, позволяет выбрать тот или иной способ задания. Эти атрибуты запоминаются в таблице состояния ЯГС. Для каждой негеометрической характеристики каждого примитива имеется свой ФВА. Начальные значения всех ФВА одинаковы: они могут иметь значения или ИНДИВИДУАЛЬНЫЙ, или СВЯЗАННЫЙ в зависимости от реализации. Если начальные значения не изменяются, система будет работать в режимах:
индивидуальное задание негеометричеаких атрибутов не поддерживается системой, если все ФВА имеют значения СВЯЗАННЫЙ;
задание негеометрических характеристик посредством связок не поддерживается системой, если начальными значениями всех ФВА являются — ИНДИВИДУАЛЬНЫЙ.
Флаги могут быть установлены в любой момент после открытия ЯГС с помощью функции ЗАДАТЬ ФЛАГИ ВЫБОРКИ АТРИБУТОВ. Это позволяет одни негеометрические атрибуты примитива задавать индивидуально, а другие — через связки.
При отображении примитива значения негеометрических характеристик определяются следующим образом:
если ФВА имеет значение ИНДИВИДУАЛЬНЫЙ, то на всех станциях используется значение соответствующего индивидуально заданного атрибута;
если ФВА имеет значение СВЯЗАННЫЙ, то используется значение соответствующей компоненты связки, указанной индексом в таблице связок этого примитива на этой станции.
Цвет является негеометрическим атрибутом примитива, он задается индексом в таблице цвета. На каждой станции имеется таблица, в которой указаны все индексы цвета. Другие поля в связках или соответствующие им индивидуально задаваемые атрибуты могут быть индексами либо другой таблицы станции (например, индекс заполнителя, когда используется вид за-
волнения ПО ШАБЛОНУ), либо индексами некоторого фиксированного списка (например тип линии для примитива ЛОМАНАЯ).
Для каждого примитива существует только один атрибут третьего типа — ИДЕНТИФИКАТОР УКАЗАНИЯ. Он используется для идентификации примитива или группы примитивов в сегменте при указании на этот сегмент.
Таким образом к каждому примитиву вывода применяются три типа атрибутов (атрибуты, управляющие негеометрическими характеристиками, геометрические атрибуты и ИДЕНТИФИКАТОР УКАЗАНИЯ).
ЛОМАНАЯ: |
ИНДЕКС ЛОМАНОЙ; ТИП ЛИНИИ; МАСШТАБ ТОЛЩИНЫ ЛИНИЙ; ИНДЕКС ЦВЕТА ЛОМАНОЙ; ФВА ТИПА ЛИНИИ; ФВА МАСШТАБА ТОЛЩИНЫ ЛИНИЙ; ФВА ИНДЕКСА ЦВЕТА ЛОМАНОЙ; ИДЕНТИФИКАТОР УКАЗАНИЯ. |
ПОЛИМАРКЕР: |
ИНДЕКС ПОЛИМАРКЕРА; ТИП МАРКЕРА; МАСШТАБ МАРКЕРА; ИНДЕКС ЦВЕТА ПОЛИМАРКЕРА; ФВА ТИПА МАРКЕРА; ФВА МАСШТАБА МАРКЕРА; ФВА ИНДЕКСА ЦВЕТА ПОЛИМАРКЕРА; ИДЕНТИФИКАТОР УКАЗАНИЯ. |
ТЕКСТ: |
ИНДЕКС ЦВЕТА; ШРИФТ И ТОЧНОСТЬ ТЕКСТА; МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ; МЕЖЛИТЕРНЫЙ ПРОСВЕТ; ИНДЕКС ЦВЕТА ТЕКСТА; ФВА ШРИФТА И ТОЧНОСТИ ТЕКСТА; ФВА МАСШТАБА РАСШИРЕНИЯ ЛИТЕ РЫ; ФВА ИНДЕКСА ЦВЕТА ТЕКСТА; ВЫСОТА ЛИТЕРЫ; ВЕРТИКАЛЬ ЛИТЕРЫ; НАПРАВЛЕНИЕ ТЕКСТА; ВЫРАВНИВАНИЕ ТЕКСТА; ИДЕНТИФИКАТОР УКАЗАНИЯ. |
ПОЛИГОНАЛЬ
НАЯ ОБЛАСТЬ: ИНДЕКС ПОЛИГОНАЛЬНОЙ ОБЛАСТИ;
ВИД ЗАПОЛНЕНИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ;
ИНДЕКС ЗАПОЛНИТЕЛЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ;
ИНДЕКС ЦВЕТА ПОЛИГОНАЛЬНОЙ ОБЛАСТИ;
ФВА ВИДА ЗАПОЛНЕНИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ;
ФВА ИНДЕКСА ЗАПОЛНИТЕЛЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ;
ФВА ИНДЕКСА ЦВЕТА ПОЛИГОНАЛЬ
НОЙ ОБЛАСТИ;
РАЗМЕР ШАБЛОНА;
ТОЧКА ПРИВЯЗКИ ШАБЛОНА; ИДЕНТИФИКАТОР УКАЗАНИЯ.
МАТРИЦА
ЯЧЕЕК: ИДЕНТИФИКАТОР УКАЗАНИЯ.
ОБОБЩЕННЫЙ
ПРИМИТИВ
ВЫВОДА: Содержит или не содержит ни одного из при
веденных выше наборов. Наличие атрибута ИДЕНТИФИКАТОР УКАЗАНИЯ обязательно.
Взаимосвязи атрибутов приведены на черт. 2.
Атрибуты примитивов, кроме ИДЕНТИФИКАТОРА УКАЗАНИЯ, описаны в подразд. 2.4. В описании атрибуты печатаются прописными буквами (например, ВЫСОТА ЛИТЕРЫ, ИДЕНТИФИКАТОР УКАЗАНИЯ), характеристики печатаются как прописными, так и строчными буквами по контексту. Геометрические характеристики всегда регулируются геометрическими атрибутами и печатаются прописными буквами (например, ВЫСОТА ЛИТЕРЫ).
Негеометрические характеристики могут регулироваться через ИНДЕКС примитива или посредством индивидуально определенных атрибутов. Негеометрические характеристики печатаются строчными буквами, если не используются соответствующие индивидуально определенные атрибуты, в противном случаеСвязь атрибутов
Примечание. Атрибут ИДЕНТИФИКАТОР УКАЗАНИЯ выделен среди других атрибутов примитивов (только на этом чертеже) для наглядности. Полный список атрибутов содержится в п. 2.4.2.12.
Черт. 2 они печатаются прописными буквами (например характеристика, тип линии и индивидуально определенный атрибут ТИП ЛИНИИ).
Поля в таблицах связок, шаблонов и цвета могут быть установлены отдельно для каждой станции. Некоторые стандартные предопределенные значения для полей таблицы содержатся в таблице описания станции и используются как начальные значения. Прикладная программа может выбрать стандартное значение или задать значение характеристики определенного поля явно. Для каждой станции вывода или ввода-вывода следует заранее определять лишь наиболее часто используемые (или предполагаемые для использования) комбинации значений характеристик. Другие комбинации значений могут быть заданы функцией ЗАДАТЬ ПРЕДСТАВЛЕНИЕ <примитива |шаблона]цвета > (возможно после выяснения возможностей станции).
На каждой станции категории ВЫВОД, ВВОД-ВЫВОД или МВЫВОД (вывод в метафайл) имеются таблицы связок ломаной, связок полимаркера, связок текста, связок полигональной области, шаблонов, цвета. Они являются атрибутами станции.
Значения данных в этих таблицах могут быть динамически изменены. Изменение таблицы связок является единственным способом изменения изображения ранее выведенного примитива.
Изменение в полях таблицы связок может отражаться на изображении примитива только в случае, если соответствующие ФВА (этого примитива) для характеристик из таблицы связок имеют значения СВЯЗАННЫЙ. Поле «восприятие динамического обновления» в таблице описания станции указывает, какие изменения приводят к неявной повторной генерации (НПГ) (возможно задержанной), а какие изменения могут быть выполнены немедленно (НОИ — немедленное обновление изображения).
Если изменения выполняются немедленно, то их действие может распространяться на примитивы, находящиеся как вне, так и внутри сегментов.
Атрибуты примитива ЛОМАНАЯ
Ломаная не имеет геометрических атрибутов. Представлением ломаной на станции управляет ИНДЕКС ЛОМАНОЙ или набор индивидуально заданных атрибутов ломаной (ТИП ЛИНИИ, МАСШТАБ ТОЛЩИНЫ ЛИНИИ и ИНДЕКС ЦВЕТА ЛОМАНОЙ) или некоторая комбинация этих двух способов, в зависимости от значений ФВА для типа линии, масштаба толщины линии или индекса цвета ломаной. Атрибут ИНДЕКС ЛОМАНОЙ является указателем в таблице связок ломаной, каждое поле которой содержит значения для типа линии, масштаба толщины линии и индекса цвета ломаной.
Типы линий с 1 до 4 задают сплошную, штриховую, пунктирную и штрихпунктирную линии соответственно. Эти типы линий различают и реализуют все станции вывода и ввода-вывода. Значения типов линии больше 4 резервируют для будущей стандартизации. Типы линии с отрицательными значениями зависят от реализации. Тип линии определяет последовательность отрезков линии и промежутков между ними, которые повторяются при изображении ломаной. Будет ли эта последовательность начинаться заново или продолжаться при начале ломаной, при начале вычерчивания усеченной части ломаной, в каждой вершине ломаной, зависит от станции.
Толщина линии вычисляется как номинальная толщина» умноженная на масштаб толщины линии. Это значение преобразуется станцией в ближайшую по назначению доступную толщину линии.
Атрибуты примитива ПОЛИМАРКЕР
Полимаркер не имеет геометрических атрибутов. Представлением полимаркера на станции управляет ИНДЕКС ПОЛИМАРКЕРА или набор индивидуально заданных атрибутов полимаркера (ТИП МАРКЕРА, МАСШТАБ МАРКЕРА или ИНДЕКС ЦВЕТА ПОЛИМАРКЕРА) или комбинация этих двух способов в зависимости от значений ФВА для типа маркера, масштаба маркера и индекса цвета полимаркера. ИНДЕКС ПОЛИМАРКЕРА является указателем в таблице связок полимаркера, каждое поле которой содержит тип маркера, масштаб маркера и индекс цвета полимаркера.
Устанавливаются обязательные типы маркеров с I по 5: точка, знак плюс, звездочка, окружность и диагональный крест. Каждый из них центрируется в позиции, которую отмечает. Все станции вывода и ввода-вывода должны поддерживать типы маркеров с 1 по 5, обеспечивая хорошую их распознаваемость в данных позициях. Типы маркеров больше 5 резервируются для будущей стандартизации. Типы маркеров с отрицательными значениями зависят от реализации.