NewRGBLatticeTriangleMesh

Sfumature, grafica

Descrizione

Crea una mesh di triangoli in ombreggiatura Gouraud a reticolo, tipo di shading PDF 5, e la registra sotto ShaderName in colore DeviceRGB. I vertici vengono emessi riga per riga con VerticesPerRow voci per riga, il reticolo viene triangolato dal lettore conforme e lo stream di vertici non porta flag di lato

Sintassi

Delphi

Function TPDFlib.NewRGBLatticeTriangleMesh(Const ShaderName: WideString;
  Const Vertices: Array Of TPLMeshVertex; VerticesPerRow: Integer;
  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, ordinati riga per riga; la lunghezza deve essere un multiplo esatto di VerticesPerRow e contenere almeno due righe
VerticesPerRowNumero di vertici per riga del reticolo, almeno 2
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, VerticesPerRow è sotto 2, il conteggio dei vertici non è un multiplo di VerticesPerRow o contiene meno di due righe, oppure 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.6). Un reticolo richiede meno vertici di NewRGBFreeFormTriangleMesh per campi di colore allineati alla griglia, perché i vertici condivisi vengono dichiarati una sola volta

Esempio

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