NewRGBCoonsPatchMesh

Sfumature, grafica

Descrizione

Crea uno shading a mesh di patch Coons, tipo di shading PDF 6, e lo registra sotto ShaderName in colore DeviceRGB. Ogni patch porta dodici punti di controllo, i quattro angoli della patch più due punti di controllo per lato, nell'ordine P1..P12 (angoli in P1, P4, P7, P10) più un colore per angolo. Le patch vengono emesse indipendentemente, senza condivisione di lati

Sintassi

Delphi

Function TPDFlib.NewRGBCoonsPatchMesh(Const ShaderName: WideString;
  Const Patches: Array Of TPLMeshPatchCorners;
  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
PatchesArray di record TPLMeshPatchCorners; PX/PY contengono le coordinate dei punti di controllo negli slot P1..P12 0..11 e CR/CG/CB i quattro colori d'angolo nell'intervallo da 0 a 1
BitsPerCoordinateBit di quantizzazione per le coordinate dei punti di controllo, 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 punti di controllo nello spazio coordinate dello shading

Valori restituiti

0La mesh non è stata creata, perché nessun documento è selezionato, l'array di patch è vuoto 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.7). Per patch con punti di controllo interni vedere NewRGBTensorPatchMesh

Esempio

Patch:= Default(TPLMeshPatchCorners);
Patch.PX[0]:= 100;  Patch.PY[0]:= 100;   // P1 corner
Patch.PX[3]:= 300;  Patch.PY[3]:= 100;   // P4 corner
Patch.PX[6]:= 300;  Patch.PY[6]:= 250;   // P7 corner
Patch.PX[9]:= 100;  Patch.PY[9]:= 250;   // P10 corner
Patch.CR[0]:= 1; Patch.CG[0]:= 0; Patch.CB[0]:= 0;
Patch.CR[1]:= 0; Patch.CG[1]:= 0; Patch.CB[1]:= 1;
Patch.CR[2]:= 0; Patch.CG[2]:= 1; Patch.CB[2]:= 0;
Patch.CR[3]:= 1; Patch.CG[3]:= 1; Patch.CB[3]:= 0;
SetLength(Patches, 1);
Patches[0]:= Patch;
PDF.NewRGBCoonsPatchMesh('patch', Patches, 16, 8,
  100, 100, 300, 250);
PDF.SetFillShader('patch');