NewRGBLatticeTriangleMesh

Sombreado, Gráficos vectoriales

Descripción

Crea una malla de triángulos en forma de retícula sombreada por Gouraud, tipo de sombreado 5 de PDF, y la registra bajo ShaderName en color DeviceRGB. Los vértices se emiten fila por fila con VerticesPerRow entradas por fila, la retícula se triangulariza en el lector conforme, y el flujo de vértices no lleva banderas de arista

Sintaxis

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

ShaderNameNombre bajo el que se registra el sombreador; páselo a SetFillShader o SetLineShader para pintar con la malla
VerticesArreglo de registros TPLMeshVertex (X, Y, R, G, B) con componentes de color en el rango de 0 a 1, ordenados fila por fila; la longitud debe ser un múltiplo exacto de VerticesPerRow y contener al menos dos filas
VerticesPerRowNúmero de vértices por fila de la retícula, al menos 2
BitsPerCoordinateBits de cuantización para las coordenadas de los vértices, entre 1 y 32
BitsPerComponentBits de cuantización por componente de color, entre 1 y 16
BoundsX0, BoundsY0, BoundsX1, BoundsY1Rectángulo de decodificación que mapea las coordenadas empaquetadas de los vértices al espacio de coordenadas del sombreado

Valores devueltos

0La malla no se creó, porque no hay documento seleccionado, VerticesPerRow es menor que 2, el conteo de vértices no es múltiplo de VerticesPerRow o contiene menos de dos filas, o un parámetro de bits está fuera de rango
1La malla quedó registrada bajo ShaderName

Comentarios

Las coordenadas siguen el sistema de la biblioteca con origen en la esquina superior izquierda y se traducen internamente (ISO 32000-1 §8.7.4.5.6). Una retícula necesita menos vértices que NewRGBFreeFormTriangleMesh para campos de color alineados a cuadrícula, porque los vértices compartidos se declaran una sola vez

Ejemplo

// 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');