OLD | NEW |
1 part of sprites; | 1 part of sprites; |
2 | 2 |
3 abstract class NodeWithSize extends Node { | 3 abstract class NodeWithSize extends Node { |
4 Size size; | 4 Size size; |
5 Point pivot; | 5 Point pivot; |
6 | 6 |
7 NodeWithSize() { | 7 NodeWithSize() { |
8 size = Size.zero; | 8 size = Size.zero; |
9 pivot = Point.origin; | 9 pivot = Point.origin; |
10 } | 10 } |
11 | 11 |
12 NodeWithSize.withSize(Size this.size, [Point this.pivot]) { | 12 NodeWithSize.withSize(Size this.size, [Point this.pivot]) { |
13 if (pivot == null) pivot = Point.origin; | 13 if (pivot == null) pivot = Point.origin; |
14 } | 14 } |
15 | 15 |
16 void applyTransformForPivot(PictureRecorder canvas) { | 16 void applyTransformForPivot(PictureRecorder canvas) { |
17 if (pivot.x != 0 || pivot.y != 0) { | 17 if (pivot.x != 0 || pivot.y != 0) { |
18 double pivotInPointsX = size.width * pivot.x; | 18 double pivotInPointsX = size.width * pivot.x; |
19 double pivotInPointsY = size.height * pivot.y; | 19 double pivotInPointsY = size.height * pivot.y; |
20 canvas.translate(-pivotInPointsX, -pivotInPointsY); | 20 canvas.translate(-pivotInPointsX, -pivotInPointsY); |
21 } | 21 } |
22 } | 22 } |
23 | 23 |
24 bool hitTest (Point nodePoint) { | 24 bool isPointInside (Point nodePoint) { |
25 | 25 |
26 double minX = -size.width * pivot.x; | 26 double minX = -size.width * pivot.x; |
27 double minY = -size.height * pivot.y; | 27 double minY = -size.height * pivot.y; |
28 double maxX = minX + size.width; | 28 double maxX = minX + size.width; |
29 double maxY = minY + size.height; | 29 double maxY = minY + size.height; |
30 return (nodePoint.x >= minX && nodePoint.x < maxX && | 30 return (nodePoint.x >= minX && nodePoint.x < maxX && |
31 nodePoint.y >= minY && nodePoint.y < maxY); | 31 nodePoint.y >= minY && nodePoint.y < maxY); |
32 } | 32 } |
33 } | 33 } |
OLD | NEW |