+++ /dev/null
-//------------------------------------------------------------------------------\r
-// <auto-generated>\r
-// このコードはツールによって生成されました。\r
-// ランタイム バージョン:4.0.30319.1\r
-//\r
-// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、\r
-// コードが再生成されるときに損失したりします。\r
-// </auto-generated>\r
-//------------------------------------------------------------------------------\r
-\r
-using System;\r
-using System.Windows;\r
-using System.Windows.Media;\r
-using System.Windows.Media.Effects;\r
-using System.Windows.Media.Media3D;\r
-\r
-\r
-namespace Psychlops\r
-{\r
-\r
-\r
- public static partial class Figures\r
- {\r
-\r
- public class ShaderGrating : ShaderField\r
- {\r
- protected Shader.GratingProgram ps = null;\r
- public ShaderGrating()\r
- {\r
- initialize__ = initialize___;\r
- setParameters = setParameters__;\r
- }\r
- internal void initialize()\r
- {\r
- if (!initialized)\r
- {\r
- Main.canvas.beginInvoke(initialize___);\r
- initialized = true;\r
- }\r
- }\r
- internal void initialize___()\r
- {\r
- if (!initialized)\r
- {\r
- if (ps == null)\r
- {\r
- ps = new Shader.GratingProgram();\r
- initializeShader();\r
- }\r
- shader = ps;\r
- initialized = true;\r
- }\r
- }\r
-\r
- public double contrast = 1.0, wavelength = 20.0, phase = 0.0, orientation = 0.0;\r
- public ShaderGrating setSize(double s) { set(s, s); return this; }\r
- public ShaderGrating setSize(double h, double v) { set(h, v); return this; }\r
-\r
- public void setParameters__()\r
- {\r
- ps.Contrast = contrast;\r
- ps.WaveLength = wavelength;\r
- ps.Phase = phase;\r
- ps.Orientation = orientation;\r
- ps.SizeH = width;\r
- ps.SizeV = height;\r
- ps.Update();\r
- }\r
-\r
-\r
- }\r
-\r
-\r
- public class ShaderPlaid : ShaderField\r
- {\r
- protected Shader.PlaidProgram ps = null;\r
- public ShaderPlaid()\r
- {\r
- initialize__ = initialize___;\r
- setParameters = setParameters__;\r
- }\r
- internal void initialize()\r
- {\r
- if (!initialized)\r
- {\r
- Main.canvas.beginInvoke(initialize___);\r
- initialized = true;\r
- }\r
- }\r
- internal void initialize___()\r
- {\r
- if (!initialized)\r
- {\r
- if (ps == null)\r
- {\r
- ps = new Shader.PlaidProgram();\r
- initializeShader();\r
- }\r
- shader = ps;\r
- initialized = true;\r
- }\r
- }\r
-\r
- public double contrast = 0.5, wavelength = 20.0, phase = 0.0, orientation = 0.0;\r
- public double contrast2 = 0.5, wavelength2 = 20.0, phase2 = 0.0, orientation2 = Math.PI / 4;\r
- public ShaderPlaid setSize(double s) { set(s, s); return this; }\r
- public ShaderPlaid setSize(double h, double v) { set(h, v); return this; }\r
-\r
- public void setParameters__()\r
- {\r
- ps.Contrast = contrast;\r
- ps.WaveLength = wavelength;\r
- ps.Phase = phase;\r
- ps.Orientation = orientation;\r
- ps.Size = width;\r
- ps.Contrast2 = contrast;\r
- ps.WaveLength2 = wavelength;\r
- ps.Phase2 = phase;\r
- ps.Orientation2 = orientation;\r
- ps.SizeH = width;\r
- ps.SizeV = height;\r
- ps.Update();\r
- }\r
-\r
-\r
- }\r
-\r
-\r
- public class ShaderGabor : ShaderField\r
- {\r
- protected Shader.GaborProgram ps = null;\r
- public ShaderGabor()\r
- {\r
- initialize__ = initialize___;\r
- setParameters = setParameters__;\r
- }\r
- internal void initialize()\r
- {\r
- if (!initialized)\r
- {\r
- Main.canvas.beginInvoke(initialize___);\r
- initialized = true;\r
- }\r
- }\r
- internal void initialize___()\r
- {\r
- if (!initialized)\r
- {\r
- if (ps == null)\r
- {\r
- ps = new Shader.GaborProgram();\r
- initializeShader();\r
- }\r
- shader = ps;\r
- initialized = true;\r
- }\r
- }\r
-\r
- //public double contrast { get; set; }\r
- //public double frequency { get; set; }\r
- //public double phase { get; set; }\r
- //public double orientation { get; set; }\r
- public double contrast = 1.0, wavelength = 20.0, phase = 0.0, orientation = 0.0, alpha = 1.0;\r
- public ShaderGabor setSigma(double s)\r
- {\r
- set(s*8, s*8);\r
- return this;\r
- }\r
- \r
- public void setParameters__()\r
- {\r
- ps.Contrast = contrast;\r
- ps.WaveLength = wavelength;\r
- ps.Phase = phase;\r
- ps.Orientation = orientation;\r
- ps.Sigma = 4.0;\r
- ps.Size = width;\r
- ps.Alpha = alpha;\r
- ps.Update();\r
- }\r
-\r
-\r
- }\r
-\r
-\r
- public class ShaderGaborAlpha : ShaderField\r
- {\r
- protected Shader.GaborAlphaProgram ps = null;\r
- public ShaderGaborAlpha()\r
- {\r
- initialize__ = initialize___;\r
- setParameters = setParameters__;\r
- }\r
- internal void initialize()\r
- {\r
- if (!initialized)\r
- {\r
- Main.canvas.beginInvoke(initialize___);\r
- initialized = true;\r
- }\r
- }\r
- internal void initialize___()\r
- {\r
- if (!initialized)\r
- {\r
- if (ps == null)\r
- {\r
- ps = new Shader.GaborAlphaProgram();\r
- initializeShader();\r
- }\r
- shader = ps;\r
- initialized = true;\r
- }\r
- }\r
-\r
- //public double contrast { get; set; }\r
- //public double frequency { get; set; }\r
- //public double phase { get; set; }\r
- //public double orientation { get; set; }\r
- public double contrast = 1.0, wavelength = 20.0, phase = 0.0, orientation = 0.0, alpha = 1.0;\r
- public ShaderGaborAlpha setSigma(double s)\r
- {\r
- set(s * 8, s * 8);\r
- return this;\r
- }\r
-\r
- public void setParameters__()\r
- {\r
- ps.Contrast = contrast;\r
- ps.WaveLength = wavelength;\r
- ps.Phase = phase;\r
- ps.Orientation = orientation;\r
- ps.Sigma = 4.0;\r
- ps.Size = width;\r
- ps.Alpha = alpha;\r
- ps.Update();\r
- }\r
-\r
-\r
- }\r
- }\r
-\r
-\r
- namespace Shader\r
- {\r
- internal static partial class Connector\r
- {\r
- internal delegate void PixelShaderConnector(ShaderEffect q, Uri s);\r
- }\r
-\r
-\r
- public abstract class ShaderProgram : ShaderEffect\r
- {\r
- }\r
-\r
- #region GratingProgram\r
- public class GratingProgram : ShaderProgram\r
- {\r
- public static readonly Uri ps = new Uri(@"/PsychlopsSilverlight4;component/Shader/Grating.ps", UriKind.Relative);\r
-\r
- public static readonly DependencyProperty InputProperty = ShaderEffect.RegisterPixelShaderSamplerProperty("Input", typeof(GratingProgram), 0);\r
- public static readonly DependencyProperty ContrastProperty = DependencyProperty.Register("Contrast", typeof(double), typeof(GratingProgram), new PropertyMetadata(((double)(1D)), PixelShaderConstantCallback(1)));\r
- public static readonly DependencyProperty FrequencyProperty = DependencyProperty.Register("Frequency", typeof(double), typeof(GratingProgram), new PropertyMetadata(((double)(100D)), PixelShaderConstantCallback(2)));\r
- public static readonly DependencyProperty PhaseProperty = DependencyProperty.Register("Phase", typeof(double), typeof(GratingProgram), new PropertyMetadata(((double)(0D)), PixelShaderConstantCallback(3)));\r
- public static readonly DependencyProperty OrientationProperty = DependencyProperty.Register("Orientation", typeof(double), typeof(GratingProgram), new PropertyMetadata(((double)(0D)), PixelShaderConstantCallback(4)));\r
- public static readonly DependencyProperty SizeHProperty = DependencyProperty.Register("SizeH", typeof(double), typeof(GratingProgram), new PropertyMetadata(((double)(32D)), PixelShaderConstantCallback(5)));\r
- public static readonly DependencyProperty SizeVProperty = DependencyProperty.Register("SizeV", typeof(double), typeof(GratingProgram), new PropertyMetadata(((double)(32D)), PixelShaderConstantCallback(6)));\r
- public GratingProgram()\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(SizeHProperty);\r
- this.UpdateShaderValue(SizeVProperty);\r
-\r
- Size = 200;\r
- Contrast = 1.0;\r
- WaveLength = 100.0;\r
- Orientation = 0.0;\r
- SizeH = 32.0;\r
- SizeV = 32.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(SizeHProperty);\r
- this.UpdateShaderValue(SizeVProperty);\r
- }\r
-\r
-\r
- private double size__, wavelength__;\r
- public double Size { get { return size__; } set { size__ = value; setFrequency(); } }\r
- private void setFrequency()\r
- {\r
- double freq = size__ * 2.0 * Math.PI / (wavelength__);\r
- this.SetValue(FrequencyProperty, freq);\r
- }\r
-\r
- /// <summary>Amplitude of Grating</summary>\r
- public double Contrast\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(ContrastProperty))) * 2.0;\r
- }\r
- set\r
- {\r
- this.SetValue(ContrastProperty, value / 2.0);\r
- }\r
- }\r
- /// <summary>Phase of Grating</summary>\r
- public double WaveLength\r
- {\r
- get\r
- {\r
- return wavelength__;\r
- }\r
- set\r
- {\r
- wavelength__ = value;\r
- setFrequency();\r
- }\r
- }\r
- /// <summary>Phase of Grating</summary>\r
- public double Phase\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(PhaseProperty)));\r
- }\r
- set\r
- {\r
- this.SetValue(PhaseProperty, value);\r
- }\r
- }\r
- /// <summary>Orientation of Grating</summary>\r
- public double Orientation\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(OrientationProperty)));\r
- }\r
- set\r
- {\r
- this.SetValue(OrientationProperty, value);\r
- }\r
- }\r
- /// <summary>Width of envelope</summary>\r
- public double SizeH\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(SizeHProperty)));\r
- }\r
- set\r
- {\r
- this.SetValue(SizeHProperty, value);\r
- }\r
- }\r
- /// <summary>Height of Figure</summary>\r
- public double SizeV\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(SizeVProperty)));\r
- }\r
- set\r
- {\r
- this.SetValue(SizeVProperty, value);\r
- }\r
- }\r
- }\r
- #endregion\r
-\r
- #region PlaidProgram\r
- public class PlaidProgram : ShaderProgram\r
- {\r
- public static readonly Uri ps = new Uri(@"/PsychlopsSilverlight4;component/Shader/Plaid.ps", UriKind.Relative);\r
-\r
- public static readonly DependencyProperty InputProperty = ShaderEffect.RegisterPixelShaderSamplerProperty("Input", typeof(PlaidProgram), 0);\r
- public static readonly DependencyProperty ContrastProperty = DependencyProperty.Register("Contrast", typeof(double), typeof(PlaidProgram), new PropertyMetadata(((double)(0.5D)), PixelShaderConstantCallback(1)));\r
- public static readonly DependencyProperty FrequencyProperty = DependencyProperty.Register("Frequency", typeof(double), typeof(PlaidProgram), new PropertyMetadata(((double)(100D)), PixelShaderConstantCallback(2)));\r
- public static readonly DependencyProperty PhaseProperty = DependencyProperty.Register("Phase", typeof(double), typeof(PlaidProgram), new PropertyMetadata(((double)(0D)), PixelShaderConstantCallback(3)));\r
- public static readonly DependencyProperty OrientationProperty = DependencyProperty.Register("Orientation", typeof(double), typeof(PlaidProgram), new PropertyMetadata(((double)(0D)), PixelShaderConstantCallback(4)));\r
- public static readonly DependencyProperty Contrast2Property = DependencyProperty.Register("Contrast2", typeof(double), typeof(PlaidProgram), new PropertyMetadata(((double)(0.5D)), PixelShaderConstantCallback(5)));\r
- public static readonly DependencyProperty Frequency2Property = DependencyProperty.Register("Frequency2", typeof(double), typeof(PlaidProgram), new PropertyMetadata(((double)(100D)), PixelShaderConstantCallback(6)));\r
- public static readonly DependencyProperty Phase2Property = DependencyProperty.Register("Phase2", typeof(double), typeof(PlaidProgram), new PropertyMetadata(((double)(0D)), PixelShaderConstantCallback(7)));\r
- public static readonly DependencyProperty Orientation2Property = DependencyProperty.Register("Orientation2", typeof(double), typeof(PlaidProgram), new PropertyMetadata(((double)(0.785398D)), PixelShaderConstantCallback(8)));\r
- public static readonly DependencyProperty SizeHProperty = DependencyProperty.Register("SizeH", typeof(double), typeof(PlaidProgram), new PropertyMetadata(((double)(32D)), PixelShaderConstantCallback(9)));\r
- public static readonly DependencyProperty SizeVProperty = DependencyProperty.Register("SizeV", typeof(double), typeof(PlaidProgram), new PropertyMetadata(((double)(32D)), PixelShaderConstantCallback(10)));\r
- public PlaidProgram()\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(Contrast2Property);\r
- this.UpdateShaderValue(Frequency2Property);\r
- this.UpdateShaderValue(Phase2Property);\r
- this.UpdateShaderValue(Orientation2Property);\r
- this.UpdateShaderValue(SizeHProperty);\r
- this.UpdateShaderValue(SizeVProperty);\r
-\r
- Size = 200;\r
- Contrast = 0.5;\r
- WaveLength = 100.0;\r
- Phase = 0.0;\r
- Orientation = 0.0;\r
- Contrast2 = 0.5;\r
- WaveLength2 = 100.0;\r
- Phase2 = 0.0;\r
- Orientation2 = Math.PI/4;\r
- SizeH = 32.0;\r
- SizeV = 32.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(Contrast2Property);\r
- this.UpdateShaderValue(Frequency2Property);\r
- this.UpdateShaderValue(Phase2Property);\r
- this.UpdateShaderValue(Orientation2Property);\r
- this.UpdateShaderValue(SizeHProperty);\r
- this.UpdateShaderValue(SizeVProperty);\r
- }\r
-\r
-\r
- private double size__, wavelength__, wavelength2__;\r
- public double Size { get { return size__; } set { size__ = value; setFrequency(); } }\r
- private void setFrequency()\r
- {\r
- double freq = size__ * 2.0 * Math.PI / (wavelength__);\r
- this.SetValue(FrequencyProperty, freq);\r
- double freq2 = size__ * 2.0 * Math.PI / (wavelength2__);\r
- this.SetValue(Frequency2Property, freq);\r
- }\r
-\r
- /// <summary>Amplitude of Grating</summary>\r
- public double Contrast\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(ContrastProperty))) * 2.0;\r
- }\r
- set\r
- {\r
- this.SetValue(ContrastProperty, value / 2.0);\r
- }\r
- }\r
- /// <summary>Phase of Grating</summary>\r
- public double WaveLength\r
- {\r
- get\r
- {\r
- return wavelength__;\r
- }\r
- set\r
- {\r
- wavelength__ = value;\r
- setFrequency();\r
- }\r
- }\r
- /// <summary>Phase of Grating</summary>\r
- public double Phase\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(PhaseProperty)));\r
- }\r
- set\r
- {\r
- this.SetValue(PhaseProperty, value);\r
- }\r
- }\r
- /// <summary>Orientation of Grating</summary>\r
- public double Orientation\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(OrientationProperty)));\r
- }\r
- set\r
- {\r
- this.SetValue(OrientationProperty, value);\r
- }\r
- }\r
- /// <summary>Amplitude of Grating</summary>\r
- public double Contrast2\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(Contrast2Property))) * 2.0;\r
- }\r
- set\r
- {\r
- this.SetValue(Contrast2Property, value / 2.0);\r
- }\r
- }\r
- /// <summary>Phase of Grating</summary>\r
- public double WaveLength2\r
- {\r
- get\r
- {\r
- return wavelength2__;\r
- }\r
- set\r
- {\r
- wavelength2__ = value;\r
- setFrequency();\r
- }\r
- }\r
- /// <summary>Phase2 of Grating</summary>\r
- public double Phase2\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(Phase2Property)));\r
- }\r
- set\r
- {\r
- this.SetValue(Phase2Property, value);\r
- }\r
- }\r
- /// <summary>Orientation2 of Grating</summary>\r
- public double Orientation2\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(Orientation2Property)));\r
- }\r
- set\r
- {\r
- this.SetValue(Orientation2Property, value);\r
- }\r
- }\r
- /// <summary>Width of envelope</summary>\r
- public double SizeH\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(SizeHProperty)));\r
- }\r
- set\r
- {\r
- this.SetValue(SizeHProperty, value);\r
- }\r
- }\r
- /// <summary>Height of Figure</summary>\r
- public double SizeV\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(SizeVProperty)));\r
- }\r
- set\r
- {\r
- this.SetValue(SizeVProperty, value);\r
- }\r
- }\r
- }\r
- #endregion\r
-\r
- #region GaborProgram\r
- public class GaborProgram : ShaderProgram\r
- {\r
- public static readonly Uri ps = new Uri(@"/PsychlopsSilverlight4;component/Shader/Gabor.ps", UriKind.Relative);\r
-\r
- public static readonly DependencyProperty InputProperty = ShaderEffect.RegisterPixelShaderSamplerProperty("Input", typeof(GaborProgram), 0);\r
- public static readonly DependencyProperty ContrastProperty = DependencyProperty.Register("Contrast", typeof(double), typeof(GaborProgram), new PropertyMetadata(((double)(1D)), PixelShaderConstantCallback(1)));\r
- public static readonly DependencyProperty FrequencyProperty = DependencyProperty.Register("Frequency", typeof(double), typeof(GaborProgram), new PropertyMetadata(((double)(100D)), PixelShaderConstantCallback(2)));\r
- public static readonly DependencyProperty PhaseProperty = DependencyProperty.Register("Phase", typeof(double), typeof(GaborProgram), new PropertyMetadata(((double)(0D)), PixelShaderConstantCallback(3)));\r
- public static readonly DependencyProperty OrientationProperty = DependencyProperty.Register("Orientation", typeof(double), typeof(GaborProgram), new PropertyMetadata(((double)(0D)), PixelShaderConstantCallback(4)));\r
- public static readonly DependencyProperty SigmaProperty = DependencyProperty.Register("Sigma", typeof(double), typeof(GaborProgram), new PropertyMetadata(((double)(4D)), PixelShaderConstantCallback(5)));\r
- public static readonly DependencyProperty AlphaProperty = DependencyProperty.Register("Alpha", typeof(double), typeof(GaborProgram), new PropertyMetadata(((double)(1D)), PixelShaderConstantCallback(6)));\r
- public GaborProgram()\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
-\r
- private double size__, wavelength__;\r
- public double Size { get { return size__; } set { size__ = value; setFrequency(); } }\r
- private void setFrequency()\r
- {\r
- double freq = size__ * 2.0 * Math.PI / (wavelength__);\r
- this.SetValue(FrequencyProperty, freq);\r
- }\r
-\r
- /// <summary>Amplitude of Grating</summary>\r
- public double Contrast\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(ContrastProperty))) * 2.0;\r
- }\r
- set\r
- {\r
- this.SetValue(ContrastProperty, value / 2.0);\r
- }\r
- }\r
- /// <summary>Phase of Grating</summary>\r
- public double WaveLength\r
- {\r
- get\r
- {\r
- return wavelength__;\r
- }\r
- set\r
- {\r
- wavelength__ = value;\r
- setFrequency();\r
- }\r
- }\r
- /// <summary>Phase of Grating</summary>\r
- public double Phase\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(PhaseProperty)));\r
- }\r
- set\r
- {\r
- this.SetValue(PhaseProperty, value);\r
- }\r
- }\r
- /// <summary>Orientation of Grating</summary>\r
- public double Orientation\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(OrientationProperty)));\r
- }\r
- set\r
- {\r
- this.SetValue(OrientationProperty, value);\r
- }\r
- }\r
- /// <summary>Half bandwidth of envelope</summary>\r
- public double Sigma\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(SigmaProperty)));\r
- }\r
- set\r
- {\r
- this.SetValue(SigmaProperty, value);\r
- }\r
- }\r
- /// <summary>Transparency of Figure</summary>\r
- public double Alpha\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(AlphaProperty)));\r
- }\r
- set\r
- {\r
- this.SetValue(AlphaProperty, value);\r
- }\r
- }\r
- }\r
- #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
-\r
- private double size__, wavelength__;\r
- public double Size { get { return size__; } set { size__ = value; setFrequency(); } }\r
- private void setFrequency()\r
- {\r
- double freq = size__ * 2.0 * Math.PI / (wavelength__);\r
- this.SetValue(FrequencyProperty, freq);\r
- }\r
-\r
- /// <summary>Amplitude of Grating</summary>\r
- public double Contrast\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(ContrastProperty))) * 2.0;\r
- }\r
- set\r
- {\r
- this.SetValue(ContrastProperty, value / 2.0);\r
- }\r
- }\r
- /// <summary>Phase of Grating</summary>\r
- public double WaveLength\r
- {\r
- get\r
- {\r
- return wavelength__;\r
- }\r
- set\r
- {\r
- wavelength__ = value;\r
- setFrequency();\r
- }\r
- }\r
- /// <summary>Phase of Grating</summary>\r
- public double Phase\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(PhaseProperty)));\r
- }\r
- set\r
- {\r
- this.SetValue(PhaseProperty, value);\r
- }\r
- }\r
- /// <summary>Orientation of Grating</summary>\r
- public double Orientation\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(OrientationProperty)));\r
- }\r
- set\r
- {\r
- this.SetValue(OrientationProperty, value);\r
- }\r
- }\r
- /// <summary>Half bandwidth of envelope</summary>\r
- public double Sigma\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(SigmaProperty)));\r
- }\r
- set\r
- {\r
- this.SetValue(SigmaProperty, value);\r
- }\r
- }\r
- /// <summary>Transparency of Figure</summary>\r
- public double Alpha\r
- {\r
- get\r
- {\r
- return ((double)(this.GetValue(AlphaProperty)));\r
- }\r
- set\r
- {\r
- this.SetValue(AlphaProperty, value);\r
- }\r
- }\r
- }\r
- #endregion\r
- \r
- }\r
-}
\ No newline at end of file