OSDN Git Service

Merge branch 'master' of git.sourceforge.jp:/gitroot/karinto/karinto
authorkimikage <kimikage_ceo@hotmail.com>
Wed, 24 Nov 2010 01:45:53 +0000 (10:45 +0900)
committerkimikage <kimikage_ceo@hotmail.com>
Wed, 24 Nov 2010 02:05:50 +0000 (11:05 +0900)
Conflicts:
Karinto/WindowFunction.cs

1  2 
Karinto/WindowFunction.cs

@@@ -38,11 -38,9 +38,11 @@@ namespace Karint
  \r
          #region private or protected fields\r
  \r
--        private Function function;\r
          private static Function[] library;\r
++        private Function function;\r
          private double parameter;\r
 +        private double powerCorrectionFactor;\r
 +        private double amplitudeCorrectionFactor;\r
  \r
          #endregion\r
  \r
          }\r
  \r
          public WindowFunction(FunctionType type, Range range)\r
++            : this(type, 0.0, range)\r
          {\r
 -            Type = type;\r
--            Range = range;\r
              switch (type)\r
              {\r
-                 case FunctionType.UserDefined:\r
-                     function = null;\r
-                     break;\r
                  case FunctionType.Gaussian:\r
--                    function = Gaussian;\r
                      parameter = 0.4;\r
                      break;\r
                  case FunctionType.Kaiser:\r
--                    function = Kaiser;\r
                      parameter = 2.0;\r
                      break;\r
                  case FunctionType.Lanczos:\r
--                    function = Lanczos;\r
                      parameter = 1.0;\r
                      break;\r
                  default:\r
--                    function = library[(int)type];\r
                      break;\r
              }\r
-             powerCorrectionFactor = CalculatePowerCorrectionFactor();\r
-             amplitudeCorrectionFactor = CalculateAmplitudeCorrectionFactor();\r
+         }\r
\r
+         public WindowFunction(FunctionType type, double parameter)\r
+             : this(type, parameter, null)\r
+         {\r
+         }\r
\r
+         public WindowFunction(FunctionType type, double parameter, Range range)\r
+         {\r
+             Type = type;\r
+             Range = range;\r
+             this.parameter = parameter;\r
+             switch (type)\r
+             {\r
++                case FunctionType.UserDefined:\r
++                    Window = null;\r
++                    break;\r
+                 case FunctionType.Gaussian:\r
 -                    function = Gaussian;\r
++                    Window = Gaussian;\r
+                     break;\r
+                 case FunctionType.Kaiser:\r
 -                    function = Kaiser;\r
++                    Window = Kaiser;\r
+                     break;\r
+                 case FunctionType.Lanczos:\r
 -                    function = Lanczos;\r
++                    Window = Lanczos;\r
+                     break;\r
+                 default:\r
 -                    function = library[(int)type];\r
++                    Window = library[(int)type];\r
+                     break;\r
+             }\r
          }\r
  \r
          public WindowFunction(Function function)\r
          }\r
  \r
          public WindowFunction(Function function, Range range)\r
 +            : this(FunctionType.UserDefined, range)\r
          {\r
 -            Range = range;\r
 -            Type = FunctionType.UserDefined;\r
--            this.function = function;\r
++            Window = function;\r
          }\r
  \r
          #endregion\r
              set;\r
          }\r
  \r
++        public Function Window\r
++        {\r
++            get\r
++            {\r
++                return function;\r
++            }\r
++            private set\r
++            {\r
++                function = value;\r
++                if (function != null)\r
++                {\r
++                    powerCorrectionFactor = CalculatePowerCorrectionFactor();\r
++                    amplitudeCorrectionFactor = CalculateAmplitudeCorrectionFactor();\r
++                }\r
++            }\r
++        }\r
++\r
 +        public double PowerCorrectionFactor\r
 +        {\r
 +            get\r
 +            {\r
 +                if (powerCorrectionFactor > 0.0)\r
 +                {\r
 +                    return powerCorrectionFactor;\r
 +                }\r
 +                return CalculatePowerCorrectionFactor();\r
 +            }\r
 +        }\r
 +\r
 +        public double AmplitudeCorrectionFactor\r
 +        {\r
 +            get\r
 +            {\r
 +                if (amplitudeCorrectionFactor > 0.0)\r
 +                {\r
 +                    return amplitudeCorrectionFactor;\r
 +                }\r
 +                return CalculateAmplitudeCorrectionFactor();\r
 +            }\r
 +        }\r
 +\r
          #endregion\r
  \r
          #region public methods\r