NewRGBCoonsPatchMesh
Schattierung, Grafik
Beschreibung
Erzeugt eine Coons-Patch-Mesh-Schattierung, PDF-Schattierungstyp 6, und registriert sie unter ShaderName in DeviceRGB-Farbe. Jeder Patch trägt zwölf Kontrollpunkte, die vier Patch-Ecken plus zwei Kontrollpunkte je Kante, in der Reihenfolge P1..P12 (Ecken bei P1, P4, P7, P10) plus je eine Farbe pro Ecke. Patches werden unabhängig ohne Kantenfreigabe ausgegeben
Syntax
Delphi
Function TPDFlib.NewRGBCoonsPatchMesh(Const ShaderName: WideString;
Const Patches: Array Of TPLMeshPatchCorners;
BitsPerCoordinate, BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;Parameter
| ShaderName | Name, unter dem der Shader registriert wird; übergeben Sie ihn an SetFillShader oder SetLineShader, um mit dem Mesh zu malen |
|---|---|
| Patches | Array aus TPLMeshPatchCorners-Datensätzen; PX/PY halten die Kontrollpunktkoordinaten in den P1..P12-Plätzen 0..11 und CR/CG/CB die vier Eckfarben im Bereich 0 bis 1 |
| BitsPerCoordinate | Quantisierungsbits für Kontrollpunktkoordinaten, zwischen 1 und 32 |
| BitsPerComponent | Quantisierungsbits je Farbkomponente, zwischen 1 und 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Dekodierrechteck, das die gepackten Kontrollpunktkoordinaten in den Schattierungskoordinatenraum abbildet |
Rückgabewerte
| 0 | Das Mesh wurde nicht erzeugt, weil kein Dokument ausgewählt ist, das Patch-Array leer ist oder ein Bits-Parameter außerhalb des gültigen Bereichs liegt |
|---|---|
| 1 | Das Mesh wurde unter ShaderName registriert |
Hinweise
Koordinaten folgen dem oben-links-Ursprungssystem der Bibliothek und werden intern übersetzt (ISO 32000-1 §8.7.4.5.7). Für Patches mit inneren Kontrollpunkten siehe NewRGBTensorPatchMesh
Beispiel
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');