NewRGBFreeFormTriangleMesh

Sombreamento, Gráficos

Descrição

Cria uma malha de triângulos com sombreamento Gouraud de forma livre, tipo de shading 4 do PDF, e a registra sob ShaderName na cor DeviceRGB. Os vértices são consumidos em grupos de três, cada grupo descrevendo um triângulo cujas cores de canto se interpolam pela superfície. Cada triângulo é emitido de forma independente com um sinalizador de vértice inicial, portanto não é exigido compartilhamento de arestas entre triângulos

Sintaxe

Delphi

Function TPDFlib.NewRGBFreeFormTriangleMesh(Const ShaderName: WideString;
  Const Vertices: Array Of TPLMeshVertex; 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; o comprimento deve ser pelo menos 3 e múltiplo de 3
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, foi fornecido menos de um triângulo completo 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.5). Para sombreamentos de gradiente sem dados de vértices, consulte NewRGBAxialShader

Exemplo

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