Функции нельзя вызывать внутри пары gIBegin/glEnd.

Смотри также:

glColorPointer, glEdgeFlagPointer, gIGetPointerv, gllndexPointer, gINormalPointer, gITexCoordPointer, gIVertexPointer.

glEvalCoord

Вычисляет некоторую информацию по указанной точке кривой.

void glEvalCoordld (

GLdouble u ) ;

void glEvalCoord2d (

GLdouble u,

GLdouble v ) ; Варианты: glEvalCoordlf, glEvalCoord2f, glEvalCoord1{fd}v,

glEvalCoord2{fd}v.

Подробнее о параметрах, u, v

Определяют параметрические значения, необходимые для вычисления.

Эта функция использует предварительно разрешенный вычислитель, настроенный функцией gIMap, чтобы произвести вычисления вершины, цвета, нормали или текстурных координат, основанные на параметрических значениях и и v. Тип данных и моделируемые вызовы функций определяются функциями gIMap.

glEvalMesh

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

void glEvalMeshl (

GLenum mode,

GLint il,

GLint i2 ) ;

void glEvalMesh2 (

GLenum mode, GLint il,

GLint i2,

GLint jl,

GLint j2 ) ; Подробнее о параметрах.

mode

Определяет, как должна создаваться сетка:

• GL_POINT - по точкам;

• GL_LINE - по отрезкам;

• GL_FILL - по многоугольникам.

И, \2

Определяют первое и последнее значение для параметра и.

J1J2

Определяют первое и последнее значение для параметра v.

Эта функция используется с функцией gIMapGrid для эффективного создания сетки с равномерным распределением значений и и V. Фактически происходит вычисление контура и производство точек, отрезков или закрашенных многоугольников. Например, функция glMeshl заменяет следующий код.

glBegin(type) ;

for(i=il;i<=i2;i++)

glEvalCoordl(i*du+ul);

glEnd(); Где du=(u2-u1)/n, a n, u1 и u2 - аргументы последнего вызова функции gIMapGridI. Аналогично для glMesh2.

Для двухмерного случая, пусть du=(u2-u1)/n, dv=(v2-v1)/m, где п, и 1, u2, m, v1 и v2 - значения аргументов последнего вызова glMapGrid2. Тогда, если режим отображения GL_FILL, функция glEvalMesh2 эквивалентна следующему коду.

for(int j =j1;j<j2;j++)

{

glBegin(GL_QUAD_STRIP); for(int i=i1■i<=i2;i++)

{

glEvalCoord2(i*du+ul,j*dv+vl);

glEvalCoord2(i*du+ul,(j+1)*dv+vl);

}

glEnd();

}

Если режим GL_LINE, то функция эквивалентна следующему коду.

for(int j =j1;j <=j 2;j + +)

{

glBegin(GL_LINE_STRIP); for(int i=il;i<=i2;i++)

glEvalCoord2(i*du+ul,j *dv+vl); glEnd();

}

for(int i=il;i<=i2;i++)

{

glBegin(GL_LINE_STRIP); for(int j=j1;j<=j1;j++)

glEvalCoord2(i*du+ul,j *dv+vl); glEnd();

}

И наконец, код для режима GL_POINT.

glBegin(GL_POINTS); for(j =j1;j <=j 2;j++) for(i=il;i<=i2;i++)

glEvalCoord2(i*du+ul, j *dv+vl) ; glEnd(); Смотри также:

glEvalCoord, glEvalPoint, gIMap, gIMapGrid.

glEvalPoint

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

void glEvalPointl (

GLint i ) ;

void glEvalPoint2 (

GLint i, // первая переменная области сетки.

GLint j // вторая переменная области сетки.

) ; Функции gIMapGrid и glEvalMesh используются совместно, чтобы эффективно вычислить ряд равномерных точек на карте. Вызов glEvalPointl эквивалентен вызову

glEvalCoord1(i du+u1), где du=(u2-u1) / п, а п, u1 и u2 - аргументы последнего вызова функции gIMapGrid!


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