NewRGBFreeFormTriangleMesh

Sombreamento, gráficos

Descrição

Cria uma malha de triângulos com sombreamento Gouraud de forma livre, tipo 4 de sombreadura PDF, e regista-a sob ShaderName em cor DeviceRGB. Os vértices são consumidos em grupos de três, cada grupo descrevendo um triângulo cujas cores de canto interpolam pela superfície. Cada triângulo é emitido de forma independente com uma flag de vértice inicial, pelo que não é exigida partilha 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 a sombreadura é registada; passe-o a SetFillShader ou SetLineShader para pintar com a malha
VerticesArray de registos TPLMeshVertex (X, Y, R, G, B) com componentes de cor no intervalo de 0 a 1; o comprimento tem de 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 descodificação que mapeia as coordenadas empacotadas dos vértices para o espaço de coordenadas da sombreadura

Valores de retorno

0A malha não foi criada, porque nenhum documento está selecionado, foi fornecido menos do que um triângulo completo ou um parâmetro de bits está fora do intervalo
1A malha foi registada 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 sombreaduras 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');