NewRGBFreeFormTriangleMesh

Ombrages, graphiques

Description

Crée un maillage de triangles libres ombré par la méthode de Gouraud, type d’ombrage PDF 4, et l’enregistre sous ShaderName en couleur DeviceRGB. Les sommets sont consommés par groupes de trois, chaque groupe décrivant un triangle dont les couleurs de coins s’interpolent sur sa surface. Chaque triangle est émis indépendamment avec un indicateur de sommet de départ, si bien qu’aucun partage d’arêtes entre triangles n’est requis

Syntaxe

Delphi

Function TPDFlib.NewRGBFreeFormTriangleMesh(Const ShaderName: WideString;
  Const Vertices: Array Of TPLMeshVertex; BitsPerCoordinate,
  BitsPerComponent: Integer;
  Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;

Paramètres

ShaderNameNom sous lequel l’ombrage est enregistré ; passez-le à SetFillShader ou SetLineShader pour peindre avec le maillage
VerticesTableau d’enregistrements TPLMeshVertex (X, Y, R, G, B) avec des composantes de couleur dans la plage 0 à 1 ; la longueur doit être d’au moins 3 et un multiple de 3
BitsPerCoordinateBits de quantification des coordonnées des sommets, entre 1 et 32
BitsPerComponentBits de quantification par composante de couleur, entre 1 et 16
BoundsX0, BoundsY0, BoundsX1, BoundsY1Rectangle de décodage qui projette les coordonnées compactées des sommets dans l’espace de coordonnées de l’ombrage

Valeurs de retour

0Le maillage n’a pas été créé, parce qu’aucun document n’est sélectionné, que moins d’un triangle complet a été fourni ou qu’un paramètre de bits est hors plage
1Le maillage a été enregistré sous ShaderName

Remarques

Les coordonnées suivent le système à origine en haut à gauche de la bibliothèque et sont traduites en interne (ISO 32000-1 §8.7.4.5.5). Pour des ombrages en dégradé sans données de sommets, voir NewRGBAxialShader

Exemple

SetLength(Vertices, 3);
Vertices[0].X:= 100; Vertices[0].Y:= 100;
Vertices[0].R:= 1; Vertices[0].G:= 0; Vertices[0].B:= 0;
Vertices[1].X:= 400; Vertices[1].Y:= 100;
Vertices[1].R:= 0; Vertices[1].G:= 1; Vertices[1].B:= 0;
Vertices[2].X:= 250; Vertices[2].Y:= 350;
Vertices[2].R:= 0; Vertices[2].G:= 0; Vertices[2].B:= 1;
PDF.NewRGBFreeFormTriangleMesh('tri', Vertices, 16, 8,
  100, 100, 400, 350);
PDF.SetFillShader('tri');