Функция glMap1d

Функции glMap1d и glMap1f определяют одномерный оценщик.

Синтаксис

void WINAPI glMap1d(
         GLenum   target,
         GLdouble u1,
         GLdouble u2,
         GLint    stride,
         GLint    order,
   const GLdouble *points
);

Параметры

target

Тип значений, создаваемых оценщиком. Символические константы. Целевой параметр является символьной константой, которая указывает, какие контрольные точки предоставляются в точках и какие выходные данные создаются при оценке карты. Он может предполагать одно из девяти предопределенных значений.

Значение Значение
GL_MAP1_VERTEX_3
Каждая контрольная точка имеет три значения с плавающей запятой , представляющие x, y и z. Внутренние команды glVertex3 создаются при оценке карты.
GL_MAP1_VERTEX_4
Каждая контрольная точка имеет четыре значения с плавающей запятой , представляющие x, y, z и w. Внутренние команды glVertex4 создаются при оценке карты.
GL_MAP1_INDEX
Каждая контрольная точка является одним значением с плавающей запятой, представляющим индекс цвета. Внутренние команды glIndex создаются при оценке карты. Однако текущий индекс не обновляется со значением этих команд glIndex .
GL_MAP1_COLOR_4
Каждая контрольная точка имеет четыре значения с плавающей запятой, представляющие красный, зеленый, синий и альфа-канал. Внутренние команды glColor4 создаются при оценке карты. Однако текущий цвет не обновляется со значением этих команд glColor4 .
GL_MAP1_NORMAL
Каждая контрольная точка — это три значения с плавающей запятой, представляющие компоненты x, y и z нормального вектора. Внутренние команды glNormal создаются при оценке карты. Однако текущее нормальное значение этих команд glNormal не обновляется.
GL_MAP1_TEXTURE_COORD_1
Каждая контрольная точка представляет собой одно значение с плавающей запятой, представляющее координату текстуры. Внутренние команды glTexCoord1 создаются при оценке карты. Однако текущие координаты текстуры не обновляются со значением этих команд glTexCoord .
GL_MAP1_TEXTURE_COORD_2
Каждая контрольная точка — это два значения с плавающей запятой, представляющие координаты текстуры s и t . Внутренние команды glTexCoord2 создаются при оценке карты. Однако текущие координаты текстуры не обновляются со значением этих команд glTexCoord .
GL_MAP1_TEXTURE_COORD_3
Каждая контрольная точка — это три значения с плавающей запятой, представляющие координаты текстур s, t и r . Внутренние команды glTexCoord3 создаются при оценке карты. Однако текущие координаты текстуры не обновляются со значением этих команд glTexCoord .
GL_MAP1_TEXTURE_COORD_4
Каждая контрольная точка — это четыре значения с плавающей запятой, представляющие координаты текстур s, t, r и q . Внутренние команды glTexCoord4 создаются при оценке карты. Однако текущие координаты текстуры не обновляются со значением этих команд glTexCoord .

u1

Линейное сопоставление u, как показано в glEvalCoord1, с u^, переменной, которая вычисляется с помощью уравнений, заданных этой командой.

u2

Линейное сопоставление u, как показано в glEvalCoord1, с u^, переменной, которая вычисляется с помощью уравнений, заданных этой командой.

Шаг

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

order

Количество контрольных точек. Должен быть положительным.

точки

Указатель на массив контрольных точек.

Возвращаемое значение

Эта функция не возвращает значение.

Коды ошибок

Следующие коды ошибок могут быть получены функцией glGetError .

Имя Значение
GL_INVALID_ENUM
Target не является допустимым значением.
GL_INVALID_VALUE
u1 был равен u2.
GL_INVALID_VALUE
Шаг был меньше, чем количество значений в контрольной точке.
GL_INVALID_VALUE
порядок меньше единицы или GL_MAX_EVAL_ORDER.
GL_INVALID_OPERATION
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd.

Комментарии

Вычислители предоставляют способ использования полиномиального или рационального полиномиального сопоставления для получения вершин, норм, координат текстур и цветов. Значения, созданные оценщиком, отправляются на дальнейшие этапы обработки OpenGL так же, как если бы они были представлены с помощью команд glVertex, glNormal, glTexCoord и glColor , за исключением того, что созданные значения не обновляют текущую норму, координаты текстуры или цвет.

Все полиномиальные или рациональные сплайны любой степени (до максимальной степени, поддерживаемой реализацией OpenGL) можно описать с помощью средств оценки. К ним относятся почти все сплайны, используемые в компьютерной графике, включая B-сплайны, кривые Безье, сплайны Эрмита и т. д.

Вычислители определяют кривые на основе полиномов Бернштейна. Определение p () как

Уравнение, показывающее определение p ().

где Ri — контрольная точка, а () — это полиномиал Бернштейна степени n (порядок =n + 1):

Уравнение, показывающее полиномиал Бернштейна степени n.

Напомним, что

Уравнения, показывающие эквивалентность 1.

Функция glMap1 используется для определения основы и указания типа создаваемых значений. После определения карту можно включить и отключить, вызвав glEnable и glDisable с именем карты, одним из девяти предопределенных значений целевого объекта , описанных выше. Функция glEvalCoord1 оценивает включенные одномерные карты. Когда glEvalCoord1 представляет значение u, функции Bernstein оцениваются с помощью u^, где

Уравнение, показывающее определение you^.

Параметры шага, порядка и точек определяют адресацию массива для доступа к контрольным точкам. Параметр points — это расположение первой контрольной точки, которая занимает одно, два, три или четыре смежных расположения памяти в зависимости от того, какая карта определяется. Параметр order — это количество контрольных точек в массиве. Параметр stride указывает, сколько расположений с плавающей или двойной для продвижения внутреннего указателя памяти для достижения следующей контрольной точки.

Как и в случае со всеми командами OpenGL, которые принимают указатели на данные, содержимое точек было скопировано с помощью glMap1 перед возвратом. Изменения содержимого точек не оказывают никакого влияния после вызова glMap1 .

Следующие функции извлекают сведения, связанные с glMap1:

glGet с аргументом GL_MAX_EVAL_ORDER

glGetMap

glIsEnabled с аргументом GL_MAP1_VERTEX_3

glIsEnabled с аргументом GL_MAP1_VERTEX_4

glIsEnabled с аргументом GL_MAP1_INDEX

glIsEnabled с аргументом GL_MAP1_COLOR_4

glIsEnabled с аргументом GL_MAP1_NORMAL

glIsEnabled с аргументом GL_MAP1_TEXTURE_COORD_1

glIsEnabled с аргументом GL_MAP1_TEXTURE_COORD_2

glIsEnabled с аргументом GL_MAP1_TEXTURE_COORD_3

glIsEnabled с аргументом GL_MAP1_TEXTURE_COORD_4

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Gl.h
Библиотека
Opengl32.lib
DLL
Opengl32.dll

См. также раздел

glBegin

glColor

GlEnable

glEnd

glEvalCoord

glEvalMesh

glEvalPoint

glMap2

glMapGrid

glNormal

glTexCoord

glVertex