diff --git a/Projects/SAMufasaGUI/testunit.pas b/Projects/SAMufasaGUI/testunit.pas index 3d0ad7d..b2f1351 100644 --- a/Projects/SAMufasaGUI/testunit.pas +++ b/Projects/SAMufasaGUI/testunit.pas @@ -46,7 +46,7 @@ uses CastaliaSimplePasPar, v_AutoCompleteForm, PSDump; const - SimbaVersion = 650; + SimbaVersion = 655; type diff --git a/Units/MMLAddon/PSInc/Wrappers/tpa.inc b/Units/MMLAddon/PSInc/Wrappers/tpa.inc index 42cffbc..9db1796 100644 --- a/Units/MMLAddon/PSInc/Wrappers/tpa.inc +++ b/Units/MMLAddon/PSInc/Wrappers/tpa.inc @@ -218,6 +218,11 @@ begin result := MergeATPA(ATPA); end; +procedure ps_AppendTPA(var TPA: TPointArray; const ToAppend: TPointArray); +begin + AppendTPA(tpa,ToAppend); +end; + function ps_TPAFromBox(const Box : TBox) : TPointArray; extdecl; begin result := TPAFromBox(box); diff --git a/Units/MMLAddon/PSInc/psexportedmethods.inc b/Units/MMLAddon/PSInc/psexportedmethods.inc index 61bc5af..58f3295 100644 --- a/Units/MMLAddon/PSInc/psexportedmethods.inc +++ b/Units/MMLAddon/PSInc/psexportedmethods.inc @@ -356,6 +356,7 @@ AddFunction(@ps_TPAtoATPAEx,'function TPAtoATPAEx(const TPA: TPointArray; w, h: AddFunction(@ps_TPAtoATPA,'function TPAtoATPA(const TPA: TPointArray; Dist: Integer): T2DPointArray;'); AddFunction(@ps_CombineIntArray,'function CombineIntArray(const Ar1, Ar2: TIntegerArray): TIntegerArray;'); AddFunction(@ps_MergeATPA,'function MergeATPA(const ATPA : T2DPointArray) : TPointArray;'); +AddFunction(@ps_AppendTPA,'procedure AppendTPA(var TPA: TPointArray; const ToAppend: TPointArray);'); AddFunction(@ps_TPAFromBox,'function TPAFromBox(const Box : TBox) : TPointArray;'); AddFunction(@ps_RotatePoints,'function RotatePoints(Const P: TPointArray; A, cx, cy: Extended): TPointArray ;'); AddFunction(@ps_FindTPAEdges,'function FindTPAEdges(const p: TPointArray): TPointArray;'); diff --git a/Units/MMLCore/tpa.pas b/Units/MMLCore/tpa.pas index 351f638..f25cce0 100644 --- a/Units/MMLCore/tpa.pas +++ b/Units/MMLCore/tpa.pas @@ -75,7 +75,8 @@ function GetSamePointsATPA(const ATPA : T2DPointArray; var Matches : TPointArray function FindGapsTPA(const TPA: TPointArray; MinPixels: Integer): T2DPointArray; procedure SortCircleWise(var tpa: TPointArray; const cx, cy, StartDegree: Integer; SortUp, ClockWise: Boolean); procedure LinearSort(var tpa: TPointArray; cx, cy, sd: Integer; SortUp: Boolean); -Function MergeATPA(const ATPA : T2DPointArray) : TPointArray; +function MergeATPA(const ATPA : T2DPointArray) : TPointArray; +procedure AppendTPA(var TPA : TPointArray; const ToAppend : TPointArray); function TPAFromBox(const Box : TBox) : TPointArray; Function RotatePoints(Const P: TPointArray; A, cx, cy: Extended): TPointArray ; Function RotatePoint(Const p: TPoint; angle, mx, my: Extended): TPoint; inline; @@ -1668,10 +1669,20 @@ begin; end; +procedure AppendTPA(var TPA: TPointArray; const ToAppend: TPointArray); +var + l,lo,i : integer; +begin + l := high(ToAppend); + lo := length(TPA); + setlength(TPA,lo + l + 1); + for i := 0 to l do + TPA[i + lo] := ToAppend[i]; +end; + {/\ Returns a TPointArray of a the full given Box. /\} - function TPAFromBox(const Box : TBox) : TPointArray; var x, y: integer;