|
|
|
|
|
|
|
|
|
|
var result = Matrix3.I(); |
|
|
|
if (this._origin != null) { |
|
|
|
result = Matrix3.makeTrans(new Vector2((float) this._origin.dx, (float) this._origin.dy)) * |
|
|
|
result = Matrix3.makeTrans((float) this._origin.dx, (float) this._origin.dy) * |
|
|
|
result; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
result = Matrix3.makeTrans(new Vector2((float) translation.dx, (float) translation.dy)) * result; |
|
|
|
result = Matrix3.makeTrans((float) translation.dx, (float) translation.dy) * result; |
|
|
|
result = Matrix3.makeTrans(new Vector2((float) -translation.dx, (float) -translation.dy)) * |
|
|
|
result = Matrix3.makeTrans((float) -translation.dx, (float) -translation.dy) * |
|
|
|
result = Matrix3.makeTrans(new Vector2((float) -this._origin.dx, (float) -this._origin.dy)) * |
|
|
|
result = Matrix3.makeTrans((float) -this._origin.dx, (float) -this._origin.dy) * |
|
|
|
result; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
protected override bool hitTestChildren(HitTestResult result, Offset position = null) { |
|
|
|
if (this.transformHitTests) { |
|
|
|
var transform = this._effectiveTransform; |
|
|
|
if (!transform.invertable()) { |
|
|
|
var inverse = Matrix3.I(); |
|
|
|
var invertible = transform.invert(inverse); |
|
|
|
|
|
|
|
if (!invertible) { |
|
|
|
position = transform.inverse().mapPoint(position); |
|
|
|
position = inverse.mapPoint(position); |
|
|
|
} |
|
|
|
|
|
|
|
return base.hitTestChildren(result, position: position); |
|
|
|