def insert(tree: Tree, edge: Edge, ray: Ray): assert_edge(ray, edge) node = Node(edge, ray.intersect_dist(edge)) tree.insert(node, ray)