Ast editor custom draw

This commit is contained in:
Michael Schimmel
2025-12-06 19:38:17 +01:00
parent 872c15ac51
commit e0ceeeb7b0
+5 -7
View File
@@ -29,8 +29,8 @@ type
private private
FRootNode: TVisualNode; FRootNode: TVisualNode;
FContentOffset: TPointF; // Verschiebung in Screen-Pixeln FContentOffset: TPointF;
FZoom: Single; // Skalierungsfaktor FZoom: Single;
FIsPanning: Boolean; FIsPanning: Boolean;
FLastMousePos: TPointF; FLastMousePos: TPointF;
@@ -62,10 +62,6 @@ type
procedure UpdateDropMarker(const WorldPos: TPointF); procedure UpdateDropMarker(const WorldPos: TPointF);
procedure StopDrag; procedure StopDrag;
// Koordinaten-Transformation
function LocalToWorld(const ALocalPoint: TPointF): TPointF;
function WorldToLocal(const AWorldPoint: TPointF): TPointF;
protected protected
procedure Paint; override; procedure Paint; override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override; procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override;
@@ -77,6 +73,9 @@ type
constructor Create(AOwner: TComponent); override; constructor Create(AOwner: TComponent); override;
destructor Destroy; override; destructor Destroy; override;
function LocalToWorld(const ALocalPoint: TPointF): TPointF;
function WorldToLocal(const AWorldPoint: TPointF): TPointF;
procedure BeginDragNode(ASource: TVisualNode); procedure BeginDragNode(ASource: TVisualNode);
procedure InvalidateConnections; procedure InvalidateConnections;
@@ -309,7 +308,6 @@ begin
if Assigned(FRootNode) then if Assigned(FRootNode) then
begin begin
// --- HIT TEST FIX ---
// HitTest expects coordinates relative to the Node's Local Origin (0,0). // HitTest expects coordinates relative to the Node's Local Origin (0,0).
// The RootNode is drawn at FRootNode.Position in World Space. // The RootNode is drawn at FRootNode.Position in World Space.
// So we transform: WorldMouse - NodePosition // So we transform: WorldMouse - NodePosition