NewRGBCoonsPatchMesh
Skygger, grafik
Beskrivelse
Opretter en Coons patch-mesh-shading, PDF-shading type 6, og registrerer den under ShaderName i DeviceRGB-farve. Hver patch bærer tolv kontrolpunkter, de fire patchhjørner plus to kontrolpunkter pr. kant, i P1..P12-rækkefølge (hjørner ved P1, P4, P7, P10) plus én farve pr. hjørne. Patches udsendes selvstændigt uden kantdeling
Syntaks
Delphi
Function TPDFlib.NewRGBCoonsPatchMesh(Const ShaderName: WideString;
Const Patches: Array Of TPLMeshPatchCorners;
BitsPerCoordinate, BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;
Parametre
| ShaderName | Navnet, shadern registreres under; giv det videre til SetFillShader eller SetLineShader for at male med meshet |
|---|---|
| Patches | Array af TPLMeshPatchCorners-poster; PX/PY holder kontrolpunktkoordinaterne i P1..P12-pladserne 0..11, og CR/CG/CB holder de fire hjørnefarver i intervallet 0 til 1 |
| BitsPerCoordinate | Kvantiseringsbit til kontrolpunktkoordinater, mellem 1 og 32 |
| BitsPerComponent | Kvantiseringsbit pr. farvekomponent, mellem 1 og 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Dekoderingsrektangel, der afbilder de pakkede kontrolpunktkoordinater ind i shading-koordinatrummet |
Returværdier
| 0 | Meshet blev ikke oprettet, fordi intet dokument er valgt, patch-arrayet er tomt, eller en bits-parameter er uden for området |
|---|---|
| 1 | Meshet blev registreret under ShaderName |
Bemærkninger
Koordinater følger bibliotekets øverst-til-venstre-origo-system og oversættes internt (ISO 32000-1 §8.7.4.5.7). For patches med indre kontrolpunkter, se NewRGBTensorPatchMesh
Eksempel
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
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.NewRGBCoonsPatchMesh('patch', Patches, 16, 8,
100, 100, 300, 250);
PDF.SetFillShader('patch');