GraphView: Fix dragging the nodes

This was much simpler than expected.
This commit is contained in:
Vishesh Handa
2020-09-28 00:38:57 +02:00
parent 4d586d85ae
commit dc4e18156c

View File

@ -42,6 +42,7 @@ class GraphView extends StatefulWidget {
class _GraphViewState extends State<GraphView> { class _GraphViewState extends State<GraphView> {
final nodeSize = 50.0; final nodeSize = 50.0;
fork.TransformationController transformationController;
@override @override
void initState() { void initState() {
@ -50,13 +51,18 @@ class _GraphViewState extends State<GraphView> {
widget.graph.addListener(() { widget.graph.addListener(() {
setState(() {}); setState(() {});
}); });
transformationController = fork.TransformationController();
} }
Offset _getLocationPosition(Offset globalPos) { Offset _getLocationPosition(Offset globalPos) {
RenderBox graphViewRenderBox = context.findRenderObject(); RenderBox graphViewRenderBox = context.findRenderObject();
assert(graphViewRenderBox != null); assert(graphViewRenderBox != null);
return graphViewRenderBox.globalToLocal(globalPos); var pos = graphViewRenderBox.globalToLocal(globalPos);
var matrix = transformationController.value;
return MatrixUtils.transformPoint(Matrix4.inverted(matrix), pos);
} }
@override @override
@ -127,6 +133,7 @@ class _GraphViewState extends State<GraphView> {
panEnabled: true, panEnabled: true,
constrained: false, constrained: false,
minScale: 0.1, minScale: 0.1,
transformationController: transformationController,
); );
} }
} }