anchor.diff:    Parent := (Child + 4) and 7;
     Item := @Buffer[0];
   
  -  for Simple := False to True do
     for Hexagonal := False to True do
     for OddY := False to True do
     begin
  -    if (Simple) then
  -    begin
  -      case Child of
  -        1: AddParentMask(_5);
  -        3: AddParentMask(_7);
  -        5: AddParentMask(_1);
  -        7: AddParentMask(_3);
  -      else
  -        AddParentMask($FF);
  -      end;
  -    end else
       if (not Hexagonal) then
       begin
         case Child of
           0: AddParentMask(_3 or _4 or _5);
  -        1: AddParentMask(_3 or _4 or _5 or _6 or _7);
  +        1: AddParentMask(_4 or _5 or _6);
           2: AddParentMask(_5 or _6 or _7);
  -        3: AddParentMask(_5 or _6 or _7 or _0 or _1);
  +        3: AddParentMask(_6 or _7 or _0);
           4: AddParentMask(_7 or _0 or _1);
  -        5: AddParentMask(_0 or _1 or _2 or _3 or _7);
  +        5: AddParentMask(_0 or _1 or _2);
           6: AddParentMask(_1 or _2 or _3);
  -        7: AddParentMask(_1 or _2 or _3 or _4 or _5);
  +        7: AddParentMask(_2 or _3 or _4);
         end;
       end else
       if (not OddY) then
  
positive.code:     $70, $70, $70, $70, $F0, $F0, $F0, $F0, $70, $70, $70, $70, $F0, $F0, $F0, $F0
    );
  
    PARENT_BITS: array[0..63{oddy:1;hexagonal:1;simple:1;child:3}] of NativeUInt = (
      $00C70004, $00C70004, $00C70004, $00000004, $00000004, $00000004, $00000004, $00000004,
      $00070005, $00070005, $004F0005, $00970005, $00DF0005, $00DF0005, $00DF0005, $00DF0005,
      $001F0006, $001F0006, $00000006, $001F0006, $00000006, $00000006, $00000006, $00000006,
      $001C0007, $001C0007, $003E0007, $005D0007, $007F0007, $007F0007, $007F0007, $007F0007,
      $007C0000, $007C0000, $00000000, $007C0000, $00000000, $00000000, $00000000, $00000000,
      $00700001, $00700001, $00790001, $00F40001, $00FD0001, $00FD0001, $00FD0001, $00FD0001,
      $00F10002, $00F10002, $00F10002, $00000002, $00000002, $00000002, $00000002, $00000002,
      $00C10003, $00C10003, $00D50003, $00E30003, $00F70003, $00F70003, $00F70003, $00F70003
    );
  
    ROUNDED_MASKS: array[Byte] of Byte = (
  
negative.code: procedure AddParentBits(Child: Integer; Finalize: Boolean);
  var
    Parent: Integer;
    Buffer: array[0..3] of Cardinal;
    Hexagonal, OddY: Boolean;
    Item: PCardinal;
    S: string;
  
  