Функция 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 .
Имя | Значение |
---|---|
|
Target не является допустимым значением. |
|
u1 был равен u2. |
|
Шаг был меньше, чем количество значений в контрольной точке. |
|
порядок меньше единицы или GL_MAX_EVAL_ORDER. |
|
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd. |
Вычислители предоставляют способ использования полиномиального или рационального полиномиального сопоставления для получения вершин, норм, координат текстур и цветов. Значения, созданные оценщиком, отправляются на дальнейшие этапы обработки OpenGL так же, как если бы они были представлены с помощью команд glVertex, glNormal, glTexCoord и glColor , за исключением того, что созданные значения не обновляют текущую норму, координаты текстуры или цвет.
Все полиномиальные или рациональные сплайны любой степени (до максимальной степени, поддерживаемой реализацией OpenGL) можно описать с помощью средств оценки. К ним относятся почти все сплайны, используемые в компьютерной графике, включая B-сплайны, кривые Безье, сплайны Эрмита и т. д.
Вычислители определяют кривые на основе полиномов Бернштейна. Определение p () как
где Ri — контрольная точка, а () — это полиномиал Бернштейна степени n (порядок =n + 1):
Напомним, что
Функция glMap1 используется для определения основы и указания типа создаваемых значений. После определения карту можно включить и отключить, вызвав glEnable и glDisable с именем карты, одним из девяти предопределенных значений целевого объекта , описанных выше. Функция glEvalCoord1 оценивает включенные одномерные карты. Когда glEvalCoord1 представляет значение u, функции Bernstein оцениваются с помощью u^, где
Параметры шага, порядка и точек определяют адресацию массива для доступа к контрольным точкам. Параметр points — это расположение первой контрольной точки, которая занимает одно, два, три или четыре смежных расположения памяти в зависимости от того, какая карта определяется. Параметр order — это количество контрольных точек в массиве. Параметр stride указывает, сколько расположений с плавающей или двойной для продвижения внутреннего указателя памяти для достижения следующей контрольной точки.
Как и в случае со всеми командами OpenGL, которые принимают указатели на данные, содержимое точек было скопировано с помощью glMap1 перед возвратом. Изменения содержимого точек не оказывают никакого влияния после вызова glMap1 .
Следующие функции извлекают сведения, связанные с glMap1:
glGet с аргументом GL_MAX_EVAL_ORDER
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 [только классические приложения] |
Заголовок |
|
Библиотека |
|
DLL |
|