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

кандидата физико-математических наук
Юков, Иван Евгеньевич
город
Москва
год
1996
специальность ВАК РФ
05.13.11
Автореферат по информатике, вычислительной технике и управлению на тему «Создание объектно-ориентированной среды для разработки трехмерных графических приложений»

Автореферат диссертации по теме "Создание объектно-ориентированной среды для разработки трехмерных графических приложений"

етв м

, ' Российская Академия Наук , 9 ?г'5 Институт Системного Программирования

На правах рукописи УДК 681.3.06:681.3.08

ЮКОВ Иван Евгеньевич

СОЗДАНИЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ СРЕДЫ ДЛЯ РАЗРАБОТКИ ТРЕХМЕРНЫХ ГРАФИЧЕСКИХ ПРИЛОЖЕНИЙ

Специальность 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов, систем и сетей

Автореферат диссертации на соискание ученой степени кандидата физико-математических наук

Москва - 1996

Работа выполнена в Институте системного программирования

РАН

Научный руководитель:

доктор технических наук,

профессор Ю.Г.Дадаев Официальные оппоненты:

доктор физико-математических наук С.В.Клименко

кандидат физико-математических наук Ю.М.Баяковский

Ведущая организация:

Вычислительный Центр Российской Академии Наук

Защита состоится 2 сР 1996 г. в /^часов иа заседании

диссертационного совета Д.200.50.01 в Институте системного программирования РАН по адресу: 109004, Москва, ул. Б. Коммунистическая, д. 25

С диссертацией можно ознакомиться в библиотеке Института системного программирования РАН

Автореферат разослан "2 1996

Ученый секретарь специализированного совета Д.200.50.01

кандидат физико-математических наук

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

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

Актуальность темы.

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

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

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

-з -

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

Научная новизна.

В работе на основе детальной структуризации предметной области выделены основные компоненты трехмерного инструментария. На базе объектно-ориентированного подхода сформирована смешанная геометрическая модель твердотельных пространственных объектов, сочетающая конструктивное и граничное представлении. В совокупности с базовым набором синтеза и анализа геометрии пространственных объектов, предложены механизмы параметризации конструктивной модели и построение на базе геометр™ тела его физической модели с реальными свойствами. Расширяемость разработанной геометрической модели обеспечивает прозрачный переход к эффективному решению таких задач, как генерация поверхностных и объемных сеток и последующий конечно-элементный анализ построенных объектов. Формализация понятия "интерактивная прикладная программа" привела к прозрачной методике построения трехмерных графических приложений, обладающих базовыми средствами визуализации и навигации в трехмерном пространстве, позволяющей при решении конкретной прикладной задачи с минимальными затратами времени на организацию взаимодействия с пользователем получить мобильное графическое приложение, поддерживающее международные стандарты на геометричское моделирование и научную визуализацию.

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

Апробация работы и публикации. Предложенная технология разработки высокоинтерактивных графических прикладных программ была успешно использована при реализации комплекса программных средств в совместном российско-германском научном проекте "Application Builder for Scientific Visualization" (ИСП PAH, GMD FIRST). Основные результаты работы докладывались на конференции "Эволюция Инфосферы" (г.Москва, 1995г.), на семинарах в Институте системного программирования Российской Академии Наук и демонстрировались на выставке информационных технологий СеВ1Т'95 (г.Ганновер, Германия, 1995г.), на выставке компьютерного творчества международной конференции "ГрафиКон'95" (г.С.-Петербург, 1995г.) и плановой выставке Министерства Науки и Техтгческой Политики Российской Федерации "Информатика и телекоммуникации России" (г.Берлин, Германия, 1995г.). По результатам исследования имеется 5 печатных работ.

Объем и структура диссертации. Диссертация состоит извведения, четырех глав, заключения и приложения. Список литературы состоит из 46 наименований.

СОДЕРЖАНИЕ РАБОТЫ

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

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

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

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

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

В разделе 1.3 описана иерархия классов для поддержки граничной модели. Геометрическое моделирование как и другие области вычисли-телыюемкого программного обеспечения подверглось влиянию объектно-ориентированной технологии программирования. Наиболее яркое подтверждение тому - появление рабочей версии стандарта STEP с внутренним объектно-ориентированным языком описания данных EXPRESS, которая может служить иллюстрацией использования характерных свойств ООЯП - наследования, инкапсуляции и полиморфизма. Рассматриваемая граничная модель также выдержана в классических правилах проектирования сложных структур данных на языке С++, что позволяет при лаконичном исходном коде обеспечить максимально эффективное использование объектно-ориентированной парадигмы программирования.

В разделе 1.4 детально изложены эйлеровы операторы преобразования элементов граничной модели. Операции расщепления ребра, растепления грани и склейки циклов формируют высокоуровневый функцион&тьный базис для реализации алгоритмов теоретико-множественных операций и сечений, а также для in-place алгоритмов генерации сеток и триангуляции.

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

Для любых двух объектов Р и Q результат применения к ним теоретико-множественной операции (ТМО) может быть описан в терминах, описывающих границы Р и Q. Подобное описание включает разделение границ Р и Q'на следующие множества: 1. Лп Q - части границы Р, лежащие внутри Q\ 1. Qa\P - части границы Q, лежащие внутри Р;

3. Pout б - части границы Р, лежащие вне Q;

4. gout? - части границы Q, лежащие вне Р;

5. PQshared - части границ Р и Q, которые совпадают и ограничивают одну и ту же область;

6. Pganti shared - части Р и 2, которые совпадают и ограничивают разъединенные области.

Поскольку множества 1-6 определены, границы результата P(*)Q описываются в терминах должным образом выбранных элементов грагащ множеств Р и Q. Границы результатов ТМО состоят из частей грагащ Р и Q, а именно, из элементов множеств (1) - (6). Для

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

Р+д = РСМшгес! и РоШб и ()о\аР Р*<2= Р&Ьагес1 и ЯпЙ и &пР Р-0 = Рбап^Ьаге«! И Р и Ро\АО Метод выполнения ТМО можно разделить на следующие фазы:

1. Расщепление двух многогранников. Элементы границ двух многогранников расщепляют друг друга сохраняя ориентацию.

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

3. Склейка растепленных границ: необходимые компоненты расщепленных Р и О и образуют многогранник - результат операции.

4. Сборка мусора: удаляются и склеиваются избыточные ребра и грани.

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

• "вершина-вершина";

• "вершина-ребро";

• "ребро-ребро";

• "вершина-грань";

• "ребро-грань";

• "грань-грань".

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

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

Полученные в результате расщепления многогранников Р и (3 грани целиком лежат либо внутри, либо вне, либо на границе другого многогранника, поэтому формироватге множеств граней для формирования результата ТМО сводится к классической задаче вычислительной геометрии - классификации положения точки относительно многогранника, применяемой к любой внутренней точке граней ЦР) и Д0. Далее выполняется склейка соответствующих граней из Р и £? в новый многогранник - результат ТМО. На стадии сборки мусора склеиваются смежные грани с совпадающими нормалями.

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

В разделе 1.6 изложен эффетивный алгоритм построения сечеши многогранника Р плоскостью /), заданной каноническим уравнением ах + Ъу + сх +(]-() - множества Н — Р гл Л. Построение множества £ можно осуществить выполнением лишь первой фазы алгоритма теоретико-множественных операций - расщепления многогранников, взяв в качестве многогранника б вырожденный многогранник,

состоящий из одной бесконечной грани / с пустым множеством

внутренних циклов и пустым внешним циклом. Нормаль для грани / может бьггь выбрана произвольно, в частности, исходя из соотношения отсекаемых плоскостью А объемов габаритного параллелепипеда многограшшка Р. Результатом работы алгоритма будет множество внутренних циклов грани / .

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

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

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

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

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

В разделе 2.3 изложена методика расширения конструктивной модели, т.е. возможность добавления в модель новых классов объектов и

операций. При этом прикладной программист не должен менять базовых средств, каковыми являются предикат принадлежности точки и процедура вычисления габаритного параллелепипеда. Эти методы реализованы так, что вызывают соответствующие виртуальные функции у объектов, из которых состоит CSGSolid. Поэтому при введении в модель нового класса прикладной программист обязан переопределить для него виртуальные функции EvalBRep(double precision), EvalBoundingBox(), PointMembersliip(STCartesianPoint point). Иерархия классов может быть расширена в смысле добавления новых типов моделей. Например, может быть добавлена октальная модель. Для этого следует описать класс OctalModel производный от класса SolidModel.

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

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

Для задания геометрического примитива требуется задать две или более координатных систем. Первая координатная система определяет положение примитива, остальные задают его размеры. Например, для задания шшшшра задаются две системы координат ( С1,С2 ). Первая система задает положение примитива, радиус и высота вычисляются для начального положения так: R=[C2.x-Cl.x[; H=|C2.z-Cl.zj. Начальные положения систем координат связаны с начальным положением примитива. Для создания нового примитива могут быть использованы уже существующие координатные системы, в том числе и те, которые были использованы для задания других примитивов. Использование одних и тех же координатных систем для разных примитивов уже

накладывает простейшие ограничения на размеры и положения примитивов. Перемещая такие системы координат, можно менять размеры сразу у всех связанных примитивов. После построения конструктивной модели тела некоторые координатные системы могут быть сделаны внешними и использоваться в дальнейшем для введения связей между параметрами сборки. Более сложные связи вводятся с использованием механизма ограничений (constraints). Для задания ограничения требуется указать две координатные системы родительскую и дочернюю, а также тип ограничения. Родительская система координат накладывает ограничение на дочернюю. В ■ случае ограничения типа отношение требуется указать три координатные системы.

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

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

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

Разработанная модель является ттструментальным средством, не привязанным к конкретной предметной области и предоставляющим только базовые средства. Однако технология объектно-ориентированного программирования, используемая при реализации модели, дает прикладному программисту возможность адаптировать модель к своей предметной области.

Тело с физическими свойствами представлено в модели классом PhysicalSolid, который наследует геометрическое представление объекта и содержит список физических свойств. В качестве геометрической модели может быть использован любой подкласс класса SolidModel (CSGSolid, ManifoldSolidBrep, SweptAreaSolid ). Для физического объекта имеют смысл все базовые операции, введенные на геометрическом уровне (PointMembership, EvalBRep и т. д.),. и он может быть размножен посредством SolidReplica. Это является убедительной иллюстрацией удобства использования сквозной иерархии классов геометрической и компоновочной моделей.

Компоновочные структуры связываются друг с другом посредством специальных компоновочных операций. Элементами компоновки могут быть все объекты классов, производные от SolidModel, как чисто геометрические тела, так и тела с физическими свойствами. Самой общей операцией является операция добавления объекта к компоновке. Для компоновочной модели в целом и для ее элементов имеют смысл базовые методы, определенные в классе Operand. Поэтому классы компоновочной модели входят в общую иерархию классов.

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

Л$5стЫу8с)!к1 выводится из класса СХОБоЫ, что дает возможность использовать основные алгоритмы для конструктивного дерева на уровне компоновки. Прикладной программист может вводить в моделгь новые компоновочные операции.

Компоновочные операции реализованы в модели базовым классом АНасЬтегй, который предсташшет наиболее общую операцию компоновки двух объектов и не накладывает никаких связей между объектами кроме возможной проверки на их не пересечение. Этот класс является базовым для более специализированных компоновочных операций.

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

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

В разделе 3.2 описан рассчет площади поверхности и объема граничной модели тела на основе формул Грина и Остроградского— Гаусса. Результаты вычислений иллюстрируют сходимость полученных формул при повышении точности полиэдральной аппроксимации тела.

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

конструктивной моделью, производится вызов виртуальных Point-Membership - функций: для основных примитивов, из которых состоит тело ( сфера, цилиндр, конус, тор, блок, клин ); объектов класса BooIeanResult, реализующего теоретико-множественные операции над примитивами; объекта класса CSGSolid, реализующего само тело. Перечисленные функции возвращают одно из трех значений типа Location: 1INSIDE, если точка находится внутри тела, ¡OUTSIDE - вне тела, 10N_B0UNDARY - лежит на его границе. В целях оптимизации используется также функция BoxDomainPointMemebership, которая для данного BoxDomain ( класс, реализующий габаритный параллелепипед ) возвращает только два значения: 1INSIDE, если точка принадлежит внутренней области BoxDomain или его границе, и 10UTSIDE, если точка лежит вне BoxDomain. При расширении модели CSG-тела -добавлении классов, реализующих новые примитивы и новые операции достаточно написать для них собственные виртуальные PointMembersliip - функции. Неудобство состоит лишь в том, что для новых операций оптимизация будет выполняться только при внесении соответствующих изменений в функцию CSGSolid::PointMembership().

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

. MS-DOS/MS-Windows 11а 386-based PC's • UNIX/X11/Motif на графических рабочих станциях Прикладные программы, использующие только классы из библиотеки VG, должны с минимальными модификациями функционировать после перекомпиляции в обоих средах. Система взаимодействия с пользователем спроектирована как 3-х мерная

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

В разделе 4.2 изложена общая структура системы. Центральным понятием прикладной программы является сцена. Сцена представляет список геометрических объектов, которые могут быть разнородны по своей природе. Однако все геометрические объекты должны быть порождены из базового геометрического объекта VgGeomObject. Для введения нового класса геометрических объектов прикладной программист обязан определить функцию GetBoundingBox3D(), возвращающую охватывающий параллепипед без учета модельного преобразования данного геометрического объекта. Также ему необходимо переопределить несколько функций, обеспечивающих ввод-вывод из потока.

После этого его приложение уже будет нормально функционировать в графическом интерактивном режиме. Создаваемые в нем объекты будут выводиться (вводиться) в (из) поток(а). Пользователь будет обеспечен необходимыми средствами прямого манипулирования и визуализации. Он будет управлять камерой, окнами. Породив и сцене ряд разнородных объектов, он уже будет иметь возможность пользоваться устройством Pick, которое по нажатию кнопки..мыши в объекте сделает его текущим. Текущий объект уже может перемещаться и вращаться в пределах сцены. Он может быть сохранен во внешней памяти, а прочитанный или созданный другими средствами объект становится текущим. Однако визуализироваться объекты будут методом, определенном в классе VgViewObject по умолчанию, а имешю будут отрисовываться габаритные параллепипеды. Для введения нового варианта отрисовки объектов необходимо переопределить метод draw() в классе VgViewObject. При этом метод рисования, определенный по умолчанию, остается очень полезным для использования, например, для быстрого получения компоновки посредством манипулирования габаритными параллепипедами составляющих объектов. Конструктор VgViewObject требует указатель на VgGeomObject (что отрисовывать).

Некоторые интерактивные устройства манипулирования пространственными объектами (классы), входящие . в базовую объектно-ориентированную среду, используют быстрый метод отрисовки draw_outline(). По умолчанию он вызывает draw(). Прикладной программист может его переопределить. Это бывает часто удобно. К примеру, метод draw() может реаяизовывать алгоритм реалистической графики, в то время как draw outline() может выполнять каркасную визуализацию.

Данные и операции, относящиеся непосредственно к приложению, прикладной программист определяет в классе, производном от класса VgDocument. Также в составе ядра имеется класс VgView, объекты которого выглядят на экране как окна, на которых визуализируется сцена. Класс окна VgView инкапсулирует системно-независимые свойства окна в различных оконных средах (MS Windows, X Window), например заголовок, размер, вывод в окно. Он также вводит механизмы, служащие интерфейсом к тем функциям оконных систем, которые реализованные различно в каждой из них (например понятие графического контекста совершенно различается в MS Windows и в X Window). Кроме того, этот класс обеспечивает видовое преобразование трехмерной точки в растровую точку в окне.

VgDocument содержит список VgGeomObject и VgView (соответственно и операщш по добавлению/удавлению из списков). VgView содержит список VgViewObject (с операциями манипулирования в списке).

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

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

В разделе 4.5 приведена эффективная реализация алгоритма тоновой закраски моделей объектов методом Z-буфера.

В разделе 4.6 изложена структура механизма логических устройств

прямого манипулирования пространственными объектами.

ЗАКЛЮЧЕНИЕ

Приведем основные результаты диссертационной работы:

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

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

3. Объектно-ориентированная система взаимодействия с пользователем формализует структуру, поведение и дисциплину разработки высокоинтерактивного графического программного обеспечашя. Структура иерархии классов позволояет легко адаптировать существующее программное обеспечение для эффективного использования современных графических стандартов и аппаратных ускорителей.

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

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

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

Результаты диссертационной работыотражены в следующих

печатных работах:

• Лысанов С.Ю., Ососков Л.Г., Филин А.Г., Юков И.Е. Построение объектно-ориентированных численных библиотек. - "Вопросы кибернетики. Средства моделирования и разработка прикладного программного обеспечения для суперЭВМ", М., 1992 - С. 66-81

• Юков И.Е., Объектно-ориентированная граничная модель твердого тела, - "Вопросы кибернетики. Приложения системного программирования", М., 1995 - С. 109 - 124

• Дмитров В.И., Щедрин СМ., Юков И.Е., Базовые алгоритмы в процессе геометрического моделирования в компьютеризированной интегрированной информационно-логистической системе, - М., Инорматика - Машиностроение, No. 9-10, 1995, С. 21-29

• V. Ivannikov, R. Rasche, A. Danilin, М. Ermolov, S. Schedrin, I. Yukov, "3D Integrated Object-Oriented Application Kernel" (в печати)

• Юков И.Е. "Объектно-ориентированная среда разработки трехмерных приложении" (в печати)

Подписано в печать 5 марта 1996 г. Заказ № 72. Тираж 100 экз. П.л. 1.2 Отпечатано в РИИС ФИАН. Москва, В-333, Ленинский проспект, 53