Функция 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 .
Имя | Значение |
---|---|
|
Указывает, что режим не является допустимым значением. |
|
Функция была вызвана между вызовом 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 [только классические приложения] |
Заголовок |
|
Библиотека |
|
DLL |
|