Exemplo n.º 1
0
 public InstantVolumeMeasurement(string name, IVolume vol, IInstantBodyMeasurement <T> bodyMeasurement, Func <T, IBody, T> accumFunc, Func <T, T> finalizeFunc = null)
 {
     Name             = name;
     Volume           = vol;
     BodyMeasurement  = bodyMeasurement;
     AccumulationFunc = accumFunc;
     FinalizeFunc     = finalizeFunc ?? (r => r);
 }
Exemplo n.º 2
0
 public static InstantVolumeMeasurement <double> VolumeSum(IVolume vol, IInstantBodyMeasurement <double> bodyMeas)
 {
     return(new InstantVolumeMeasurement <double>($"Total {bodyMeas.Name}", vol, bodyMeas, (sum, b) => sum += bodyMeas.TakeMeasurement(b)));
 }
Exemplo n.º 3
0
 public static InstantVolumeMeasurement <double> VolumeAvg(IVolume vol, IInstantBodyMeasurement <double> bodyMeas)
 {
     return(new InstantVolumeMeasurement <double>($"Average {bodyMeas.Name}", vol, bodyMeas, (sum, b) => sum += bodyMeas.TakeMeasurement(b), sum => sum / vol.TotalVolume));
 }
Exemplo n.º 4
0
 /// <summary>
 /// Performs an instantaneous measurement on the specified body.
 /// </summary>
 public static T Measure <T>(this IBody b, IInstantBodyMeasurement <T> measurement) => measurement.TakeMeasurement(b);