NewRGBLatticeTriangleMesh

Ombrages, graphiques

Description

Crée un maillage de triangles en treillis ombré par la méthode de Gouraud, type d’ombrage PDF 5, et l’enregistre sous ShaderName en couleur DeviceRGB. Les sommets sont émis ligne par ligne avec VerticesPerRow entrées par ligne, le treillis est triangulé par le lecteur conforme et le flux de sommets ne porte aucun indicateur d’arête

Syntaxe

Delphi

Function TPDFlib.NewRGBLatticeTriangleMesh(Const ShaderName: WideString;
  Const Vertices: Array Of TPLMeshVertex; VerticesPerRow: Integer;
  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, ordonnés ligne par ligne ; la longueur doit être un multiple exact de VerticesPerRow et contenir au moins deux lignes
VerticesPerRowNombre de sommets par ligne de treillis, au moins 2
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 VerticesPerRow est inférieur à 2, que le nombre de sommets n’est pas un multiple de VerticesPerRow ou contient moins de deux lignes, 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.6). Un treillis exige moins de sommets que NewRGBFreeFormTriangleMesh pour des champs de couleur alignés sur une grille, car les sommets partagés ne sont énoncés qu’une fois

Exemple

// 3 columns x 2 rows of color samples
SetLength(Vertices, 6);
for I:= 0 to High(Vertices) do
Begin
  Vertices[I].X:= 100+ (I mod 3)* 150;
  Vertices[I].Y:= 100+ (I div 3)* 150;
  Vertices[I].R:= I/ 5; Vertices[I].G:= 0.5; Vertices[I].B:= 1- I/ 5;
End;
PDF.NewRGBLatticeTriangleMesh('grid', Vertices, 3, 16, 8,
  100, 100, 400, 250);
PDF.SetFillShader('grid');