public DifferentialGeometry(Point P, Vector DPDU, Vector DPDV, Normal DNDU, Normal DNDV, float uu, float vv, Shape sh) { p = (P); dpdu = (DPDU); dpdv = (DPDV); dndu = (DNDU); dndv = (DNDV); nn = new Normal(Vector.Normalize(Vector.Cross(dpdu, dpdv))); u = uu; v = vv; shape = sh; dudx = dvdx = dudy = dvdy = 0; dpdx = dpdy = new Vector(); if (shape != null && (shape.ReverseOrientation ^ shape.TransformSwapsHandedness)) nn *= -1.0f; }
public void Setshape(Shape s) { shape = s; }