コード例 #1
0
ファイル: Flat.cs プロジェクト: dibyendumajumdar/nfotoptix
        /*
         *
         * intersection d'un plan defini par :
         *
         * P(Px, Py, Pz) appartenant au plan
         * N(Px, Py, Pz) normal au plan
         *
         * avec une droite AB definie par l'ensemble des points tel que:
         *
         * A + * t B
         *
         * on a :
         *
         * t=(Nz*Pz+Ny*Py+Nx*Px-Az*Nz-Ay*Ny-Ax*Nx)/(Bz*Nz+By*Ny+Bx*Nx)
         *
         */


        override public Vector3 intersect(Vector3Pair ray)
        {
            double s = ray.direction().z();

            if (s == 0)
            {
                return(null);
            }
            double a = -ray.origin().z() / s;

            if (a < 0)
            {
                return(null);
            }
            return(ray.origin().plus(ray.direction().times(a)));
        }
コード例 #2
0
 public override string ToString()
 {
     return("LightRay{wavelen=" + _wavelen + ",origin=" + _ray.origin() + ",direction=" + _ray.direction() + '}');
 }