function getLayerByPoint(x, y) {
  const layers = this.layers;
  // search by active pixel
  for (let ii = 0; ii < layers.length; ++ii) {
    const layer = layers[ii];
    const xx = x - layer.x;
    const yy = y - layer.y;
    if (layer.locked) continue;
    if (layer.bounds.isPointInside(xx, yy)) {
      if (layer.getPixelAt(x, y)) {
        return (layer);
      }
    }
  };
  // active pixel search failed
  // so now search by point inside
  for (let ii = 0; ii < layers.length; ++ii) {
    const idx = layers.length - 1 - ii;
    const layer = layers[ii];
    const xx = x - layer.x;
    const yy = y - layer.y;
    if (layer.locked) continue;
    if (layer.bounds.isPointInside(xx, yy)) {
      return (layer);
    }
  };
  return (null);
}
@param {Number} x
@param {Number} y
@return {Layer}