Exemple #1
0
        private Vector3 GetAxisPlaneHitPoint(SceneObject obj, Ray ray)
        {
            Vector3 planeDisplacement = (obj.Transform.Position * SelectedAxis.Abs());
            float   sign = planeDisplacement.IsZero() ? 1 : Math.Sign(planeDisplacement.X + planeDisplacement.Y + planeDisplacement.Z);
            Plane   p1   = new Plane(planeDisplacement.Length, sign * SelectedAxis);

            float dist;

            if (p1.IntersectsRay(ray, out dist))
            {
                return(ray.Origin + ray.Direction.Normalized() * dist);
            }

            return(Vector3.Zero);
        }