private Node findNode(Node node, AminoPoint pt) {
   if (!node.isVisible()) return null;
   if (node.contains(pt)) return node;
   if (node instanceof Parent) {
     Parent parent = (Parent) node;
     if (parent.hasChildren()) {
       AminoPoint nc = parent.convertToChildCoords(pt);
       for (int i = parent.childCount() - 1; i >= 0; i--) {
         Node n2 = findNode(parent.getChild(i), nc);
         // u.p("Found " + n2);
         if (n2 != null) {
           return n2;
         }
       }
     }
   }
   return null;
 }