Поделиться через


Функция glEvalMesh2

Вычисляет двумерную сетку точек или линий.

Синтаксис

void WINAPI glEvalMesh2(
   GLenum mode,
   GLint  i1,
   GLint  i2,
   GLint  j1,
   GLint  j2
);

Параметры

mode

Значение типа , указывающее, следует ли вычислять двумерную сетку точек, линий или многоугольников. Принимаются следующие символьные константы: GL_POINT, GL_LINE и GL_FILL.

i1

Первое целочисленное значение для переменной домена сетки i.

i2

Последнее целочисленное значение для переменной домена сетки i.

j1

Первое целочисленное значение для переменной домена сетки j.

j2

Последнее целочисленное значение для переменной домена сетки j.

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

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

Коды ошибок

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

Имя Значение
GL_INVALID_ENUM
Указывает, что режим не является допустимым значением.
GL_INVALID_OPERATION
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd.

Комментарии

Используйте glMapGrid и glEvalMesh в тандеме, чтобы эффективно создавать и оценивать последовательность равномерно разделенных значений домена карты. Функция glEvalMesh проходит через целочисленный домен одномерной или двумерной сетки, диапазон которой является доменом карт оценки, заданных в glMap1 и glMap2. Параметр mode определяет, связаны ли полученные вершины в виде точек, линий или заполненных многоугольников.

В двумерном регистре— glEvalMesh2, let

? u = (u2 u1)/n

? v = (v2 v1)/m,

где n, u1, u2, m, v1 и v2 являются аргументами для последней функции glMapGrid2 . Затем, если режим GL_FILL, glEvalMesh2 эквивалентен:

для (j = j1; j < j2; j += 1)

{

glBegin(GL_QUAD_STRIP);

для (i = i1; i <= i2; i += 1)

{

glEvalCoord2(i? u + u1 ( ) , j ? v + v1);

glEvalCoord2(i? u + u1 ( ) , (j+1) ? v + v1);

}

glEnd( ); }

Если режим GL_LINE, вызов glEvalMesh2 эквивалентен:

для (j = j1; j <= j2; j += 1)

{

glBegin(GL_LINE_STRIP);

для (i = i1; i <= i2; i += 1)

{

glEvalCoord2(i? u + u1, j? v + v1);

}

glEnd( );

}

для (i = i1; i <= i2; i += 1)

{

glBegin(GL_LINE_STRIP);

для (j = j1; j <= j1; j += 1)

{

glEvalCoord2(i? u + u1, j? v + v1);

}

glEnd( );

}

И, наконец, если режим GL_POINT, вызов glEvalMesh2 эквивалентен:

glBegin(GL_POINTS);

для (j = j1; j <= j2; j += 1)

{

для (i = i1; i <= i2; i += 1)

{

glEvalCoord2(i? u + u1, j? v + v1);

}

}

glEnd( );

Во всех трех случаях единственными абсолютными числовыми требованиями являются следующие: если i = n, то значение вычисляется из i? u + u1 равно именно u2, и если j = m, то значение вычисляется из j? v + v1 — это именно версия 2. Следующие функции извлекают сведения, связанные с glEvalMesh:

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

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

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

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

Требования

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