Freigeben über


glEvalMesh2-Funktion

Berechnet ein zweidimensionales Raster von Punkten oder Linien.

Syntax

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

Parameter

mode

Ein -Wert, der angibt, ob ein zweidimensionales Gitter aus Punkten, Linien oder Polygonen berechnet werden soll. Die folgenden symbolischen Konstanten werden akzeptiert: GL_POINT, GL_LINE und GL_FILL.

i1

Der erste ganzzahlige Wert für die Rasterdomänenvariable i.

i2

Der letzte ganzzahlige Wert für die Rasterdomänenvariable i.

j1

Der erste ganzzahlige Wert für die Rasterdomänenvariable j.

j2

Der letzte ganzzahlige Wert für die Rasterdomänenvariable j.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Fehlercodes

Die folgenden Fehlercodes können von der glGetError-Funktion abgerufen werden.

Name Bedeutung
GL_INVALID_ENUM
Gibt an, dass der Modus kein akzeptierter Wert ist.
GL_INVALID_OPERATION
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen.

Bemerkungen

Verwenden Sie glMapGrid und glEvalMesh zusammen, um effizient eine Reihe von Kartendomänenwerten mit gleichmäßigem Abstand zu generieren und auszuwerten. Die glEvalMesh-Funktion durchläuft die Ganzzahldomäne eines ein- oder zweidimensionalen Rasters, dessen Bereich die Domäne der von glMap1 und glMap2 angegebenen Auswertungszuordnungen ist. Der mode-Parameter bestimmt, ob die resultierenden Scheitelpunkte als Punkte, Linien oder gefüllte Polygone verbunden sind.

Im zweidimensionalen Fall glEvalMesh2, let

? u = (u2 u1)/n

? v = (v2 v1)/m,

Dabei sind n, u1, u2, m, v1 und v2 die Argumente für die neueste glMapGrid2-Funktion . Wenn der Modus GL_FILL ist, entspricht glEvalMesh2 folgendem:

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

{

glBegin(GL_QUAD_STRIP);

for (i = i1; i <= i2; i += 1)

{

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

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

}

glEnd( ); }

Wenn der Modus GL_LINE ist, entspricht ein Aufruf von glEvalMesh2 folgendem:

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

{

glBegin(GL_LINE_STRIP);

for (i = i1; i <= i2; i += 1)

{

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

}

glEnd( );

}

for (i = i1; i <= i2; i += 1)

{

glBegin(GL_LINE_STRIP);

for (j = j1; j <= j1; j += 1)

{

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

}

glEnd( );

}

Wenn der Modus GL_POINT ist, entspricht ein Aufruf von glEvalMesh2 folgendem:

glBegin(GL_POINTS);

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

{

for (i = i1; i <= i2; i += 1)

{

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

}

}

glEnd( );

In allen drei Fällen bestehen die einzigen absoluten numerischen Anforderungen darin, dass, wenn i = n, der aus i berechnete Wert? u + u1 ist genau u2, und wenn j = m, dann der wert berechnet aus j? v + v1 ist genau v2. Die folgenden Funktionen rufen Informationen zu glEvalMesh ab:

glGet mit argument GL_MAP1_GRID_DOMAIN

glGet mit argument GL_MAP2_GRID_DOMAIN

glGet mit argument GL_MAP1_GRID_SEGMENTS

glGet mit argument GL_MAP2_GRID_SEGMENTS

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Gl.h
Bibliothek
Opengl32.lib
DLL
Opengl32.dll