hitTest method
ResolvedElement?
hitTest(
- DiagramPoint point, {
- double tolerance = 5,
- bool preferDescendants = true,
Implementation
ResolvedElement? hitTest(
DiagramPoint point, {
double tolerance = 5,
bool preferDescendants = true,
}) {
final ordered = spatialIndex
._query(
DiagramRect.fromCenter(
center: point,
size: DiagramSize(tolerance * 2, tolerance * 2),
),
)
.reversed;
// Attachment text is painted above ordinary element content.
for (final element in ordered) {
if (element is ResolvedConnector &&
element.labelAt(point) != null &&
_insideClippingAncestors(element, point)) {
return element;
}
}
ResolvedElement? hit;
for (final element in ordered) {
if (element.bounds.inflate(tolerance).contains(point) &&
_insideClippingAncestors(element, point) &&
element.hitTest(point, tolerance: tolerance)) {
if (!preferDescendants) return element;
if (hit == null || _isDescendantOf(element, hit.id)) hit = element;
}
}
return hit;
}