NewRGBLatticeTriangleMesh
Sombreamento, Gráficos
Descrição
Cria uma malha de triângulos com sombreamento Gouraud em forma de retículo, tipo de shading 5 do PDF, e a registra sob ShaderName na cor DeviceRGB. Os vértices são emitidos linha por linha, com VerticesPerRow entradas por linha, o retículo é triangulado pelo leitor conforme, e o fluxo de vértices não carrega sinalizadores de aresta
Sintaxe
Delphi
Function TPDFlib.NewRGBLatticeTriangleMesh(Const ShaderName: WideString;
Const Vertices: Array Of TPLMeshVertex; VerticesPerRow: Integer;
BitsPerCoordinate, BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;Parâmetros
| ShaderName | Nome sob o qual o shader é registrado; passe-o a SetFillShader ou SetLineShader para pintar com a malha |
|---|---|
| Vertices | Matriz de registros TPLMeshVertex (X, Y, R, G, B), com componentes de cor no intervalo de 0 a 1, ordenados linha por linha; o comprimento deve ser múltiplo exato de VerticesPerRow e conter pelo menos duas linhas |
| VerticesPerRow | Número de vértices por linha do retículo, no mínimo 2 |
| BitsPerCoordinate | Bits de quantização para as coordenadas dos vértices, entre 1 e 32 |
| BitsPerComponent | Bits de quantização por componente de cor, entre 1 e 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Retângulo de decodificação que mapeia as coordenadas empacotadas dos vértices para o espaço de coordenadas do shading |
Valores de retorno
| 0 | A malha não foi criada, porque nenhum documento está selecionado, VerticesPerRow é menor que 2, a contagem de vértices não é múltipla de VerticesPerRow ou contém menos de duas linhas, ou um parâmetro de bits está fora do intervalo |
|---|---|
| 1 | A malha foi registrada sob ShaderName |
Observações
As coordenadas seguem o sistema de origem no canto superior esquerdo da biblioteca e são traduzidas internamente (ISO 32000-1 §8.7.4.5.6). Um retículo precisa de menos vértices que NewRGBFreeFormTriangleMesh para campos de cor alinhados à grade, porque os vértices compartilhados são declarados uma única vez
Exemplo
// 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');