Bei 100.000 Punkten kann das schon mal 10 sec. dauern. Hat jemand eine bessere Idee? Die Klasse ist eigentlich schon ziemlich optimiert, analog TList (Capacity, Move und Co.)
Delphi-Quellcode:
function TFloatPoints.IndexOf(const Value: TFloatPoint): integer;
var
I: integer;
begin
Result := -1;
for I := 0 to FCount - 1 do
if Util_SameFloatPoint(FItems[I], Value) then
begin
Result := I;
Break;
end;
end;
procedure TFloatPoints.RemoveDoubles;
var
List: TFloatPoints;
I: integer;
begin
List := TFloatPoints.Create;
try
for I := 0 to FCount - 1 do
if List.IndexOf(FItems[I]) < 0 then
List.Add(FItems[I]);
Assign(List);
finally
List.Free;
end;
end;