public CustomTracesLightSource(ShadowScientrace.ShadowLightSource shadowObject) : base(shadowObject) { foreach (Scientrace.Trace aTrace in (List <Scientrace.Trace>)shadowObject.getObject("traces_list")) { aTrace.lightsource = this; this.addTrace(aTrace); } }
public LightSource(ShadowScientrace.ShadowLightSource aShadowLightSource) { this.setObjectEnvironment(aShadowLightSource.env); this.minimum_intensity_fraction = aShadowLightSource.getDouble("minimum_intensity_fraction", this.minimum_intensity_fraction); this.addTraceModifiers((IEnumerable <Scientrace.UniformTraceModifier>)aShadowLightSource.getObject("trace_modifiers", true)); //AND it was put back like a normal ShadowClass object... //this.spectrum = aShadowLightSource.spectrum; this.spectrum = (Scientrace.LightSpectrum)aShadowLightSource.getObject("spectrum", !this.mandatory_spectrum); if (spectrum == null) { Console.WriteLine("WARNING: No spectrum given."); } this.efficiency_characteristics = (Scientrace.OpticalEfficiencyCharacteristics)aShadowLightSource.getObject("efficiency_characteristics"); this.weighted_intensity = (double)(aShadowLightSource.getNDouble("weighted_intensity") ?? this.spectrum.total_intensity); }
public SpiralLightSource(ShadowScientrace.ShadowLightSource shadowObject) : base(shadowObject) { int ray_count = (int)shadowObject.getObject("ray_count"); double loops = shadowObject.getDouble("loops", -1); if (loops == -1) { loops = 1.0154 * Math.Pow(Math.PI * 2 * (1 - Math.Sqrt(((double)ray_count - 1) / (double)ray_count)), -0.5); Console.WriteLine("Number of loops for " + ray_count + " beams set to: {" + loops.ToString("#,0.000") + "}."); } this.paramInit( (Scientrace.Location)shadowObject.getObject("location"), //center (Scientrace.UnitVector)shadowObject.getObject("direction"), //direction, (Scientrace.Plane)shadowObject.getObject("spiral_plane"), //plane, ray_count, //linecount, (double)shadowObject.getObject("radius"), //radius, loops, //loops, (double)shadowObject.getObject("distance") //distance, //(Scientrace.LightSpectrum)shadowObject.getObject("spectrum")//spectrum ); }