---
name: "glMapGrid"
section: "3x"
platform: "linux"
package: "xlibmesa-gl-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/glMapGrid"
---

# glMapGrid(3x)

define a one- or two-dimensional mesh

## NAME

**glMapGrid1d, glMapGrid1f, glMapGrid2d, glMapGrid2f** - define a one- or two-dimensional mesh

## C SPECIFICATION

void **glMapGrid1d**( GLint *un*,

```
	GLdouble u1,
	GLdouble u2 )
```

void **glMapGrid1f**( GLint *un*,

```
	GLfloat u1,
	GLfloat u2 )
```

void **glMapGrid2d**( GLint *un*,

```
	GLdouble u1,
	GLdouble u2,
	GLint vn,
	GLdouble v1,
	GLdouble v2 )
```

void **glMapGrid2f**( GLint *un*,

```
	GLfloat u1,
	GLfloat u2,
	GLint vn,
	GLfloat v1,
	GLfloat v2 )
```

delim $$

## PARAMETERS

- *un*

  Specifies the number of partitions in the grid range interval \[*u1*, *u2*\]. Must be positive.

- *u1*, *u2*

  Specify the mappings for integer grid domain values $i~=~0$ and $i~=~"un"$.

- *vn*

  Specifies the number of partitions in the grid range interval \[*v1*, *v2*\]\
   (**glMapGrid2** only).

- *v1*, *v2*

  Specify the mappings for integer grid domain values $j~=~0$ and $j~=~"vn"$\
   (**glMapGrid2** only).

## DESCRIPTION

**glMapGrid** and **glEvalMesh** are used together to efficiently generate and evaluate a series of evenly-spaced map domain values. **glEvalMesh** steps through the integer domain of a one- or two-dimensional grid, whose range is the domain of the evaluation maps specified by **glMap1** and **glMap2**.

**glMapGrid1** and **glMapGrid2** specify the linear grid mappings between the $i$ (or $i$ and $j$) integer grid coordinates, to the $u$ (or $u$ and $v$) floating-point evaluation map coordinates. See **glMap1** and **glMap2** for details of how $u$ and $v$ coordinates are evaluated.

**glMapGrid1** specifies a single linear mapping such that integer grid coordinate 0 maps exactly to *u1*, and integer grid coordinate *un* maps exactly to *u2*. All other integer grid coordinates $i$ are mapped so that

u ~=~ i ("u2" - "u1") / "un" ~+~ "u1"

**glMapGrid2** specifies two such linear mappings. One maps integer grid coordinate $i~=~0$ exactly to *u1*, and integer grid coordinate $i~=~"un"$ exactly to *u2*. The other maps integer grid coordinate $j~=~0$ exactly to *v1*, and integer grid coordinate $j~=~"vn"$ exactly to *v2*. Other integer grid coordinates $i$ and $j$ are mapped such that

u ~=~ i ("u2" - "u1") / "un" ~+~ "u1"

v ~=~ j ("v2" - "v1") / "vn" ~+~ "v1"

The mappings specified by **glMapGrid** are used identically by **glEvalMesh** and **glEvalPoint**.

## ERRORS

**GL\_INVALID\_VALUE** is generated if either *un* or *vn* is not positive.

**GL\_INVALID\_OPERATION** is generated if **glMapGrid** is executed between the execution of **glBegin** and the corresponding execution of **glEnd**.

## ASSOCIATED GETS

**glGet** with argument **GL\_MAP1\_GRID\_DOMAIN**\
 **glGet** with argument **GL\_MAP2\_GRID\_DOMAIN**\
 **glGet** with argument **GL\_MAP1\_GRID\_SEGMENTS**\
 **glGet** with argument **GL\_MAP2\_GRID\_SEGMENTS**

## SEE ALSO

**glEvalCoord(3G)**, **glEvalMesh(3G)**, **glEvalPoint(3G)**, **glMap1(3G)**, **glMap2(3G)**
