コード例 #1
0
        public LSL_Float llListStatistics(int operation, LSL_List src)
        {
            if (!ScriptProtection.CheckThreatLevel(ThreatLevel.None, "LSL", m_host, "LSL", m_itemID))
            {
                return(new LSL_Float());
            }

            LSL_List nums = LSL_List.ToDoubleList(src);

            if (operation == ScriptBaseClass.LIST_STAT_RANGE)
            {
                return(nums.Range());
            }
            if (operation == ScriptBaseClass.LIST_STAT_MIN)
            {
                return(nums.Min());
            }
            if (operation == ScriptBaseClass.LIST_STAT_MAX)
            {
                return(nums.Max());
            }
            if (operation == ScriptBaseClass.LIST_STAT_MEAN)
            {
                return(nums.Mean());
            }
            if (operation == ScriptBaseClass.LIST_STAT_MEDIAN)
            {
                return(nums.Median());
            }
            if (operation == ScriptBaseClass.LIST_STAT_NUM_COUNT)
            {
                return(nums.NumericLength());
            }
            if (operation == ScriptBaseClass.LIST_STAT_STD_DEV)
            {
                return(nums.StdDev());
            }
            if (operation == ScriptBaseClass.LIST_STAT_SUM)
            {
                return(nums.Sum());
            }
            if (operation == ScriptBaseClass.LIST_STAT_SUM_SQUARES)
            {
                return(nums.SumSqrs());
            }
            if (operation == ScriptBaseClass.LIST_STAT_GEOMETRIC_MEAN)
            {
                return(nums.GeometricMean());
            }
            if (operation == ScriptBaseClass.LIST_STAT_HARMONIC_MEAN)
            {
                return(nums.HarmonicMean());
            }
            return(0.0);
        }