NewRGBCoonsPatchMesh

Arcering, Vectorafbeeldingen

Beschrijving

Maakt een Coons-patch-mesh-shading, PDF-shading type 6, en registreert deze onder ShaderName in DeviceRGB-kleur. Elke patch draagt twaalf controlepunten, de vier patchhoeken plus twee controlepunten per rand, in de volgorde P1..P12 (hoeken op P1, P4, P7, P10), plus één kleur per hoek. Patches worden onafhankelijk geschreven, zonder gedeelde randen

Syntaxis

Delphi

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

Parameters

ShaderNameNaam waaronder de shader wordt geregistreerd; geef haar door aan SetFillShader of SetLineShader om met de mesh te tekenen
PatchesArray van TPLMeshPatchCorners-records; PX/PY bevatten de controlepuntcoördinaten in P1..P12-slots 0..11 en CR/CG/CB bevatten de vier hoekkleuren in het bereik 0 tot 1
BitsPerCoordinateKwantisatiebits voor controlepuntcoördinaten, tussen 1 en 32
BitsPerComponentKwantisatiebits per kleurcomponent, tussen 1 en 16
BoundsX0, BoundsY0, BoundsX1, BoundsY1Decoderingsrechthoek die de verpakte controlepuntcoördinaten afbeeldt op de shading-coördinaatruimte

Retourwaarden

0De mesh is niet aangemaakt, omdat geen document is geselecteerd, de patch-array leeg is of een bits-parameter buiten het bereik valt
1De mesh is geregistreerd onder ShaderName

Opmerkingen

Coördinaten volgen het stelsel met de oorsprong linksboven van de bibliotheek en worden intern vertaald (ISO 32000-1 §8.7.4.5.7). Zie NewRGBTensorPatchMesh voor patches met binnenliggende controlepunten

Voorbeeld

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