Graph3D: функции для определения ближайших точек и объектов

procedure BeginFrameBasedAnimationTime(Draw: procedure(dt: real));
        Начинает анимацию, основанную на кадре, и передаёт в каждый обработчик кадра время dt, прошедшее с момента последней перерисовки
function DeserializeObject3D(filename: string): Object3D;
        Десериализует трёхмерный объект из файла
procedure EndFrameBasedAnimation;
        Заканчивает анимацию, основанную на кадре
function FindNearestObject(x, y: real): Object3D;
        Возвращает ближайший 3D-объект, который пересекает луч, выпущенный из камеры и проходящий через точку (x,y) экрана
function FindNearestObjectPoint(x, y: real): Point3D;
        Возвращает точку на ближайшем 3D-объекте, который пересекает луч, выпущенный из камеры и проходящий через точку (x,y) экрана. Если пересечения нет, возвращается точка BadPoint
function NearestPointOnLine(Line: Ray3D; x, y: real): Point3D;
        Возвращает ближайшую точку на линии Line с лучом, выпущенным из камеры и проходящем через точку (x,y) экрана
function ParametricTrajectory(a,b: real; N: integer; fun: real->Point3D): sequence of Point3D;
        Создаёт траекторию в виде массива точек, заданную параметрически. Функция fun отображает параметр t на координаты точки в пространстве
function PointOnPlane(Plane: Plane3D; x, y: real): Point3D;
        Возвращает точку на плоскости Plane, которую пересекает невизуальный луч, выпущенный из камеры и проходящий через точку (x,y) экрана
procedure SerializeObject3D(filename: string; obj: Object3D);
        Сериализует трёхмерный объект в файл