+ #endregion\r
+\r
+ #region GaborAlphaProgram\r
+ public class GaborAlphaProgram : ShaderProgram\r
+ {\r
+ public static readonly Uri ps = new Uri(@"/PsychlopsSilverlight4;component/Shader/GaborAlpha.ps", UriKind.Relative);\r
+\r
+ public static readonly DependencyProperty InputProperty = ShaderEffect.RegisterPixelShaderSamplerProperty("Input", typeof(GaborAlphaProgram), 0);\r
+ public static readonly DependencyProperty ContrastProperty = DependencyProperty.Register("Contrast", typeof(double), typeof(GaborAlphaProgram), new PropertyMetadata(((double)(1D)), PixelShaderConstantCallback(1)));\r
+ public static readonly DependencyProperty FrequencyProperty = DependencyProperty.Register("Frequency", typeof(double), typeof(GaborAlphaProgram), new PropertyMetadata(((double)(100D)), PixelShaderConstantCallback(2)));\r
+ public static readonly DependencyProperty PhaseProperty = DependencyProperty.Register("Phase", typeof(double), typeof(GaborAlphaProgram), new PropertyMetadata(((double)(0D)), PixelShaderConstantCallback(3)));\r
+ public static readonly DependencyProperty OrientationProperty = DependencyProperty.Register("Orientation", typeof(double), typeof(GaborAlphaProgram), new PropertyMetadata(((double)(0D)), PixelShaderConstantCallback(4)));\r
+ public static readonly DependencyProperty SigmaProperty = DependencyProperty.Register("Sigma", typeof(double), typeof(GaborAlphaProgram), new PropertyMetadata(((double)(4D)), PixelShaderConstantCallback(5)));\r
+ public static readonly DependencyProperty AlphaProperty = DependencyProperty.Register("Alpha", typeof(double), typeof(GaborAlphaProgram), new PropertyMetadata(((double)(1D)), PixelShaderConstantCallback(6)));\r
+ public GaborAlphaProgram()\r
+ {\r
+ PixelShader pixelShader = new PixelShader();\r
+ pixelShader.UriSource = ps;\r
+ this.PixelShader = pixelShader;\r
+\r
+ this.UpdateShaderValue(InputProperty);\r
+ this.UpdateShaderValue(ContrastProperty);\r
+ this.UpdateShaderValue(FrequencyProperty);\r
+ this.UpdateShaderValue(PhaseProperty);\r
+ this.UpdateShaderValue(OrientationProperty);\r
+ this.UpdateShaderValue(SigmaProperty);\r
+ this.UpdateShaderValue(AlphaProperty);\r
+\r
+ Size = 200;\r
+ Contrast = 1.0;\r
+ WaveLength = 100.0;\r
+ Orientation = 0.0;\r
+ Sigma = 4.0;\r
+ Alpha = 1.0;\r
+ }\r
+\r
+ public void Update()\r
+ {\r
+ this.UpdateShaderValue(InputProperty);\r
+ this.UpdateShaderValue(ContrastProperty);\r
+ this.UpdateShaderValue(FrequencyProperty);\r
+ this.UpdateShaderValue(PhaseProperty);\r
+ this.UpdateShaderValue(OrientationProperty);\r
+ this.UpdateShaderValue(SigmaProperty);\r
+ this.UpdateShaderValue(AlphaProperty);\r
+ }\r
+\r