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

ShaderNameName, unter dem der Shader registriert wird; übergeben Sie ihn an SetFillShader oder SetLineShader, um mit dem Mesh zu malen
PatchesArray 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
BitsPerCoordinateQuantisierungsbits für Kontrollpunktkoordinaten, zwischen 1 und 32
BitsPerComponentQuantisierungsbits je Farbkomponente, zwischen 1 und 16
BoundsX0, BoundsY0, BoundsX1, BoundsY1Dekodierrechteck, das die gepackten Kontrollpunktkoordinaten in den Schattierungskoordinatenraum abbildet

Rückgabewerte

0Das 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
1Das 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');