Janilabo

ClearDoubleTPA

Oct 13th, 2013
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 0.52 KB | None | 0 0
  1. procedure ClearDoubleTPA(var TPA: TPointArray);
  2. var
  3.   v, h, r: Integer;
  4.   B: array of TBoolArray;
  5.   bx: TBox;
  6. begin;
  7.   h := High(TPA);
  8.   if (h > 0) then
  9.   begin
  10.     r := 0;
  11.     bx := GetTPABounds(TPA);
  12.     SetLength(B, ((bx.X2 - bx.X1) + 1), ((bx.Y2 - bx.Y1) + 1));
  13.     for v := 0 to h do
  14.       if not B[(TPA[v].X - bx.X1)][(TPA[v].Y - bx.Y1)] then
  15.       begin
  16.         B[(TPA[v].X - bx.X1)][(TPA[v].Y - bx.Y1)] := True;
  17.         TPA[r] := TPA[v];
  18.         Inc(r);
  19.       end;
  20.     SetLength(TPA, r);
  21.   end;
  22. end;
Advertisement
Add Comment
Please, Sign In to add comment