if (!this.owner) return [];
var maxNeighborDist = Math.ceil(this.getExtent().r()),
center = this.bounds().center();
return this.owner.submorphs.filter(function(m) {
if (m === this || (!m.isTriangle && !m.isSquare)) return false;
return center.dist(m.bounds().center()) < maxNeighborDist;
}, this);