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

ShaderNameNome sob o qual o shader é registrado; passe-o a SetFillShader ou SetLineShader para pintar com a malha
VerticesMatriz 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
VerticesPerRowNúmero de vértices por linha do retículo, no mínimo 2
BitsPerCoordinateBits de quantização para as coordenadas dos vértices, entre 1 e 32
BitsPerComponentBits de quantização por componente de cor, entre 1 e 16
BoundsX0, BoundsY0, BoundsX1, BoundsY1Retângulo de decodificação que mapeia as coordenadas empacotadas dos vértices para o espaço de coordenadas do shading

Valores de retorno

0A 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
1A 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');