NewRGBLatticeTriangleMesh
Schattierung, Grafik
Beschreibung
Erzeugt ein gitterförmiges Gouraud-schattiertes Dreiecksmesh, PDF-Schattierungstyp 5, und registriert es unter ShaderName in DeviceRGB-Farbe. Eckpunkte werden Zeile um Zeile mit VerticesPerRow Einträgen je Zeile ausgegeben, das Gitter wird vom konformen Reader trianguliert, und der Eckpunkt-Stream trägt keine Kanten-Flags
Syntax
Delphi
Function TPDFlib.NewRGBLatticeTriangleMesh(Const ShaderName: WideString;
Const Vertices: Array Of TPLMeshVertex; VerticesPerRow: Integer;
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 |
|---|---|
| Vertices | Array aus TPLMeshVertex-Datensätzen (X, Y, R, G, B) mit Farbkomponenten im Bereich 0 bis 1, zeilenweise geordnet; die Länge muss ein genaues Vielfaches von VerticesPerRow sein und mindestens zwei Zeilen umfassen |
| VerticesPerRow | Anzahl der Eckpunkte je Gitterzeile, mindestens 2 |
| BitsPerCoordinate | Quantisierungsbits für Eckpunktkoordinaten, zwischen 1 und 32 |
| BitsPerComponent | Quantisierungsbits je Farbkomponente, zwischen 1 und 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Dekodierrechteck, das die gepackten Eckpunktkoordinaten in den Schattierungskoordinatenraum abbildet |
Rückgabewerte
| 0 | Das Mesh wurde nicht erzeugt, weil kein Dokument ausgewählt ist, VerticesPerRow unter 2 liegt, die Eckpunktanzahl kein Vielfaches von VerticesPerRow ist oder weniger als zwei Zeilen umfasst 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.6). Ein Gitter braucht für rasterausgerichtete Farbfelder weniger Eckpunkte als NewRGBFreeFormTriangleMesh, weil gemeinsame Eckpunkte nur einmal angegeben werden
Beispiel
// 3 columns x 2 rows of color samples
SetLength(Vertices, 6);
for I:= 0 to High(Vertices) do
Begin
Vertices[I].X:= 100+ (I mod 3)* 150;
Vertices[I].Y:= 100+ (I div 3)* 150;
Vertices[I].R:= I/ 5; Vertices[I].G:= 0.5; Vertices[I].B:= 1- I/ 5;
End;
PDF.NewRGBLatticeTriangleMesh('grid', Vertices, 3, 16, 8,
100, 100, 400, 250);
PDF.SetFillShader('grid');