Función gluEndTrim
Las funciones gluBeginTrim y gluEndTrim delimitan una definición de bucle de recorte B-Spline no uniforme (NURBS).
void WINAPI gluEndTrim(
GLUnurbs *nobj
);
-
nobj
-
El objeto NURBS (creado con gluNewNurbsRenderer).
Esta función no devuelve ningún valor.
Use gluBeginTrim para marcar el principio de un bucle de recorte y gluEndTrim para marcar el final de un bucle de recorte. Un bucle de recorte es un conjunto de segmentos de curva orientados (formando una curva cerrada) que definen los límites de una superficie NURBS. Estos bucles de recorte se incluyen en la definición de una superficie NURBS, entre llamadas a gluBeginSurface y gluEndSurface.
La definición de una superficie NURBS puede contener muchos bucles de recorte. Por ejemplo, si escribe una definición para una superficie NURBS similar a un rectángulo con un agujero perforado, la definición contendrá dos bucles de recorte. Un bucle definiría el borde exterior del rectángulo; el otro definiría el agujero perforado. Las definiciones de cada uno de estos bucles de recorte estarían entre corchetes por un par gluBeginTrim gluEndTrim / .
La definición de un único bucle de recorte cerrado puede constar de varios segmentos de curva, cada uno descrito como una serie de segmentos de línea que forman una curva lineal (vea gluPwlCurve), como una sola curva NURBS (vea gluNurbsCurve) o como una combinación de ambos en cualquier orden. Las únicas llamadas de biblioteca que pueden aparecer en una definición de bucle de recorte (entre las llamadas a gluBeginTrim y gluEndTrim) son gluPwlCurve y gluNurbsCurve.
El área mostrada de la superficie NURBS es la región del dominio a la izquierda de la curva de recorte a medida que aumenta el parámetro de curva. Por lo tanto, la región conservada de la superficie NURBS está dentro de un bucle de recorte en sentido contrario a las agujas del reloj y fuera de un bucle de recorte en el sentido de las agujas del reloj. Para el rectángulo mencionado anteriormente, el bucle de recorte para el borde exterior del rectángulo se ejecuta en sentido contrario a las agujas del reloj, mientras que el bucle de recorte para el agujero perforado se ejecuta en el sentido de las agujas del reloj.
Si usa más de una curva para definir un único bucle de recorte, los segmentos de curva deben formar un bucle cerrado (es decir, el punto de conexión de cada curva debe ser el punto inicial de la siguiente curva y el extremo de la curva final debe ser el punto inicial de la primera curva). Si los puntos de conexión de la curva están lo suficientemente cerca entre sí, pero no coinciden exactamente, se verán obligados a coincidir. Si los puntos de conexión no están lo suficientemente cerca, se produce un error (consulte gluNurbsCallback).
Si una definición de bucle de recorte contiene varias curvas, la dirección de las curvas debe ser coherente (es decir, el interior debe estar a la izquierda de todas las curvas). Puede usar bucles de recorte anidados siempre y cuando las orientaciones de la curva se alternen correctamente. Las curvas de recorte no pueden ser intersecciones automáticas ni pueden intersecrse entre sí (o se produce un error).
Si no se proporciona información de recorte para una superficie NURBS, se dibuja toda la superficie.
Este fragmento de código define un bucle de recorte que consta de una curva lineal por partes y dos curvas NURBS:
gluBeginTrim(nobj);
gluPwlCurve(. . ., GLU_MAP1_TRIM_2);
gluNurbsCurve(. . ., GLU_MAP1_TRIM_2);
gluNurbsCurve(. . ., GLU_MAP1_TRIM_3);
gluEndTrim(nobj);
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado |
|
Biblioteca |
|
Archivo DLL |
|