NewRGBCoonsPatchMesh
음영, 그래픽
설명
Coons 패치 메시 셰이딩, 즉 PDF 셰이딩 유형 6을 만들어 DeviceRGB 색상의 ShaderName으로 등록함. 각 패치는 열두 개의 제어점, 즉 패치의 네 모서리와 변마다 두 개의 제어점을 P1..P12 순서로 담고 있고(모서리는 P1, P4, P7, P10) 모서리마다 색상이 하나씩 붙음. 패치는 변을 공유하지 않고 독립적으로 출력됨
구문
Delphi
Function TPDFlib.NewRGBCoonsPatchMesh(Const ShaderName: WideString;
Const Patches: Array Of TPLMeshPatchCorners;
BitsPerCoordinate, BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;매개변수
| ShaderName | 셰이더가 등록되는 이름. 메시로 그리려면 SetFillShader 또는 SetLineShader에 전달함 |
|---|---|
| Patches | TPLMeshPatchCorners 레코드 배열. PX/PY는 P1..P12 제어점 좌표를 슬롯 0..11에 담고 CR/CG/CB는 네 모서리 색상을 0부터 1 사이 값으로 담음 |
| BitsPerCoordinate | 제어점 좌표의 양자화 비트 수. 1부터 32 사이 |
| BitsPerComponent | 색상 구성 요소별 양자화 비트 수. 1부터 16 사이 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | 묶인 제어점 좌표를 셰이딩 좌표 공간으로 매핑하는 디코드 사각형 |
반환 값
| 0 | 메시가 만들어지지 않음. 문서가 선택되지 않았거나 패치 배열이 비어 있거나 비트 매개변수가 범위를 벗어났기 때문 |
|---|---|
| 1 | 메시가 ShaderName으로 등록됨 |
비고
좌표는 라이브러리의 왼쪽 위 원점 체계를 따르며 내부에서 변환됨(ISO 32000-1 §8.7.4.5.7). 내부 제어점이 있는 패치는 NewRGBTensorPatchMesh를 참조
예제
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');