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
| ShaderName | Nome sotto cui lo shader viene registrato; passarlo a SetFillShader o SetLineShader per dipingere con la mesh |
|---|---|
| Patches | Array 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 |
| BitsPerCoordinate | Bit di quantizzazione per le coordinate dei punti di controllo, tra 1 e 32 |
| BitsPerComponent | Bit di quantizzazione per componente colore, tra 1 e 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Rettangolo di decodifica che mappa le coordinate compresse dei punti di controllo nello spazio coordinate dello shading |
Valori restituiti
| 0 | La mesh non è stata creata, perché nessun documento è selezionato, l'array di patch è vuoto o un parametro di bit è fuori intervallo |
|---|---|
| 1 | La 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');