NewRGBFreeFormTriangleMesh

Sombreado, Gráficos

Descripción

Crea una malla de triángulos sombreados al estilo Gouraud de forma libre, tipo 4 de sombreado PDF, y la registra bajo ShaderName en color DeviceRGB. Los vértices se consumen en grupos de tres; cada grupo describe un triángulo cuyos colores de esquina se interpolan a lo largo de su superficie. Cada triángulo se emite de forma independiente con un indicador de vértice inicial, de modo que no hace falta compartir aristas entre triángulos

Sintaxis

Delphi

Function TPDFlib.NewRGBFreeFormTriangleMesh(Const ShaderName: WideString;
  Const Vertices: Array Of TPLMeshVertex; 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
VerticesMatriz de registros TPLMeshVertex (X, Y, R, G, B) con componentes de color en el intervalo de 0 a 1; la longitud debe ser al menos 3 y un múltiplo de 3
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 descodificación que asigna 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, se suministró menos de un triángulo completo o un parámetro de bits está fuera de rango
1La malla quedó registrada bajo ShaderName

Comentarios

Las coordenadas siguen el sistema de origen arriba a la izquierda de la biblioteca y se traducen internamente (ISO 32000-1 §8.7.4.5.5). Para sombreados de degradado sin datos de vértices, véase NewRGBAxialShader

Ejemplo

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