AutoStereogramDemo.AutoStereogramBuilder.GetPlaneRayIntersection C# (CSharp) Метод

GetPlaneRayIntersection() приватный Метод

private GetPlaneRayIntersection ( int xProj, int yProj, double eyeXPos, double a, double b, double c, double d, double &x, double &z, CheckPoint checkPoint ) : bool
xProj int
yProj int
eyeXPos double
a double
b double
c double
d double
x double
z double
checkPoint CheckPoint
Результат bool
        private bool GetPlaneRayIntersection(int xProj, int yProj, double eyeXPos, double a, double b, double c, double d, out double x, out double z, CheckPoint checkPoint)
        {
            x = z = 0;

            double dx = xProj * PixelWidthInternal - eyeXPos;
            double dy = yProj * PixelHeight - eyeYPos;
            double dz = DistanceToEyes;

            double t;
            if (!MathHelper.Divide(-(a * eyeXPos + b * eyeYPos - c * DistanceToEyes + d), a * dx + b * dy + c * dz, out t))
                return false;

            x = eyeXPos + t * dx;
            z = -DistanceToEyes + t * dz;

            return checkPoint != null ? checkPoint(x, eyeYPos + t * dy, z) : true;
        }