NewRGBTensorPatchMesh
Ombrages, graphiques
Description
Crée un ombrage en maillage de nappes tensorielles, type d’ombrage PDF 7, et l’enregistre sous ShaderName en couleur DeviceRGB. Chaque nappe porte seize points de contrôle, les quatre coins de la nappe, huit points de contrôle d’arêtes et quatre points de contrôle intérieurs, dans l’ordre P1..P16, plus une couleur par coin. Les nappes sont émises indépendamment, sans partage d’arêtes
Syntaxe
Delphi
Function TPDFlib.NewRGBTensorPatchMesh(Const ShaderName: WideString;
Const Patches: Array Of TPLMeshPatchCorners;
BitsPerCoordinate, BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;Paramètres
| ShaderName | Nom sous lequel l’ombrage est enregistré ; passez-le à SetFillShader ou SetLineShader pour peindre avec le maillage |
|---|---|
| Patches | Tableau d’enregistrements TPLMeshPatchCorners ; PX/PY contiennent les coordonnées des points de contrôle dans les emplacements 0..15 selon l’ordre P1..P16, les points de contrôle intérieurs P13..P16 dans les emplacements 12..15, et CR/CG/CB contiennent les quatre couleurs de coins dans la plage 0 à 1 |
| BitsPerCoordinate | Bits de quantification des coordonnées des points de contrôle, entre 1 et 32 |
| BitsPerComponent | Bits de quantification par composante de couleur, entre 1 et 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Rectangle de décodage qui projette les coordonnées compactées des points de contrôle dans l’espace de coordonnées de l’ombrage |
Valeurs de retour
| 0 | Le maillage n’a pas été créé, parce qu’aucun document n’est sélectionné, que le tableau de nappes est vide ou qu’un paramètre de bits est hors plage |
|---|---|
| 1 | Le 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.8). Les points de contrôle intérieurs offrent un contrôle plus fin de l’écoulement des couleurs à l’intérieur d’une nappe que les courbes frontières bicubiques de NewRGBCoonsPatchMesh
Exemple
Patch:= Default(TPLMeshPatchCorners);
Patch.PX[0]:= 100; Patch.PY[0]:= 100; // P1 corner
Patch.PX[3]:= 300; Patch.PY[3]:= 100; // P4 corner
Patch.PX[6]:= 300; Patch.PY[6]:= 250; // P7 corner
Patch.PX[9]:= 100; Patch.PY[9]:= 250; // P10 corner
// Inner control points P13..P16 in slots 12..15
Patch.PX[12]:= 166; Patch.PY[12]:= 150;
Patch.PX[13]:= 233; Patch.PY[13]:= 150;
Patch.PX[14]:= 233; Patch.PY[14]:= 200;
Patch.PX[15]:= 166; Patch.PY[15]:= 200;
Patch.CR[0]:= 1; Patch.CG[0]:= 0; Patch.CB[0]:= 0;
Patch.CR[1]:= 0; Patch.CG[1]:= 0; Patch.CB[1]:= 1;
Patch.CR[2]:= 0; Patch.CG[2]:= 1; Patch.CB[2]:= 0;
Patch.CR[3]:= 1; Patch.CG[3]:= 1; Patch.CB[3]:= 0;
SetLength(Patches, 1);
Patches[0]:= Patch;
PDF.NewRGBTensorPatchMesh('tensor', Patches, 16, 8,
100, 100, 300, 250);
PDF.SetFillShader('tensor');