GL_TRUE. В противном случае, если задать значение GL_FALSE, приложение должно само поддерживать указанные матрицы с использованием функции gluLoadSam-plingMatrices.

Чтобы определить текущее значение свойства би-сплайна, используется следующая функция запроса.

gluGetNurbsProperty (splineName, property, value); Для заданных splineName и property соответствующее значение возвращается в параметр value.

Если свойству GLU_AUTO_LOAD_MATRIX присвоено значение GL_FALSE, необходимо вызвать функцию

gluLoadSamplingMatrices (splineName, modelviewMat, projMat,

viewport); Данная функция задает матрицу модельной проекции, проекционную матрицу и окно просмотра, которые будут использоваться процедурами дискретизации и отбора при обработке сплайнового объекта. Текущие матрицу вида модели и проекционную матрицу можно получить, вызвав функцию glGetFloatv, а текущее окно просмотра получается посредством вызова функции glGetlntegerv.

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

gluNurbsCallback (splineName, event, fen); Параметру event присваивается символьная константа GLU, а параметр fen задает функцию, которая будет вызываться при наступлении события, соответствующего константе GLU. Например, если присвоить параметру event значение GLU_NURBS_ERROR, в случае ошибки будет вызываться функция fen. Другие события используются сплайновыми процедурами GLU для выдачи многоугольников OpenGL, сгенерированных в виде мозаичного представления. Символьная константа GL_NURBS_BEGIN указывает начало такого примитива, как отрезок, треугольник или четырехугольник, a GL_NURBS_END указывает конец примитива. Аргументом функции, обозначающим начало примитива, является такая символьная константа, как GL_LINE_STRIP, GL_TRIANGLES или GL_QUAD_STRIP. Символьная константа GL_NURBS_VERTEX указывает, что поддерживается трехмерная информация о координатах и вызывается функция вершин. Существуют дополнительные константы, обозначающие другие данные, такие как коды цвета.

Информационные значения функции gluNurbsCallback задаются следующим образом:

gluNurbsCallbackData (splineName, dataValues); Параметру splineName присваивается имя сплайнового объекта, который представляется в виде мозаики, а параметру dataValues присваивается список элементов данных.

ФУНКЦИИ GLU ОБРЕЗКИ ПОВЕРХНОСТИ

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

gluBeginTrim (surfName);

gluPwlCurve (surfName, nPts, *curvePts, stride,

GLU_MAP1_TRIM_2);

gluEndTrim (surfName); Параметр surfName - это имя би-сплайновой поверхности, которая будет обрезаться. Набор координат (значения с плавающей запятой) для обрезающей кривой задается в параметре массива curvePts, который содержит nPts координатных позиций. Целочисленный сдвиг между последовательными координатными позициями задается в параметре stride. Заданные координаты кривой используются для генерации кусочно-линейной обрезающей функции для би-сплайновой поверхности. Другими словами, сгенерированная обрезающая “кривая” - это ломаная линия. Если точки кривой задаются в трехмерном параметрическом пространстве (и, v, h), конечный аргумент в gluPwlCurve задается равным символьной константе GLU GLU_MAP1_TRIM_3.


⇐ вернуться назад | | далее ⇒