Description | Hierarchy | Fields | Methods | Properties |
type TQtreeNode = class(TObject)
TQtreeNode
does the most of the real work of a TRbwQuadTree.
FNumPts: Integer; |
|
FChildren: array[TNorthOrSouth, TEastOrWest] of TQtreeNode; |
|
FParent: TQtreeNode; |
|
FPts: array of TQPoint; |
|
FTree: TRbwQuadTree; |
|
FXmax: double; |
|
FXmin: double; |
|
FYmax: double; |
|
FYmin: double; |
procedure FindNearestPoints(const CenterX, CenterY: double; const Count: Integer; const List: TObjectList); |
|
function GetPoints(Index: Integer): TQPoint; |
|
procedure ResetCount; |
|
procedure SetNumPts(const Value: Integer); |
|
procedure AddPoint(X, Y: double; Data: pointer); |
|
procedure CheckNearbyLeaves(const exclude: TQtreeNode; var best_leaf: TQtreeNode; const X, Y: double; var best_i: integer; var best_dist2, best_dist: double); |
|
procedure Clear; |
|
constructor Create(ATree: TRbwQuadTree); overload; |
|
constructor Create(const x_min, x_max, y_min, y_max: double; const ParentNode: TQtreeNode; ATree: TRbwQuadTree); overload; |
|
procedure ExpandBounds(XY: double; ExpandDirection: TExpandDirection); |
|
function FindClosestPoint(const X, Y: double): TQPoint; |
|
procedure FindClosestPointsData(var X, Y: double; var Data: TPointerArray); |
|
procedure FindPoint(var X, Y: double; var Data: pointer); |
|
procedure FindPointsInBlock(const Block: T2DBlock; const List: TList); |
|
procedure FindPointsInCircle(const CenterX, CenterY, Radius, RadiusSquared: double; const List: TList); |
|
function LocateLeaf(const X, Y: double; const Siblings: TStack): TQtreeNode; |
|
procedure NearPointInLeaf(const X, Y: double; out best_i: integer; out best_dist2: double); |
|
function RemovePoint(const X, Y: double; const Data: pointer): boolean; |
|
function Xmid: double; |
|
function Ymid: double; |
|
destructor Destroy; override; |
property NumPts: Integer read FNumPts write SetNumPts; |
|
property Points[Index:Integer]: TQPoint read GetPoints; |
FNumPts: Integer; |
|
FNumPts: Integer; |
FChildren: array[TNorthOrSouth, TEastOrWest] of TQtreeNode; |
|
|
FParent: TQtreeNode; |
|
FParent : TQtreeNode; |
FPts: array of TQPoint; |
|
longcode(#FPts: array of TQPoint;#) If NumPts <= FTree.MaxPoints, then the data in the |
FTree: TRbwQuadTree; |
|
FTree: TRbwQuadTree; |
FXmax: double; |
|
FXmax : double; |
FXmin: double; |
|
FXmin : double; |
FYmax: double; |
|
FYmax : double; |
FYmin: double; |
|
FYmin : double; |
function GetPoints(Index: Integer): TQPoint; |
|
See Points. |
procedure ResetCount; |
|
If a |
procedure SetNumPts(const Value: Integer); |
|
See NumPts. |
procedure AddPoint(X, Y: double; Data: pointer); |
|
|
procedure CheckNearbyLeaves(const exclude: TQtreeNode; var best_leaf: TQtreeNode; const X, Y: double; var best_i: integer; var best_dist2, best_dist: double); |
|
|
procedure Clear; |
|
Clear removes all the data stored by this TQtreeNode. Members of FChildren, if any, will be freed. |
constructor Create(ATree: TRbwQuadTree); overload; |
|
|
constructor Create(const x_min, x_max, y_min, y_max: double; const ParentNode: TQtreeNode; ATree: TRbwQuadTree); overload; |
|
|
procedure ExpandBounds(XY: double; ExpandDirection: TExpandDirection); |
|
|
function FindClosestPoint(const X, Y: double): TQPoint; |
|
|
procedure FindClosestPointsData(var X, Y: double; var Data: TPointerArray); |
|
|
procedure FindPoint(var X, Y: double; var Data: pointer); |
|
|
procedure FindPointsInBlock(const Block: T2DBlock; const List: TList); |
|
|
procedure FindPointsInCircle(const CenterX, CenterY, Radius, RadiusSquared: double; const List: TList); |
|
|
function LocateLeaf(const X, Y: double; const Siblings: TStack): TQtreeNode; |
|
|
function RemovePoint(const X, Y: double; const Data: pointer): boolean; |
|
|
destructor Destroy; override; |
|
|
property NumPts: Integer read FNumPts write SetNumPts; |
|
|
property Points[Index:Integer]: TQPoint read GetPoints; |
|
|