gluBeginTrim fonction)

Les fonctions gluBeginTrim et gluEndTrim délimitent une définition de boucle de découpage NURBSB-spline (NURBS) non uniforme.

Syntaxe

void WINAPI gluBeginTrim(
   GLUnurbs *nobj
);

Paramètres

nobj

Objet NURBS (créé avec gluNewNurbsRenderer).

Valeur renvoyée

Cette fonction ne retourne pas de valeur.

Notes

Utilisez gluBeginTrim pour marquer le début d’une boucle de suppression et gluEndTrim pour marquer la fin d’une boucle de suppression. Une boucle de rognage est un ensemble de segments de courbe orientés (formant une courbe fermée) qui définissent les limites d’une surface NURBS. Vous incluez ces boucles de suppression dans la définition d’une surface NURBS, entre les appels à gluBeginSurface et gluEndSurface.

La définition d’une surface NURBS peut contenir de nombreuses boucles de découpage. Par exemple, si vous écrivez une définition pour une surface NURBS qui ressemble à un rectangle avec un trou perforé, la définition contient deux boucles de découpage. Une boucle définit le bord extérieur du rectangle ; l’autre définit le trou perforé. Les définitions de chacune de ces boucles de suppression sont placées entre parenthèses par une paire gluBeginTrim / gluEndTrim .

La définition d’une boucle de rognage fermée unique peut se composer de plusieurs segments de courbe, chacun décrit comme une série de segments de ligne formant une courbe linéaire (consultez gluPwlCurve), comme une courbe NURBS unique (voir gluNurbsCurve) ou comme une combinaison des deux dans n’importe quel ordre. Les seuls appels de bibliothèque qui peuvent apparaître dans une définition de boucle de suppression (entre les appels à gluBeginTrim et GluEndTrim) sont gluPwlCurve et gluNurbsCurve.

La zone affichée de la surface NURBS correspond à la région dans le domaine située à gauche de la courbe de rognage à mesure que le paramètre Curve augmente. Par conséquent, la région conservée de la surface NURBS est à l’intérieur d’une boucle de suppression dans le sens inverse des aiguilles d’une montre. Pour le rectangle mentionné précédemment, la boucle de rognage pour le bord extérieur du rectangle s’exécute dans le sens inverse des aiguilles d’une montre, tandis que la boucle de rognage pour le trou perforé s’exécute dans le sens des aiguilles d’une montre.

Si vous utilisez plusieurs courbes pour définir une seule boucle de rognage, les segments de courbe doivent former une boucle fermée (autrement dit, le point de terminaison de chaque courbe doit être le point de départ de la courbe suivante et le point de terminaison de la courbe finale doit être le point de départ de la première courbe). Si les points de terminaison de la courbe sont suffisamment proches les uns des autres, mais ne coïncident pas exactement, ils sont forcés de correspondre. Si les points de terminaison ne sont pas suffisamment proches, une erreur se produit (consultez gluNurbsCallback).

Si une définition de boucle de rognage contient plusieurs courbes, la direction des courbes doit être cohérente (c’est-à-dire que l’intérieur doit être à gauche de toutes les courbes). Vous pouvez utiliser des boucles de découpage imbriquées tant que les orientations de courbe alternent correctement. Les courbes de rognage ne peuvent pas se croiser et ne peuvent pas se croiser les unes avec les autres (ou un résultat d’erreur).

Si aucune information de rognage n’est donnée pour une surface NURBS, la surface entière est dessinée.

Exemples

Ce fragment de code définit une boucle de rognage qui se compose d’une courbe linéaire par morceaux et de deux courbes NURBS :

gluBeginTrim(nobj); 
    gluPwlCurve(. . ., GLU_MAP1_TRIM_2); 
    gluNurbsCurve(. . ., GLU_MAP1_TRIM_2); 
    gluNurbsCurve(. . ., GLU_MAP1_TRIM_3);  
gluEndTrim(nobj);

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows 2000 Professionnel - [Applications de bureau uniquement]
Serveur minimal pris en charge
Windows 2000 Server - [Applications de bureau uniquement]
En-tête
Glu. h
Bibliothèque
Glu32. lib
DLL
Glu32.dll

Voir aussi

gluBeginSurface

gluEndSurface

gluNewNurbsRenderer

gluNurbsCallback

gluNurbsCurve

gluPwlCurve