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
| ShaderName | Název, pod kterým je shader registrován; předejte ho funkcím SetFillShader nebo SetLineShader, chcete-li kreslit pomocí mesh |
|---|---|
| Vertices | Pole 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 |
| BitsPerCoordinate | Kvantizační bity pro souřadnice vrcholů, v rozsahu 1 až 32 |
| BitsPerComponent | Kvantizační bity na barevnou složku, v rozsahu 1 až 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Dekódovací obdélník, který mapuje zabaleny souřadnice vrcholů do souřadného prostu stínování |
Návratové hodnoty
| 0 | Mesh 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 |
|---|---|
| 1 | Mesh 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');