NewRGBCoonsPatchMesh

Skuggning, Grafik

Beskrivning

Skapar en Coons-patchmesh-shading, PDF-shadingtyp 6, och registrerar den under ShaderName i DeviceRGB-färg. Varje patch bär tolv kontrollpunkter, de fyra patchhörnen plus två kontrollpunkter per kant, i ordningen P1..P12 (hörnen vid P1, P4, P7, P10) samt en färg per hörn. Patchar matas ut oberoende av varandra utan delade kanter

Syntax

Delphi

Function TPDFlib.NewRGBCoonsPatchMesh(Const ShaderName: WideString;
  Const Patches: Array Of TPLMeshPatchCorners;
  BitsPerCoordinate, BitsPerComponent: Integer;
  Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;

Parametrar

ShaderNameNamn som shadern registreras under; ange det till SetFillShader eller SetLineShader för att måla med meshen
PatchesArray av TPLMeshPatchCorners-poster; PX/PY rymmer kontrollpunktskoordinaterna i slotarna 0..11 för P1..P12 och CR/CG/CB rymmer de fyra hörnfärgerna i intervallet 0 till 1
BitsPerCoordinateKvantiseringsbitar för kontrollpunktskoordinater, mellan 1 och 32
BitsPerComponentKvantiseringsbitar per färgkomponent, mellan 1 och 16
BoundsX0, BoundsY0, BoundsX1, BoundsY1Avkodningsrektangel som avbildar de packade kontrollpunktskoordinaterna i shadingens koordinatrymd

Returvärden

0Meshen skapades inte, eftersom inget dokument är valt, patcharrayen är tom eller en bitparameter ligger utanför intervallet
1Meshen registrerades under ShaderName

Anmärkningar

Koordinater följer bibliotekets system med origo i övre vänstra hörnet och översätts internt (ISO 32000-1 §8.7.4.5.7). För patchar med inre kontrollpunkter, se NewRGBTensorPatchMesh

Exempel

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