def METHOD_NAME(self):
    from itertools import chain
    if not self._bundle:
        return False
    points = []
    lines = []  # data structure for PyVista
    depths = []  # track depth at each point in the track segments
    def add_ray_segment(depth, bounce):
        def add_ray_helper(depth, next_bounce):
            lines.append([len(points) + i for i in range(2)])
            depths.extend([depth, depth])
            points.extend([bounce.hit_pt, next_bounce.hit_pt])
            add_ray_segment(depth + 1, next_bounce)
        # add more segments to the ray track rendering data
        if bounce.refl_bounce:
            add_ray_helper(depth, bounce.refl_bounce)
        if bounce.trans_bounce:
            add_ray_helper(depth, bounce.trans_bounce)
    for track in self._bundle.ray_tracks:
        if track.track_type == "UTD":
            new_track_seg = [track.source_point, track.utd_point, track.first_bounce.hit_pt]
        else:
            new_track_seg = [track.source_point, track.first_bounce.hit_pt]
        lines.append([len(points) + i for i in range(len(new_track_seg))])
        depths.extend([1 for i in range(len(new_track_seg))])
        points.extend(new_track_seg)
        add_ray_segment(2, track.first_bounce)
    lines = [[len(l), *l] for l in lines]
    lines = [len(lines), *(chain.from_iterable(lines))]
    return points, lines, depths