def intersectingPoint(self, p):
<EOL>if p == self.data.mid:<EOL><INDENT>return self.data.ends<EOL><DEDENT>if p > self.data.mid:<EOL><INDENT>endAfterP = [r for r in self.data.ends<EOL>if (r.end >= p and not self.openEnded) or<EOL>(r.end > p and self.openEnded)]<EOL>if self.right is not None:<EOL><INDENT>endAfterP.extend(self.right.intersectingPoint(p))<EOL><DEDENT>return endAfterP<EOL><DEDENT>if p < self.data.mid:<EOL><INDENT>startBeforeP = [r for r in self.data.starts if r.start <= p]<EOL>if self.left is not None:<EOL><INDENT>startBeforeP.extend(self.left.intersectingPoint(p))<EOL><DEDENT>return startBeforeP<EOL><DEDENT>
given a point, get intervals in the tree that are intersected.

:param p: intersection point
:return: the list of intersected intervals