示例#1
0
        public static Color4 GetColor(LightPreset preset, float intensity)
        {
            var temp = (int)preset;

            switch (preset)
            {
            case LightPreset.Red:       return(new Color4(1, 0, 0, 0) * intensity);

            case LightPreset.Green:       return(new Color4(0, 1, 0, 0) * intensity);

            case LightPreset.Blue:       return(new Color4(0, 0, 1, 0) * intensity);

            case LightPreset.Yellow:       return(new Color4(1, 1, 0, 0) * intensity);

            case LightPreset.Magenta:       return(new Color4(1, 0, 1, 0) * intensity);

            case LightPreset.Cyan:       return(new Color4(0, 1, 1, 0) * intensity);

            case LightPreset.White:       return(new Color4(1, 1, 1, 0) * intensity);
            }             //*/

            if (temp <= 780)
            {
                return(new Color4(WaveLength.GetColor(temp), 0));
            }

            var color = Temperature.Get(temp);

            return(new Color4(color.X * intensity, color.Y * intensity, color.Z * intensity, 0));
        }
示例#2
0
 public SecondLabCalculatingObject(TraceLength traceLength, WaveLength waveLength,
                                   ThetaDegrees thetaDegrees, RelativeTraceLength relativeTraceLength, DiafragmRadius diafragmRadius, bool isDirected, bool reverseRelativeDistance)
 {
     this.traceLength             = traceLength;
     this.waveLength              = waveLength;
     this.thetaDegrees            = thetaDegrees;
     this.relativeTraceLength     = relativeTraceLength;
     this.isDirected              = isDirected;
     this.diafragmRadius          = diafragmRadius;
     this.reverseRelativeDistance = reverseRelativeDistance;
 }
 public ThirdLabCalculationObject(Conductivity conductivity, ElectricalPermeability electricalPermeability, WaveLength waveLength, Height transmitterHeight, Height receiverHeight, ThetaDegrees thetaDegrees, TraceLength traceLength, PolarizationType polarizationType)
 {
     this.conductivity           = conductivity;
     this.electricalPermeability = electricalPermeability;
     this.waveLength             = waveLength;
     this.transmitterHeight      = transmitterHeight;
     this.receiverHeight         = receiverHeight;
     this.thetaDegrees           = thetaDegrees;
     this.traceLength            = traceLength;
     this.PolarizationType       = polarizationType;
 }
示例#4
0
        public void CalculateFresnelZone(double waveLength, double traceLength, double relativeTraceLength, int fresnelZoneRadius, double expected)
        {
            WaveLength          waveLengthObject          = new WaveLength(waveLength, MetricPrefixes.One, UnitsOfMeasurement.Meter);
            TraceLength         traceLengthObject         = new TraceLength(traceLength);
            RelativeTraceLength relativeTraceLengthObject = new RelativeTraceLength(relativeTraceLength,
                                                                                    MetricPrefixes.Percents, UnitsOfMeasurement.Percents);
            SecondLabCalculatingObject slco = new SecondLabCalculatingObject(traceLengthObject, waveLengthObject, null,
                                                                             relativeTraceLengthObject, null, true, true);
            var nFrenselZone = slco.CalculateNFresnelZone(fresnelZoneRadius).Value;

            Assert.AreEqual(Math.Ceiling(expected), Math.Ceiling(nFrenselZone));
        }