6565#define MEDIAN_FLAG_SHORT " -md"
6666#define MEDIAN_FLAG_LONG " -median"
6767
68- #define VARIANCE_FLAG_SHORT " -var "
69- #define VARIANCE_FLAG_LONG " -variance "
68+ #define POPULATION_VARIANCE_FLAG_SHORT " -pvr "
69+ #define POPULATION_VARIANCE_FLAG_LONG " -populationVariance "
7070
71- #define STANDARD_DEVIATION_FLAG_SHORT " -sd "
72- #define STANDARD_DEVIATION_FLAG_LONG " -standardDeviation "
71+ #define POPULATION_STANDARD_DEVIATION_FLAG_SHORT " -psd "
72+ #define POPULATION_STANDARD_DEVIATION_FLAG_LONG " -populationStandardDeviation "
7373
7474#define SIGNAL_TO_NOISE_RATIO_FLAG_SHORT " -snr"
7575#define SIGNAL_TO_NOISE_RATIO_FLAG_LONG " -signalToNoiseRatio"
8585// Statistic type identifiers for output.
8686#define STAT_TYPE_MEAN 0.0
8787#define STAT_TYPE_MEDIAN 1.0
88- #define STAT_TYPE_VARIANCE 2.0
89- #define STAT_TYPE_STDDEV 3.0
90- #define STAT_TYPE_SNR 4.0
88+ #define STAT_TYPE_POPULATION_VARIANCE 2.0
89+ #define STAT_TYPE_POPULATION_STD_DEV 3.0
90+ #define STAT_TYPE_SIGNAL_TO_NOISE_RATIO 4.0
9191
9292namespace mmsg = mmscenegraph;
9393
@@ -121,9 +121,10 @@ MSyntax MMAnimCurveStatisticsCmd::newSyntax() {
121121 // Statistics flags.
122122 syntax.addFlag (MEAN_FLAG_SHORT, MEAN_FLAG_LONG, MSyntax::kBoolean );
123123 syntax.addFlag (MEDIAN_FLAG_SHORT, MEDIAN_FLAG_LONG, MSyntax::kBoolean );
124- syntax.addFlag (VARIANCE_FLAG_SHORT, VARIANCE_FLAG_LONG, MSyntax::kBoolean );
125- syntax.addFlag (STANDARD_DEVIATION_FLAG_SHORT, STANDARD_DEVIATION_FLAG_LONG,
126- MSyntax::kBoolean );
124+ syntax.addFlag (POPULATION_VARIANCE_FLAG_SHORT,
125+ POPULATION_VARIANCE_FLAG_LONG, MSyntax::kBoolean );
126+ syntax.addFlag (POPULATION_STANDARD_DEVIATION_FLAG_SHORT,
127+ POPULATION_STANDARD_DEVIATION_FLAG_LONG, MSyntax::kBoolean );
127128 syntax.addFlag (SIGNAL_TO_NOISE_RATIO_FLAG_SHORT,
128129 SIGNAL_TO_NOISE_RATIO_FLAG_LONG, MSyntax::kBoolean );
129130
@@ -242,9 +243,9 @@ MStatus MMAnimCurveStatisticsCmd::parseArgs(const MArgList &args) {
242243 // Parse statistics flags with default values.
243244 m_calculateMean = false ;
244245 m_calculateMedian = false ;
245- m_calculateVariance = false ;
246- m_calculateStdDev = false ;
247- m_calculateSNR = false ;
246+ m_calculatePopVariance = false ;
247+ m_calculatePopStdDev = false ;
248+ m_calculateSignalToNoiseRatio = false ;
248249
249250 if (argData.isFlagSet (MEAN_FLAG_SHORT)) {
250251 status = argData.getFlagArgument (MEAN_FLAG_SHORT, 0 , m_calculateMean);
@@ -255,25 +256,25 @@ MStatus MMAnimCurveStatisticsCmd::parseArgs(const MArgList &args) {
255256 argData.getFlagArgument (MEDIAN_FLAG_SHORT, 0 , m_calculateMedian);
256257 MMSOLVER_CHECK_MSTATUS_AND_RETURN_IT (status);
257258 }
258- if (argData.isFlagSet (VARIANCE_FLAG_SHORT )) {
259- status = argData.getFlagArgument (VARIANCE_FLAG_SHORT , 0 ,
260- m_calculateVariance );
259+ if (argData.isFlagSet (POPULATION_VARIANCE_FLAG_SHORT )) {
260+ status = argData.getFlagArgument (POPULATION_VARIANCE_FLAG_SHORT , 0 ,
261+ m_calculatePopVariance );
261262 MMSOLVER_CHECK_MSTATUS_AND_RETURN_IT (status);
262263 }
263- if (argData.isFlagSet (STANDARD_DEVIATION_FLAG_SHORT )) {
264- status = argData.getFlagArgument (STANDARD_DEVIATION_FLAG_SHORT, 0 ,
265- m_calculateStdDev );
264+ if (argData.isFlagSet (POPULATION_STANDARD_DEVIATION_FLAG_SHORT )) {
265+ status = argData.getFlagArgument (
266+ POPULATION_STANDARD_DEVIATION_FLAG_SHORT, 0 , m_calculatePopStdDev );
266267 MMSOLVER_CHECK_MSTATUS_AND_RETURN_IT (status);
267268 }
268269 if (argData.isFlagSet (SIGNAL_TO_NOISE_RATIO_FLAG_SHORT)) {
269270 status = argData.getFlagArgument (SIGNAL_TO_NOISE_RATIO_FLAG_SHORT, 0 ,
270- m_calculateSNR );
271+ m_calculateSignalToNoiseRatio );
271272 MMSOLVER_CHECK_MSTATUS_AND_RETURN_IT (status);
272273 }
273274
274275 // Check that at least one statistic is enabled.
275- if (!m_calculateMean && !m_calculateMedian && !m_calculateVariance &&
276- !m_calculateStdDev && !m_calculateSNR ) {
276+ if (!m_calculateMean && !m_calculateMedian && !m_calculatePopVariance &&
277+ !m_calculatePopStdDev && !m_calculateSignalToNoiseRatio ) {
277278 MGlobal::displayError (CMD_NAME
278279 " : At least one statistic must be enabled." );
279280 return MS::kFailure ;
@@ -283,10 +284,12 @@ MStatus MMAnimCurveStatisticsCmd::parseArgs(const MArgList &args) {
283284 MMSOLVER_MAYA_VRB (CMD_NAME << " : m_endFrame=" << m_endFrame);
284285 MMSOLVER_MAYA_VRB (CMD_NAME << " : m_calculateMean=" << m_calculateMean);
285286 MMSOLVER_MAYA_VRB (CMD_NAME << " : m_calculateMedian=" << m_calculateMedian);
286- MMSOLVER_MAYA_VRB (CMD_NAME << " : m_calculateVariance="
287- << m_calculateVariance);
288- MMSOLVER_MAYA_VRB (CMD_NAME << " : m_calculateStdDev=" << m_calculateStdDev);
289- MMSOLVER_MAYA_VRB (CMD_NAME << " : m_calculateSNR=" << m_calculateSNR);
287+ MMSOLVER_MAYA_VRB (CMD_NAME << " : m_calculatePopVariance="
288+ << m_calculatePopVariance);
289+ MMSOLVER_MAYA_VRB (CMD_NAME << " : m_calculatePopStdDev="
290+ << m_calculatePopStdDev);
291+ MMSOLVER_MAYA_VRB (CMD_NAME << " : m_calculateSignalToNoiseRatio="
292+ << m_calculateSignalToNoiseRatio);
290293 MMSOLVER_MAYA_VRB (CMD_NAME << " : m_useListInput=" << m_useListInput);
291294
292295 return status;
@@ -398,50 +401,55 @@ MStatus MMAnimCurveStatisticsCmd::doIt(const MArgList &args) {
398401
399402 // Variables to store calculated values.
400403 mmsg::Real mean = 0.0 ;
401- mmsg::Real variance = 0.0 ;
402- mmsg::Real std_dev = 0.0 ;
404+ mmsg::Real pop_variance = 0.0 ;
405+ mmsg::Real pop_std_dev = 0.0 ;
403406 mmsg::Real snr = 0.0 ;
404407 bool meanCalculated = false ;
405408
406409 // Calculate variance first, because it gives us the mean as well.
407- if (m_calculateVariance ) {
410+ if (m_calculatePopVariance ) {
408411 if (mmsg::calc_population_variance (values_slice_y, mean,
409- variance)) {
410- statsResults.push_back ({STAT_TYPE_VARIANCE, variance});
412+ pop_variance)) {
413+ statsResults.push_back (
414+ {STAT_TYPE_POPULATION_VARIANCE, pop_variance});
411415 meanCalculated = true ;
412- MMSOLVER_MAYA_VRB (CMD_NAME << " : variance=" << variance);
416+ MMSOLVER_MAYA_VRB (CMD_NAME << " : pop_variance="
417+ << pop_variance);
413418 } else {
414- MGlobal::displayWarning (CMD_NAME
415- " : Failed to calculate variance." );
419+ MGlobal::displayWarning (
420+ CMD_NAME " : Failed to calculate population variance." );
416421 }
417422 }
418423
419- if (m_calculateStdDev && !m_calculateVariance ) {
424+ if (m_calculatePopStdDev && !m_calculatePopVariance ) {
420425 if (mmsg::calc_population_standard_deviation (values_slice_y, mean,
421- std_dev)) {
422- statsResults.push_back ({STAT_TYPE_STDDEV, std_dev});
426+ pop_std_dev)) {
427+ statsResults.push_back (
428+ {STAT_TYPE_POPULATION_STD_DEV, pop_std_dev});
423429 meanCalculated = true ;
424430 MMSOLVER_MAYA_VRB (CMD_NAME << " : standard deviation="
425- << std_dev );
431+ << pop_std_dev );
426432 } else {
427433 MGlobal::displayWarning (
428434 CMD_NAME " : Failed to calculate standard deviation." );
429435 }
430- } else if (m_calculateStdDev && m_calculateVariance) {
431- // We already have variance, just calculate std dev from it.
432- std_dev = std::sqrt (variance);
433- statsResults.push_back ({STAT_TYPE_STDDEV, std_dev});
434- MMSOLVER_MAYA_VRB (CMD_NAME << " : standard deviation=" << std_dev);
436+ } else if (m_calculatePopStdDev && m_calculatePopVariance) {
437+ // We already have population variance, just calculate population
438+ // std dev from it.
439+ pop_std_dev = std::sqrt (pop_variance);
440+ statsResults.push_back ({STAT_TYPE_POPULATION_STD_DEV, pop_std_dev});
441+ MMSOLVER_MAYA_VRB (CMD_NAME << " : standard deviation="
442+ << pop_std_dev);
435443 }
436444
437445 // Calculate SNR if needed.
438- if (m_calculateSNR ) {
439- mmsg::Real snr_mean = 0.0 ;
440- if (mmsg::calc_signal_to_noise_ratio (values_slice_y, snr_mean,
441- snr)) {
442- statsResults.push_back ({STAT_TYPE_SNR , snr});
446+ if (m_calculateSignalToNoiseRatio ) {
447+ mmsg::Real signal_to_noise_ratio_mean = 0.0 ;
448+ if (mmsg::calc_signal_to_noise_ratio (
449+ values_slice_y, signal_to_noise_ratio_mean, snr)) {
450+ statsResults.push_back ({STAT_TYPE_SIGNAL_TO_NOISE_RATIO , snr});
443451 if (!meanCalculated) {
444- mean = snr_mean ;
452+ mean = signal_to_noise_ratio_mean ;
445453 meanCalculated = true ;
446454 }
447455 MMSOLVER_MAYA_VRB (CMD_NAME << " : SNR=" << snr);
0 commit comments