На рисунке ниже приведена диаграмма классов, обслуживающих
визуализацию данных. Обозначения на диаграмме соответствуют нотации языка UML, хотя
и имеют нестандартное графическое оформление. Стрелками обозначается отношение
обобщения,
а квадратиками - отношение агрегации и композиции
[14].
Под именем каждого класса приведено его краткое описание.
      На следующем рисунке приведена диаграмма классов, описывающих
структуру механизма. Необходимо отметить, что на диаграмме отражены только ключевые
отношения агрегации, отражающие структуру механизма. Кроме того, на диаграмме присутствует
отношение зависимости между классами (обозначаемое пунктирной стрелкой от (зависимого)
класса-клиента к (независимому) классу-источнику)
[14].
      Ниже приведена таблица дающая краткое описание каждого класса,
представленного на диаграмме и разбивающая классы на логические модули:
Таблица 3: Краткое описание основных функциональных
классов программы
№ |
Название класса |
Краткое описание |
    Модуль управления редактируемыми объектами:
|
1 |
PropObject |
Данный класс является базовым классом всех объектов, которые могут отображаться в редакторе свойств.
Класс реализует общие для таких объектов свойства и методы, связанные с идентификацией в списке
редактируемых объектов;
|
2 |
PropObjManager
|
Класс объекта, управляющего списком всех редактируемых объектов и выполняющего основные операции над
этими объектами. Кроме того, класс реализует некоторые операции по редактированию структуры механизма;
|
    Модуль управления стилями отображения объектов:
|
3 |
StylesManager
|
Класс объекта, управляющего стилями отображения видов и структурных схем механизмов в видах. Класс
содержит описание событий, вызываемых обработчиками изменения свойств стилей;
|
    Модуль подсистемы 3D-рендеринга и управления видами:
|
4 |
MechView3D
|
Класс вида – выполняет настройку вида и его рендеринг на указанную панель. Класс работает со списком
геометрических объектов и реализует операции выполнение операций редактирования этих объектов – такие
как выделение мышью, перемещение, вращение, масштабирование;
|
    Модуль представления геометрических объектов механизма:
|
5 |
GeomPoint
|
Класс точек, определяющих положение геометрических объектов. Класс точек имеет методы рендеринга в
проекциях механизма. Класс геометрической точки так же имеет методы, позволяющие выполнять её выделение
и перемещение в пространстве;
|
6 |
GeomObject
|
Этот абстрактный класс является базовым для всех геометрических объектов сцены. Класс содержит свойства
настройки таких объектов, методы рендеринга и методы их редактирования, такие как перемещение, вращение,
масштабирование;
|
7 |
GeomTestObject
|
Класс тестового геометрического объекта (чайник).
|
8 |
GeomHoldObject
|
Класс геометрических объектов звеньев крепления;
|
9 |
GeomCylObject
|
Класс геометрических объектов цилиндрических участков звеньев ломаных;
|
10 |
GeomCrawObject
|
Класс геометрических объектов звеньев цилиндрических ползунков;
|
11 |
GeomOnwObject
|
Класс геометрических объектов звеньев поступательных ползунков;
|
12 |
GeomSphObject
|
Класс геометрических объектов элементов сферических пар;
|
13 |
GeomRotObject
|
Класс геометрических объектов элементов вращательных пар;
|
    Модуль управления
структурой механизма:
|
14 |
Mechanism
|
Класс механизма является высшим звеном иерархической инкапсуляции классов, описывающих структуру механизма.
Класс реализует итераторы кК по группам механизма, так и по всем парам и звеньям. Кроме того, в классе
реализованы основные методы, выполняющие конструирование механизма и выполняющие задачи пользователя;
|
15 |
MechPGroup
|
Класс группы кинематических пар механизма. Класс группы реализует итератор по парам этой группы, а так же
методы добавления, изменения и удаления пар из группы;
|
16 |
MechEditableObj
|
Абстрактный класс, базовый всех объектов механизма, позволяющих выполнять над ними операции геометрического
редактирования;
|
17 |
MechSubLink
|
Класс подзвена, являющегося составной частью звена. Содержит информацию о структурной точке звена,
геометрическом объекте части звена или других звеньях, являющихся частью составного звена. Подзвено также
содержит указатель на присоединённую пару;
|
18 |
MechLink
|
Абстрактный класс звена, базовый для различных типов звеньев. Содержит общие для всех типов звеньев методы и
свойства, унифицирующие работу со звеньями;
|
19 |
HolderMLink
|
Класс звена крепления механизма (для неподвижного закрепления элемента кинематической
пары); |
20 |
LinearMLink
|
Класс линейных звеньев - ломаной или контура |
21 |
CrawlerMLink
|
Класс звена цилиндрического ползунка механизма |
22 |
OnwardMLink
|
Класс звена поступательного ползунка механизма |
23 |
CompoundMLink
|
Класс составного звена, позволяющего соединять разные типы звеньев; |
24 |
MechPair
|
Абстрактный класс, являющийся базовым для различных типов кинематических пар. Класс реализует методы и
свойства, унифицирующие работу с кинематическими парами;
|
25 |
SphericMPair
|
Класс сферической кинематической пары механизма; |
26 |
RotateMPair
|
Класс вращательной кинематической пары механизма; |
27 |
CrawlerMPair
|
Класс цилиндрической кинематической пары механизма; |
28 |
OnwardMPair
|
Класс поступательной кинематической пары механизма; |