internal SourceEditorDialog(SourceData source)
			{
			InitializeComponent();
			DialogResult = DialogResult.Cancel;

			Text = Language.SourceEditorDialog.Text;
			labelName.Text = Language.SourceEditorDialog.LabelName;
			checkBoxEnabled.Text = Language.SourceEditorDialog.CheckBoxEnabled;
			labelSourceType.Text = Language.SourceEditorDialog.LabelSourceType;
			labelComponent.Text = Language.SourceEditorDialog.LabelComponent;
			labelCenter.Text = Language.SourceEditorDialog.LabelCenter;
			labelSize.Text = Language.SourceEditorDialog.LabelSize;
			labelAmplitude.Text = Language.SourceEditorDialog.LabelAmplitude;
			labelWavelength.Text = Language.SourceEditorDialog.LabelWavelength;
			labelStartTime.Text = Language.SourceEditorDialog.LabelStartTime;
			labelEndTime.Text = Language.SourceEditorDialog.LabelEndTime;
			labelWidth.Text = Language.SourceEditorDialog.LabelWidth;
			buttonOK.Text = Language.DialogGeneral.ButtonOK;
			buttonCancel.Text = Language.DialogGeneral.ButtonCancel;

			comboBoxSourceType.DataSource = Enum.GetValues( typeof( SourceData.SourceType ) );
			comboBoxComponent.Items.Add( MeepManager.WaveguideDesigner.Component.Ex );
			comboBoxComponent.Items.Add( MeepManager.WaveguideDesigner.Component.Ey );
			comboBoxComponent.Items.Add( MeepManager.WaveguideDesigner.Component.Ez );
			comboBoxComponent.Items.Add( MeepManager.WaveguideDesigner.Component.Hx );
			comboBoxComponent.Items.Add( MeepManager.WaveguideDesigner.Component.Hy );
			comboBoxComponent.Items.Add( MeepManager.WaveguideDesigner.Component.Hz );

			Source = new SourceData( source );
			textBoxName.DataBindings.Add( "Text", Source, "Name" );
			checkBoxEnabled.DataBindings.Add( "Enabled", Source, "Enabled" );
			comboBoxSourceType.DataBindings.Add( "SelectedItem", Source, "Type" );
			comboBoxComponent.DataBindings.Add( "SelectedItem",Source,"Component" );
			vectorEditorCenter.DataBindings.Add( "Value",Source,"Center" );
			vectorEditorSize.DataBindings.Add( "Value",Source,"Size" );
			numericUpDownAmplitude.DataBindings.Add( "Value",this, "Source_Amplitude" );
			numericUpDownWavelength.DataBindings.Add( "Value", this, "Source_Wavelength" );
			numericUpDownStartTime.DataBindings.Add( "Value",this,"Source_StartTime" );
			numericUpDownEndTime.DataBindings.Add( "Value",this,"Source_EndTime" );
			checkBoxEndTimeInfinity.DataBindings.Add( "Checked", this, "Source_IsEndTimeInfinity" );
			numericUpDownWidth.DataBindings.Add( "Value",this,"Source_Width" );
			}
		/// <summary></summary>
		/// <param name="previous"></param>
		public SourceData(SourceData previous) : base( previous )
			{
			Enabled = previous.Enabled;
			Type = previous.Type;
			Component = previous.Component;
			Center = previous.Center; ;
			Size = previous.Size;
			Amplitude = previous.Amplitude;
			Wavelength = previous.Wavelength;
			StartTime = previous.StartTime;
			EndTime = previous.EndTime;
			Width = previous.Width;
			Cutoff = previous.Cutoff;
			}
Esempio n. 3
0
		public static void MakeTestProject()
			{
			Application app = Application.SingletonInstance;
			app.OpenedProject = new WaveguideDesignerProjectData();
			app.OpenedProject.Name = "Test Project";
			ProjectManifestData manifest = new ProjectManifestData();
			manifest.SimulationRegion.Dimension = Dimension.Dim2;
			manifest.SimulationRegion.MinX = 0;
			manifest.SimulationRegion.MaxX = 15;
			manifest.SimulationRegion.MinY = -4;
			manifest.SimulationRegion.MaxY = 4;
			manifest.Resolution = 50;
			app.OpenedProject.ProjectManifest = manifest;
			app.OpenedProject.GlobalRenderSetting = new GlobalRenderSettingData();
			app.OpenedProject.GlobalStructureNumerics = new GlobalStructureNumericsData();
			app.OpenedProject.Layers.Add( new LayerData() );
			app.OpenedProject.Layers[0].Name = "Layer1";
			app.OpenedProject.Layers[0].Profile.Material = new MaterialData( MaterialData.MaterialType.Dielectric ) { Name = "material1", Index = 2, };
			RectangleCoordinateFunctionalPathData s = new RectangleCoordinateFunctionalPathData();
			s.PointNum = 100;
			s.XOffset = "0";
			s.YOffset = "1";
			s.CenterX = "15*t";
			s.CenterY = "3*sin(6*pi*t)*t";
			s.LeftWingWidth = "0.2";
			s.RightWingWidth = "0.2";
			app.OpenedProject.Layers[0].GeometricObjects.Add( s );
			s = new RectangleCoordinateFunctionalPathData();
			s.PointNum = 50;
			s.XOffset = "0";
			s.YOffset = "1";
			s.CenterX = "10*t";
			s.CenterY = "-5*t";
			s.LeftWingWidth = "0.2";
			s.RightWingWidth = "0.2*sin(10*t)";
			app.OpenedProject.Layers[0].GeometricObjects.Add( s );
			app.OpenedProject.Layers.Add( new LayerData() );
			app.OpenedProject.Layers[1].Name = "Layer2";
			app.OpenedProject.Layers[1].Profile.Material = new MaterialData( MaterialData.MaterialType.Dielectric ) { Name = "material2", Index = 3, }; ;
			app.OpenedProject.Layers[1].Profile.RenderSetting.Border = Pens.LightGreen;
			app.OpenedProject.Layers[1].Profile.RenderSetting.Fill = new HatchBrush(HatchStyle.DarkDownwardDiagonal,Color.LightGreen);
			s = new RectangleCoordinateFunctionalPathData();
			s.PointNum = 2;
			s.XOffset = "0";
			s.YOffset = "1";
			s.CenterX = "10*t";
			s.CenterY = "5*t";
			s.LeftWingWidth = "0.2";
			s.RightWingWidth = "0.2";
			app.OpenedProject.Layers[1].GeometricObjects.Add( s );

			app.OpenedProject.Layers.Add( new LayerData() );
			app.OpenedProject.Layers[2].Name = "Layer3";
			app.OpenedProject.Layers[2].Profile.Material = new MaterialData( MaterialData.MaterialType.Dielectric ) { Name = "material3", Index = 4, }; ;
			app.OpenedProject.Layers[2].Profile.RenderSetting.Border = Pens.Purple;
			app.OpenedProject.Layers[2].Profile.RenderSetting.Fill = new HatchBrush( HatchStyle.DarkDownwardDiagonal, Color.Purple );
			PolarCoordinateFunctionalPathData p = new PolarCoordinateFunctionalPathData();
			p.PointNum = 10;
			p.XOffset = "10";
			p.YOffset = "0";
			p.CenterRadius = "5*t";
			p.CenterPhase = "4*pi*t";
			p.LeftWingWidth = "0.5*t";
			p.RightWingWidth = "0.25*(1+sin(16*pi*t))";
			app.OpenedProject.Layers[2].GeometricObjects.Add( p );

			app.OpenedProject.Layers.Add( new LayerData() );
			app.OpenedProject.Layers[3].Name = "Layer4";
			app.OpenedProject.Layers[3].Profile.Material = new MaterialData( MaterialData.MaterialType.Dielectric ) { Name = "material1", Index = 2, }; ;
			app.OpenedProject.Layers[3].Profile.RenderSetting.Border = Pens.Aqua;
			app.OpenedProject.Layers[3].Profile.RenderSetting.Fill = new HatchBrush( HatchStyle.Percent05, Color.Aqua );
			p = new PolarCoordinateFunctionalPathData();
			p.PointNum = 10;
			p.XOffset = "5";
			p.YOffset = "0";
			p.CenterRadius = "1*t";
			p.CenterPhase = "-4*pi*t";
			p.LeftWingWidth = "0.5*t";
			p.RightWingWidth = "0.25*(1+sin(5*pi*t))";
			app.OpenedProject.Layers[3].GeometricObjects.Add( p );

			SourceData src = new SourceData();
			src.Name = "TestSrc";
			src.Wavelength = 1.55;
			src.Center = new Vector3( 1, 0, 0 );
			src.Size = new Vector3( 0, 0, 0 );
			src.Type = SourceData.SourceType.Continuous;
			manifest.Sources.Add( src );

			}
		private void toolStripButtonAdd_Click(object sender, EventArgs e)
			{
			ListBox box = ( sender as ToolStripButton ).Tag as ListBox;
			ProjectDataBase data = null;
			if( box == listBoxSrc ) data = new SourceData();
			else if( box == listBoxFlx ) data = new FluxAnalysisData();
			else if( box == listBoxVis ) data = new VisualizationOutputData();
			else return;
			box.Items.Add( data );
			}