All pastes #629726 Raw Edit

Mine

public text v1 · immutable
·published 2007-07-22 16:48 UTC
rendered paste body
{*******************************************************************************
function RearrangeAOTPAByLength (TheAOTPA:array of array of tpoint; Increasing:boolean):array of array of tpoint;
By: Boreas
Description: Sorts an array of array of tpoint by length of arrays. Increasing=true
makes Result[0] have the smallest array length. Does not touch the tpoints within the arrays.
*******************************************************************************}
function RearrangeAOTPAByLength (TheAOTPA:array of array of tpoint; Increasing:boolean):array of array of tpoint;
var done:boolean;
AL,parray:integer;
ttpa:array of tpoint;
begin
  result:=TheAOTPA;
  AL:=getarraylength(result);
  if Increasing then
  begin
    repeat
      done := True;
      for pArray := 0 to (AL - 2) do
      begin
        if (getarraylength(result[pArray]) > getarraylength(result[pArray + 1])) then
        begin
          ttpa := result[pArray];
          result[pArray] := result[pArray + 1];
          result[pArray + 1] := ttpa;
          done := False;
        end;
      end;
    until (done);
  end;
  if not Increasing then
  begin
    repeat
      done := True;
      for pArray := 0 to (AL - 2) do
      begin
        if (getarraylength(result[pArray]) < getarraylength(result[pArray + 1])) then
        begin
          ttpa := result[pArray];
          result[pArray] := result[pArray + 1];
          result[pArray + 1] := ttpa;
          done := False;
        end;
      end;
    until (done);
  end;
end;