Package jpbrt.core

Examples of jpbrt.core.Vector.dot()


        // compute coefficients for fundamental forms
        double E = dpdu.dot(dpdu);
        double F = dpdu.dot(dpdv);
        double G = dpdv.dot(dpdv);
        Vector N = dpdu.cross(dpdv).normalizeLocal();
        double e = N.dot(d2Pduu);
        double f = N.dot(d2Pduv);
        double g = N.dot(d2Pdvv);
       
        // compute dndu and dndv from fundamental form coefficients
        double invEGF2 = 1.0 / (E*G - F*F);
 
View Full Code Here


        double E = dpdu.dot(dpdu);
        double F = dpdu.dot(dpdv);
        double G = dpdv.dot(dpdv);
        Vector N = dpdu.cross(dpdv).normalizeLocal();
        double e = N.dot(d2Pduu);
        double f = N.dot(d2Pduv);
        double g = N.dot(d2Pdvv);
       
        // compute dndu and dndv from fundamental form coefficients
        double invEGF2 = 1.0 / (E*G - F*F);
        Normal dndu = new Normal(dpdu.mul( (f*F - e*G) * invEGF2 ).addLocal( dpdv.mul((e*F - f*E) * invEGF2) ));
View Full Code Here

        double F = dpdu.dot(dpdv);
        double G = dpdv.dot(dpdv);
        Vector N = dpdu.cross(dpdv).normalizeLocal();
        double e = N.dot(d2Pduu);
        double f = N.dot(d2Pduv);
        double g = N.dot(d2Pdvv);
       
        // compute dndu and dndv from fundamental form coefficients
        double invEGF2 = 1.0 / (E*G - F*F);
        Normal dndu = new Normal(dpdu.mul( (f*F - e*G) * invEGF2 ).addLocal( dpdv.mul((e*F - f*E) * invEGF2) ));
        Normal dndv = new Normal(dpdu.mul( (g*F - f*G) * invEGF2 ).addLocal( dpdv.mul((f*F - g*E) * invEGF2) ));
View Full Code Here

        Point p2 = mesh.p[v2];
        Point p3 = mesh.p[v3];
        Vector e1 = p1.to(p2);
        Vector e2 = p1.to(p3);
        Vector s1 = ray.d.cross(e2);
        double divisor = s1.dot(e1);
        if (divisor == 0)
            return result;
        double invDivisor = 1.0 / divisor;
       
        // compute first barycentric coordinate b1
View Full Code Here

            return result;
        double invDivisor = 1.0 / divisor;
       
        // compute first barycentric coordinate b1
        Vector d = p1.to(ray.o);
        double b1 = d.dot(s1) * invDivisor;
        if (b1 < 0 || b1 > 1)
            return result;
       
        // compute second barycentric coordinate b2
        Vector s2 = d.cross(e1);
View Full Code Here

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.