/// <summary>コピーコンストラクタ。</summary> /// <param name="previous"></param> public ProjectManifestData(ProjectManifestData previous) { ManifestVisualizingLayer = new VirtualLayer(); _SimulationRegion = new SimulationRegionData(previous.SimulationRegion); SimulationTime = previous.SimulationTime; Resolution = previous.Resolution; _BackgroundMaterial = new MaterialData(previous.BackgroundMaterial); Sources = new ProjectList <SourceData>(); foreach (SourceData src in previous.Sources) { Sources.Add(src.MakeDeepCopy()); } FluxAnalyses = new ProjectList <FluxAnalysisData>(previous.FluxAnalyses); foreach (FluxAnalysisData flx in previous.FluxAnalyses) { FluxAnalyses.Add(new FluxAnalysisData(flx)); } VisualizationOutputs = new ProjectList <VisualizationOutputData>(previous.VisualizationOutputs); foreach (VisualizationOutputData vis in previous.VisualizationOutputs) { VisualizationOutputs.Add(new VisualizationOutputData(vis)); } ManifestVisualizingLayer.Shapes.AddRange(SimulationRegion.Shapes); SimulationRegion.Parent = this; BackgroundMaterial.Parent = this; }
/// <summary>コピーコンストラクタ。</summary> /// <param name="previous"></param> public WaveguideDesignerProjectData(WaveguideDesignerProjectData previous) : base(previous) { VirtualGraphics = new VirtualGraphics(); Layers = new LayerList(previous.Layers); Materials = new MaterialList(previous.Materials); ProjectManifest = new ProjectManifestData(previous.ProjectManifest); GlobalRenderingSetting = new GlobalRenderingSettingData(previous.GlobalRenderingSetting); GlobalStructureNumerics = new GlobalStructureNumericsData(previous.GlobalStructureNumerics); _Projects.Add(this); }
/// <summary>デフォルトコンストラクタ。</summary> public WaveguideDesignerProjectData() { VirtualGraphics = new VirtualGraphics(); Name = "New Project"; Layers = new LayerList(); Materials = new MaterialList(); ProjectManifest = new ProjectManifestData(); GlobalRenderingSetting = new GlobalRenderingSettingData(); GlobalStructureNumerics = new GlobalStructureNumericsData(); _Projects.Add(this); }
/// <summary>コピーコンストラクタ。</summary> /// <param name="previous"></param> public ProjectManifestData(ProjectManifestData previous) { ManifestVisualizingLayer = new VirtualLayer(); _SimulationRegion = new SimulationRegionData( previous.SimulationRegion ); SimulationTime = previous.SimulationTime; Resolution = previous.Resolution; _BackgroundMaterial = new MaterialData( previous.BackgroundMaterial ); Sources = new ProjectList<SourceData>(); foreach( SourceData src in previous.Sources ) Sources.Add( src.MakeDeepCopy() ); FluxAnalyses = new ProjectList<FluxAnalysisData>( previous.FluxAnalyses ); foreach( FluxAnalysisData flx in previous.FluxAnalyses ) FluxAnalyses.Add( new FluxAnalysisData( flx ) ); VisualizationOutputs = new ProjectList<VisualizationOutputData>( previous.VisualizationOutputs ); foreach( VisualizationOutputData vis in previous.VisualizationOutputs ) VisualizationOutputs.Add( new VisualizationOutputData( vis ) ); ManifestVisualizingLayer.Shapes.AddRange( SimulationRegion.Shapes ); SimulationRegion.Parent = this; BackgroundMaterial.Parent = this; }
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 ); }
/// <summary>コピーコンストラクタ。</summary> /// <param name="previous"></param> public WaveguideDesignerProjectData(WaveguideDesignerProjectData previous) : base( previous ) { VirtualGraphics = new VirtualGraphics(); Layers = new LayerList( previous.Layers ); Materials = new MaterialList( previous.Materials ); ProjectManifest = new ProjectManifestData( previous.ProjectManifest ); GlobalRenderingSetting = new GlobalRenderingSettingData( previous.GlobalRenderingSetting ); GlobalStructureNumerics = new GlobalStructureNumericsData( previous.GlobalStructureNumerics ); _Projects.Add( this ); }
/// <summary>デフォルトコンストラクタ。</summary> public WaveguideDesignerProjectData() { VirtualGraphics = new VirtualGraphics(); Name = "New Project"; Layers = new LayerList(); Materials = new MaterialList(); ProjectManifest = new ProjectManifestData(); GlobalRenderingSetting = new GlobalRenderingSettingData(); GlobalStructureNumerics = new GlobalStructureNumericsData(); _Projects.Add( this ); }