NewRGBFreeFormTriangleMesh

Stínování, grafika

Popis

Vytváří volnou Gouraud-stínovanou trojúhelníkovou mesh, PDF shading type 4, a registruje ji pod ShaderName v barvě DeviceRGB. Vrcholy se konzumují ve skupinách po třech, každá skupina popisuje jednu trojúhelník, jejíž rohové barvy se interpolují po jejím povrchu. Každá trojúhelník se vysílá nezávisle s příznakem počátečního vrcholu, takže sdílení hran mezi trojúhelníky není vyžadováno

Syntaxe

Delphi

Function TPDFlib.NewRGBFreeFormTriangleMesh(Const ShaderName: WideString;
  Const Vertices: Array Of TPLMeshVertex; BitsPerCoordinate,
  BitsPerComponent: Integer;
  Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;

Parametry

ShaderNameNázev, pod kterým je shader registrován; předejte ho funkcím SetFillShader nebo SetLineShader, chcete-li kreslit pomocí mesh
VerticesPole záznamů TPLMeshVertex (X, Y, R, G, B) s barevnými složkami v rozsahu 0 až 1; délka musí být alespoň 3 a násobek 3
BitsPerCoordinateKvantizační bity pro souřadnice vrcholů, v rozsahu 1 až 32
BitsPerComponentKvantizační bity na barevnou složku, v rozsahu 1 až 16
BoundsX0, BoundsY0, BoundsX1, BoundsY1Dekódovací obdélník, který mapuje zabaleny souřadnice vrcholů do souřadného prostu stínování

Návratové hodnoty

0Mesh nebyl vytvořen, protože není vybrán žádný dokument, dodalo se méně než jedna kompletní trojúhelník, nebo parametr bits je mimo rozsah
1Mesh byl zaregistrován pod názvem ShaderName

Poznámky

Souřadnice sledují systém knihovny s původem vlevo nahoře a interně se překládají (ISO 32000-1 §8.7.4.5.5). Gradientní stínování bez dat vrcholů viz NewRGBAxialShader

Příklad

SetLength(Vertices, 3);
Vertices[0].X:= 100; Vertices[0].Y:= 100;
Vertices[0].R:= 1; Vertices[0].G:= 0; Vertices[0].B:= 0;
Vertices[1].X:= 400; Vertices[1].Y:= 100;
Vertices[1].R:= 0; Vertices[1].G:= 1; Vertices[1].B:= 0;
Vertices[2].X:= 250; Vertices[2].Y:= 350;
Vertices[2].R:= 0; Vertices[2].G:= 0; Vertices[2].B:= 1;
PDF.NewRGBFreeFormTriangleMesh('tri', Vertices, 16, 8,
  100, 100, 400, 350);
PDF.SetFillShader('tri');