NewRGBFreeFormTriangleMesh
Skygger, grafik
Beskrivelse
Opretter et free-form Gouraud-shadet trekantmesh, PDF-shading type 4, og registrerer det under ShaderName i DeviceRGB-farve. Vertices forbruges i grupper på tre, hvor hver gruppe beskriver én trekant, hvis hjørnefarver interpoleres hen over dens flade. Hver trekant udsendes selvstændigt med et start-vertex-flag, så kantdeling mellem trekanter er ikke påkrævet
Syntaks
Delphi
Function TPDFlib.NewRGBFreeFormTriangleMesh(Const ShaderName: WideString;
Const Vertices: Array Of TPLMeshVertex; BitsPerCoordinate,
BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;
Parametre
| ShaderName | Navnet, shadern registreres under; giv det videre til SetFillShader eller SetLineShader for at male med meshet |
|---|---|
| Vertices | Array af TPLMeshVertex-poster (X, Y, R, G, B) med farvekomponenter i intervallet 0 til 1; længden skal være mindst 3 og et multiplum af 3 |
| BitsPerCoordinate | Kvantiseringsbit til vertexkoordinater, mellem 1 og 32 |
| BitsPerComponent | Kvantiseringsbit pr. farvekomponent, mellem 1 og 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Dekoderingsrektangel, der afbilder de pakkede vertexkoordinater ind i shading-koordinatrummet |
Returværdier
| 0 | Meshet blev ikke oprettet, fordi intet dokument er valgt, der blev angivet færre end én komplet trekant, eller en bits-parameter er uden for området |
|---|---|
| 1 | Meshet blev registreret under ShaderName |
Bemærkninger
Koordinater følger bibliotekets øverst-til-venstre-origo-system og oversættes internt (ISO 32000-1 §8.7.4.5.5). For gradient-shadings uden vertexdata, se NewRGBAxialShader
Eksempel
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');