Example #1
0
 /// <summary>コピーコンストラクタ。</summary>
 /// <param name="previous"></param>
 public RectangleCoordinateFunctionalPathData(RectangleCoordinateFunctionalPathData previous)
     : base(previous)
 {
     VirtualShape             = new VirtualPolygon();
     CenterX                  = previous.CenterX;
     CenterX_LastValid        = previous.CenterX_LastValid;
     CenterY                  = previous.CenterY;
     CenterY_LastValid        = previous.CenterY_LastValid;
     LeftWingWidth            = previous.LeftWingWidth;
     LeftWingWidth_LastValid  = previous.LeftWingWidth_LastValid;
     RightWingWidth           = previous.RightWingWidth;
     RightWingWidth_LastValid = previous.RightWingWidth_LastValid;
 }
		/// <summary>コピーコンストラクタ。</summary>
		/// <param name="previous"></param>
		public RectangleCoordinateFunctionalPathData(RectangleCoordinateFunctionalPathData previous)
			: base( previous )
			{
			VirtualShape = new VirtualPolygon();
			CenterX = previous.CenterX;
			CenterX_LastValid = previous.CenterX_LastValid;
			CenterY = previous.CenterY;
			CenterY_LastValid = previous.CenterY_LastValid;
			LeftWingWidth = previous.LeftWingWidth;
			LeftWingWidth_LastValid = previous.LeftWingWidth_LastValid;
			RightWingWidth = previous.RightWingWidth;
			RightWingWidth_LastValid = previous.RightWingWidth_LastValid;
			}
		private RectangleCoordinateFunctionalPathData _AddRectangleCoordinateFunctionalPathObject()
			{
			RectangleCoordinateFunctionalPathData res = new RectangleCoordinateFunctionalPathData();
			AddGeometricObject( res );
			return res;
			}
		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 );

			}