• Rotate - вращение трехмерного объекта. Вызывается для вращения
объекта на заданные горизонтальный и вертикальный углы относительно
начала координат.
Класс TWinHelper предназначен для обработки сообщений, поступаю-
щих как от операционной системы Windows, так и вызванных действиями
пользователя.
К системным сообщениям относятся следующие:
• активизация и (потеря фокуса) в котором
осуществляется визуализация;
• изменение размеров элемента управления, в клиентской области кото-
рого происходит визуализация трехмерного объекта.
Кроме того, данный класс обрабатывает сообщения мыши, когда ее кур-
сор находится над элементом управления: перемещение мыши при нажатой
левой кнопке вызывает вращение объекта относительно начала координат.
Класс TSlopeBody предназначен для создания трехмерного со-
ответствующего заданной при инициализации расчетной схеме. Объекты
данного класса обладают следующими свойствами:
• SlopeHeight высота откоса;
• Width - ширина откоса:
• Visible - состояние отображения объекта: если данное свойство равно
True, то объект видим, если равно False, то он не отображается.
Класс является абстрактным классом. Поэтому для визуали-
зации конкретной расчетной схемы необходимо создать новый класс, яв-
ляющийся потомком класса TSlopeBody, в котором необходимо перегрузить
методы CreateNormals, CreateSlopeBorder, Create-
TopBorder. Эти методы должны описывать только нарушения откоса (трещи-
ны или ослабления), все остальные параметры объекта добавят-
ся автоматически. Реализация этих методов делает следующее:
• CreateNormals - возвращает список нормалей нарушения откоса.
• CreateVertices - возвращает список вершин нарушения откоса.
• CreateFaces - возвращает список индексов вершин и описы-
вающих грани нарушения откоса. Индексы вершин и нормалей должны
соответствовать индексам в списках, возвращаемых функциями Cre-
ateNormals и CreateVertices. Список должен состоять из повторяющихся
фрагментов, каждый из которых описывает отдельную грань нарушения.
Формат фрагмента следующий:
.
где n - количество вершин грани, - индекс i-й вершины и
нормали грани. Список должен завершаться нулем.
• CreateSlopeBorder - возвращает список индексов вершин, которые
являются общими как для нарушения, так и для боковой грани откоса.
Индексы вершин должны перечисляться от дальней верхней точки наруше-
ния против часовой стрелки. Список должен разделяться на 4 фрагмента,
каждый из которых описывает соединение указанных вершин нарушения с