| 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 |