Пример #1
0
        private bool InternalSegmentTest(Vec3 start, Vec3 end, ref Vec3 result, int num_dim)
        {
            Vec3  ray_dir  = end - start;
            float length   = num_dim > 2 ? ray_dir.Normalize() : ray_dir.Normalize2D();
            float length_2 = length * length;

            if (InternalRayTest(start, ray_dir, ref result, num_dim))
            {
                if ((num_dim > 2 ? result.DistanceSqr(start) : result.Distance2DSqr(start)) <= length_2)
                {
                    return(true);
                }

                result = end;
                return(false);
            }

            return(false);
        }