public static Light MakeLight(string name, Transform lightToWorld, ParamSet parameters) { switch (name) { case "distant": { var l = parameters.FindSpectrum("L", new Spectrum(1.0f)); var scale = parameters.FindSpectrum("scale", new Spectrum(1.0f)); var from = parameters.FindPoint("from", Point.Zero); var to = parameters.FindPoint("to", new Point(0, 0, 1)); var dir = from - to; return(new DistantLight(lightToWorld, l * scale, dir)); } case "point": { var i = parameters.FindSpectrum("I", new Spectrum(1.0f)); var scale = parameters.FindSpectrum("scale", new Spectrum(1.0f)); var from = parameters.FindPoint("from", Point.Zero); var l2w = Transform.Translate((Vector)from) * lightToWorld; return(new PointLight(l2w, i * scale)); } default: throw new ArgumentException("Unknown light: " + name); } }
public static Light MakeLight(string name, Transform lightToWorld, ParamSet parameters) { switch (name) { case "distant" : { var l = parameters.FindSpectrum("L", new Spectrum(1.0f)); var scale = parameters.FindSpectrum("scale", new Spectrum(1.0f)); var from = parameters.FindPoint("from", Point.Zero); var to = parameters.FindPoint("to", new Point(0, 0, 1)); var dir = from - to; return new DistantLight(lightToWorld, l * scale, dir); } case "point": { var i = parameters.FindSpectrum("I", new Spectrum(1.0f)); var scale = parameters.FindSpectrum("scale", new Spectrum(1.0f)); var from = parameters.FindPoint("from", Point.Zero); var l2w = Transform.Translate((Vector) from) * lightToWorld; return new PointLight(l2w, i * scale); } default: throw new ArgumentException("Unknown light: " + name); } }
public Point FindPoint(string name, Point defaultValue) { return(_geomParams.FindPoint(name, defaultValue)); }