RetainedUtil class
class RetainedUtil { static List<PElement> hitTest(Stage stage, Coordinate point){ return _hitTest(stage.rootElement, point); } static List<PElement> _hitTest(PElement element, Coordinate point){ point = transformPointGlobalToLocal(element, point); final bounds = new Box(0, 0, element.width, element.height); var hits = new List<PElement>(); if (bounds.contains(point)) { if(element is ParentElement) { final ParentElement p = element; var length = p.visualChildCount; for (var i = 0; i < length; i++) { var e = p.getVisualChild(length - 1 - i); hits = _hitTest(e, point); if (hits.length > 0) { break; } } } hits.add(element); } return hits; } static Coordinate transformPointLocalToGlobal(PElement element, Coordinate point) { var tx = element.getTransformToRoot(); return tx.transformCoordinate(point); } static Coordinate transformPointGlobalToLocal(PElement element, Coordinate point) { var tx = element.getTransform(); return tx.createInverse().transformCoordinate(point); } static List<Coordinate> getCorners(PElement element) { final rect = new Box(0,0,element.width, element.height); final points = rect.getCorners(); return $(points).map((p) { return transformPointLocalToGlobal(element, p); }).toList(); } }
Static Methods
List<PElement> hitTest(Stage stage, Coordinate point) #
static List<PElement> hitTest(Stage stage, Coordinate point){ return _hitTest(stage.rootElement, point); }
Coordinate transformPointLocalToGlobal(PElement element, Coordinate point) #
static Coordinate transformPointLocalToGlobal(PElement element, Coordinate point) { var tx = element.getTransformToRoot(); return tx.transformCoordinate(point); }
Coordinate transformPointGlobalToLocal(PElement element, Coordinate point) #
static Coordinate transformPointGlobalToLocal(PElement element, Coordinate point) { var tx = element.getTransform(); return tx.createInverse().transformCoordinate(point); }
List<Coordinate> getCorners(PElement element) #
static List<Coordinate> getCorners(PElement element) { final rect = new Box(0,0,element.width, element.height); final points = rect.getCorners(); return $(points).map((p) { return transformPointLocalToGlobal(element, p); }).toList(); }
Properties
final Type runtimeType #
A representation of the runtime type of the object.
external Type get runtimeType;
Operators
bool operator ==(other) #
The equality operator.
The default behavior for all Object
s is to return true if and
only if this
and
other are the same object.
If a subclass overrides the equality operator it should override
the hashCode
method as well to maintain consistency.
bool operator ==(other) => identical(this, other);
Methods
int hashCode() #
Get a hash code for this object.
All objects have hash codes. Hash codes are guaranteed to be the
same for objects that are equal when compared using the equality
operator ==
. Other than that there are no guarantees about
the hash codes. They will not be consistent between runs and
there are no distribution guarantees.
If a subclass overrides hashCode
it should override the
equality operator as well to maintain consistency.
external int hashCode();
noSuchMethod(String name, List args) #
noSuchMethod
is invoked when users invoke a non-existant method
on an object. The name of the method and the arguments of the
invocation are passed to noSuchMethod
. If noSuchMethod
returns a value, that value becomes the result of the original
invocation.
The default behavior of noSuchMethod
is to throw a
noSuchMethodError
.
external Dynamic noSuchMethod(String name, List args);
const Object() #
Creates a new Object
instance.
Object
instances have no meaningful state, and are only useful
through their identity. An Object
instance is equal to itself
only.
const Object();
String toString() #
Returns a string representation of this object.
external String toString();