示例#1
0
        //************************************************************************************************
        //
        //************************************************************************************************

        static public bool Intersect(Ray ray, float range, CORE.Plane plane, ref float t)
        {
            Vector3 prj = ray.direction * range;

            float prjD = Vector3.Dot(prj, plane.n); if (prjD >= 0.0f)
            {
                return(false);
            }

            Vector3 sep = plane.p - ray.origin;

            float sepD = Vector3.Dot(sep, plane.n); if (sepD < prjD)

            {
                return(false);
            }

            t = sepD / prjD;

            return(true);
        }