NewRGBCoonsPatchMesh
Sombreamento, gráficos
Descrição
Cria um sombreadura de malha de remendos Coons, tipo 6 de sombreadura PDF, e regista-a sob ShaderName em cor DeviceRGB. Cada remendo transporta doze pontos de controlo, os quatro cantos do remendo mais dois pontos de controlo por aresta, na ordem P1..P12 (cantos em P1, P4, P7, P10), mais uma cor por canto. Os remendos são emitidos de forma independente, sem partilha de arestas
Sintaxe
Delphi
Function TPDFlib.NewRGBCoonsPatchMesh(Const ShaderName: WideString;
Const Patches: Array Of TPLMeshPatchCorners;
BitsPerCoordinate, BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;Parâmetros
| ShaderName | Nome sob o qual a sombreadura é registada; passe-o a SetFillShader ou SetLineShader para pintar com a malha |
|---|---|
| Patches | Array de registos TPLMeshPatchCorners; PX/PY guardam as coordenadas dos pontos de controlo nas ranhuras 0..11 pela ordem P1..P12 e CR/CG/CB guardam as quatro cores de canto no intervalo de 0 a 1 |
| BitsPerCoordinate | Bits de quantização para as coordenadas dos pontos de controlo, entre 1 e 32 |
| BitsPerComponent | Bits de quantização por componente de cor, entre 1 e 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Retângulo de descodificação que mapeia as coordenadas empacotadas dos pontos de controlo para o espaço de coordenadas da sombreadura |
Valores de retorno
| 0 | A malha não foi criada, porque nenhum documento está selecionado, o array de remendos está vazio ou um parâmetro de bits está fora do intervalo |
|---|---|
| 1 | A 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.7). Para remendos com pontos de controlo interiores, consulte NewRGBTensorPatchMesh
Exemplo
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');