NewRGBFreeFormTriangleMesh

Sfumature, grafica

Descrizione

Crea una mesh di triangoli in ombreggiatura Gouraud a forma libera, tipo di shading PDF 4, e la registra sotto ShaderName in colore DeviceRGB. I vertici vengono consumati in gruppi di tre, ciascuno a descrivere un triangolo i cui colori d'angolo si interpolano sulla sua superficie. Ogni triangolo viene emesso indipendentemente con un flag di vertice iniziale, quindi non è richiesta alcuna condivisione di lati tra triangoli

Sintassi

Delphi

Function TPDFlib.NewRGBFreeFormTriangleMesh(Const ShaderName: WideString;
  Const Vertices: Array Of TPLMeshVertex; BitsPerCoordinate,
  BitsPerComponent: Integer;
  Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;

Parametri

ShaderNameNome sotto cui lo shader viene registrato; passarlo a SetFillShader o SetLineShader per dipingere con la mesh
VerticesArray di record TPLMeshVertex (X, Y, R, G, B) con componenti colore nell'intervallo da 0 a 1; la lunghezza deve essere almeno 3 e multiplo di 3
BitsPerCoordinateBit di quantizzazione per le coordinate dei vertici, tra 1 e 32
BitsPerComponentBit di quantizzazione per componente colore, tra 1 e 16
BoundsX0, BoundsY0, BoundsX1, BoundsY1Rettangolo di decodifica che mappa le coordinate compresse dei vertici nello spazio coordinate dello shading

Valori restituiti

0La mesh non è stata creata, perché nessun documento è selezionato, è stato fornito meno di un triangolo completo o un parametro di bit è fuori intervallo
1La mesh è stata registrata sotto ShaderName

Osservazioni

Le coordinate seguono il sistema di origine in alto a sinistra della libreria e vengono tradotte internamente (ISO 32000-1 §8.7.4.5.5). Per shading a gradiente senza dati di vertice vedere NewRGBAxialShader

Esempio

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