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

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

Rückgabewerte

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