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
| ShaderName | Nombre bajo el que se registra el sombreador; páselo a SetFillShader o SetLineShader para pintar con la malla |
|---|---|
| Vertices | Arreglo 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 |
| VerticesPerRow | Número de vértices por fila de la retícula, al menos 2 |
| BitsPerCoordinate | Bits de cuantización para las coordenadas de los vértices, entre 1 y 32 |
| BitsPerComponent | Bits de cuantización por componente de color, entre 1 y 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Rectángulo de decodificación que mapea las coordenadas empaquetadas de los vértices al espacio de coordenadas del sombreado |
Valores devueltos
| 0 | La 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 |
|---|---|
| 1 | La 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');