NewRGBCoonsPatchMesh
Skuggning, Grafik
Beskrivning
Skapar en Coons-patchmesh-shading, PDF-shadingtyp 6, och registrerar den under ShaderName i DeviceRGB-färg. Varje patch bär tolv kontrollpunkter, de fyra patchhörnen plus två kontrollpunkter per kant, i ordningen P1..P12 (hörnen vid P1, P4, P7, P10) samt en färg per hörn. Patchar matas ut oberoende av varandra utan delade kanter
Syntax
Delphi
Function TPDFlib.NewRGBCoonsPatchMesh(Const ShaderName: WideString;
Const Patches: Array Of TPLMeshPatchCorners;
BitsPerCoordinate, BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;Parametrar
| ShaderName | Namn som shadern registreras under; ange det till SetFillShader eller SetLineShader för att måla med meshen |
|---|---|
| Patches | Array av TPLMeshPatchCorners-poster; PX/PY rymmer kontrollpunktskoordinaterna i slotarna 0..11 för P1..P12 och CR/CG/CB rymmer de fyra hörnfärgerna i intervallet 0 till 1 |
| BitsPerCoordinate | Kvantiseringsbitar för kontrollpunktskoordinater, mellan 1 och 32 |
| BitsPerComponent | Kvantiseringsbitar per färgkomponent, mellan 1 och 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Avkodningsrektangel som avbildar de packade kontrollpunktskoordinaterna i shadingens koordinatrymd |
Returvärden
| 0 | Meshen skapades inte, eftersom inget dokument är valt, patcharrayen är tom eller en bitparameter ligger utanför intervallet |
|---|---|
| 1 | Meshen registrerades under ShaderName |
Anmärkningar
Koordinater följer bibliotekets system med origo i övre vänstra hörnet och översätts internt (ISO 32000-1 §8.7.4.5.7). För patchar med inre kontrollpunkter, se NewRGBTensorPatchMesh
Exempel
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');