override protected CompontData genData(bool is_tmp_show) { CompontData base_data = base.genData(is_tmp_show); if (!base.getBaseData(base_data)) { return(null); } if (is_tmp_show) { PlaneData data_show = new PlaneData(base_data); data_show.setData(float.Parse(tb_width.Text), float.Parse(tb_depth.Text)); return(data_show); } base.getBaseData(base_data); GuassianData data; if (is_tmp_show || !is_modify_flag) { data = new GuassianData(base_data); } else { data = (GuassianData)base_data; } data.setData(float.Parse(tb_width.Text), float.Parse(tb_depth.Text), float.Parse(tb_ds.Text)); data.setGuassianData(float.Parse(tb_z0.Text), float.Parse(tb_w0.Text), float.Parse(tb_fre.Text)); data.update(); data.show_name = "Guassian"; return(data); }
public override void setData(CompontData data) { base.setData(data); this.tb_path.Text = data.param_str; this.tx_name.Text = data.show_name; return; }
public void getDataEvent(object sender, CompontData e) { if (getData != null) { getData(this, e); } }
// 修改时点击确认 public void ModifyCompont(object sender, CompontData args) { _render.RemoveViewProp(args.actor); args.actor = CompontFactory.genActor(args); _render.AddViewProp(args.actor); updateVtk(); }
public CompontData(CompontData data) { coor = data.coor; actor = data.actor; type = data.type; name = data.name; }
static public vtkProp3D genActor(CompontData data, vtkProperty pro = null) { if (pro == null) { pro = new vtkProperty(); // 默认颜色 pro.SetColor(config.default_color[0], config.default_color[1], config.default_color[2]); } if (data.type == CmpontType.PLANEMIRROR || data.type == CmpontType.PARABOLOIDMIRROR || data.type == CmpontType.HYPERNOLOIDMIRROR || data.type == CmpontType.ELLIPSOIDMIRROR) { return(genQuadricSurfaceActor(data, pro)); } else if (data.type == CmpontType.GUASSIANSOURCE) { SourceData tmp = (SourceData)data; return(genFieldActor(tmp.field)); } else if (data.type == CmpontType.RES_CYLINDER) { return(genCylinderActor(data, pro)); } else if (data.type == CmpontType.STLMIRROR) { return(genSTLActor(data, pro)); } return(null); }
static public vtkProp3D genQuadricSurfaceActor(CompontData data, vtkProperty pro) { if (data.restriction != null) { return(genActorByRestriction(data, pro)); } QuadricSurfaceData s = (QuadricSurfaceData)data; vtkQuadric quadric = vtkQuadric.New(); quadric.SetCoefficients(s.param[0], s.param[1], s.param[2], s.param[3], s.param[4], s.param[5], s.param[6], s.param[7], s.param[8], s.param[9] + 1); //二次函数采样分辨率 vtkSampleFunction sample = vtkSampleFunction.New(); sample.SetSampleDimensions(60, 60, 30); sample.SetImplicitFunction(quadric); sample.SetModelBounds(s.param[10], s.param[11], s.param[12], s.param[13], s.param[14], s.param[15]); vtkContourFilter contourFilter = vtkContourFilter.New(); contourFilter.SetInputConnection(sample.GetOutputPort()); contourFilter.GenerateValues(1, 1, 1); contourFilter.Update(); return(genUserActor(data, contourFilter.GetOutputPort(), pro)); }
private void updateLight() { foreach (var combo in _data_mananger._list_combo) { CompontData data = combo.data_list[0]; SourceData source = (SourceData)data; List <TBTfront.CompontParam> list_data = new List <TBTfront.CompontParam>(); for (int i = 1; i < combo.data_list.Count; i++) { list_data.Add(combo.data_list[i]); } // 调后台生成光线 TBTfront.Ant ant = new TBTfront.Ant(); List <RayLineCluster> cluster_list = new List <RayLineCluster>(); CalcOption opt = new CalcOption(); int res = ant.clacLight(list_data, source.rayline_cluster, cluster_list, opt); if (res != 0) { System.Windows.Forms.MessageBox.Show("claclate ray failed, res:" + res.ToString()); continue; } _render.RemoveViewProp(combo.actor); combo.actor = CompontFactory.genRayActor(cluster_list); _render.AddViewProp(combo.actor); } updateVtk(); }
public override void setData(CompontData data) { base.setData(data); Restriction pdata = (Restriction)data; //tb_focus.Text = pdata.width.ToString(); //tb_radius.Text = pdata.depth.ToString(); return; }
public SourceData(CompontData data_) : base(data_) { param = new List <double>(); for (int i = 0; i < 3; i++) { param.Add(0); } }
protected bool getBaseData(CompontData data) { data.coor.pos = new TBTfront.Vector3(); if (!getDataByText(tb_cp_x, out data.coor.pos.x)) { return(false); } if (!getDataByText(tb_cp_y, out data.coor.pos.y)) { return(false); } if (!getDataByText(tb_cp_z, out data.coor.pos.z)) { return(false); } TBTfront.Vector3 U = new TBTfront.Vector3(); if (!getDataByText(tb_u_x, out U.x)) { return(false); } if (!getDataByText(tb_u_y, out U.y)) { return(false); } if (!getDataByText(tb_u_z, out U.z)) { return(false); } TBTfront.Vector3 V = new TBTfront.Vector3(); if (!getDataByText(tb_v_x, out V.x)) { return(false); } if (!getDataByText(tb_v_y, out V.y)) { return(false); } if (!getDataByText(tb_v_z, out V.z)) { return(false); } double dot = U.Dot(V); if (Math.Abs(dot) > 0.000001) { return(false); } TBTfront.Vector3 N = U.Cross(V); tb_n_x.Text = N.x.ToString(); tb_n_y.Text = N.y.ToString(); tb_n_z.Text = N.z.ToString(); data.setUV(U, V); return(checkBaseLegal()); }
// 新建时点击确认 public void AddCompont(object sender, CompontData args) { args.actor = CompontFactory.genActor(args); int index = _data_mananger.addCompont(args); // Add the actors to the renderer, set the window size _render.AddViewProp(args.actor); updateVtk(); AddNodeTree(args); }
public override void setData(CompontData data) { base.setData(data); PlaneData pdata = (PlaneData)data; tb_focus.Text = pdata.width.ToString(); tb_radius.Text = pdata.depth.ToString(); this.tx_name.Text = pdata.show_name; return; }
//递归得到最终的owner static public CompontData getOwner(CompontData data) { if ((data.type == CmpontType.RES_CYLINDER) || (data.type == CmpontType.RES_CUBE)) { Restriction tmp = (Restriction)data; return(getOwner(tmp.owner)); } return(data); }
public override void setData(CompontData data) { base.setData(data); ParaboloidData pdata = (ParaboloidData)data; tb_focus.Text = pdata.focus.ToString(); tb_radius.Text = pdata.radius.ToString(); this.tx_name.Text = pdata.show_name; return; }
public void setRender(vtkRenderWindow renWin) { _renWin = renWin; _render = renWin.GetRenderers().GetFirstRenderer(); CompontData data = genData(true); _actor = CompontFactory.genActor(data, CompontFactory.genClickProperty()); _render.AddViewProp(_actor); _renWin.Render(); }
public GuassianData(CompontData data_) : base(data_) { param = new List <double>(); for (int i = 0; i < 6; i++) { param.Add(0); } name = "guassian"; type = CmpontType.GUASSIANSOURCE; }
public QuadricSurfaceData(CompontData data_) : base(data_) { param = new List <double>(); for (int i = 0; i < 16; i++) { param.Add(0); } name = "quadricSurface"; type = CmpontType.QUADRICSURFACE; }
public void getTmpDataEvent(object sender, CompontData e) { if (e == null) { return; } if (getTmpData != null) { getTmpData(this, e); } }
public void AddNodeTree(TreeNode father, CompontData args) { TreeNode node = new TreeNode(args.show_name); node.Tag = args; father.Nodes.Add(node); father.Expand(); _root_node.Expand(); }
public Restriction(CompontData data_) : base(data_) { param = new List <double>(); for (int i = 0; i < 4; i++) { param.Add(-1); } name = "restriction"; type = CmpontType.RES_CYLINDER; }
public override void setData(CompontData data) { base.setData(data); EllipsoidData pdata = (EllipsoidData)data; tb_a.Text = pdata.a.ToString(); tb_b.Text = pdata.b.ToString(); tb_c.Text = pdata.c.ToString(); this.tx_name.Text = pdata.show_name; return; }
public override void setData(CompontData data) { base.setData(data); HyperboloidData pdata = (HyperboloidData)data; tb_a.Text = pdata.a.ToString(); tb_b.Text = pdata.b.ToString(); tb_c.Text = pdata.c.ToString(); tb_depth.Text = pdata.depth.ToString(); this.tx_name.Text = pdata.show_name; return; }
static public vtkProp3D genSTLActor(CompontData data, vtkProperty pro) { if (data.restriction != null) { return(genActorByRestriction(data, pro)); } vtkSTLReader reader = vtkSTLReader.New(); reader.SetFileName(data.param_str); reader.Update(); return(genUserActor(data, reader.GetOutputPort(), pro)); }
static public vtkProp3D genActorByRestriction(CompontData data, vtkProperty pro) { vtkPolyDataMapper mapper = vtkPolyDataMapper.New(); mapper.SetInputConnection(calcRestriction(data)); mapper.ScalarVisibilityOff(); // The actor links the data pipeline to the rendering subsystem vtkActor actor = vtkActor.New(); actor.SetProperty(pro); actor.SetMapper(mapper); return(actor); }
private void treeView1_AfterSelect(object sender, EventArgs e) { CompontData data = null; try { data = (CompontData)treeView1.SelectedNode.Tag; } catch { } propertyGrid1.SelectedObject = data; }
public void AddRestriction(object sender, CompontData args) { Restriction tmp = (Restriction)args; tmp.owner.restriction = tmp; CompontData owner = Restriction.getOwner(tmp); _render.RemoveViewProp(owner.actor); owner.actor = CompontFactory.genActor(owner); // Add the actors to the renderer, set the window size _render.AddViewProp(owner.actor); updateVtk(); AddNodeTree(_select_node, args); }
override protected CompontData genData(bool is_tmp_show) { CompontData base_data = base.genData(is_tmp_show); if (!base.getBaseData(base_data)) { return(null); } Restriction data = new Restriction(base_data); data.setData(float.Parse(tb_focus.Text), float.Parse(tb_radius.Text)); data.setOwner(select_data); data.show_name = tx_name.Text; return(data); }
public void AddCombination(object sender, Combination args) { _data_mananger._list_combo.Add(args); TreeNode node_f = new TreeNode("combo"); node_f.Tag = args; foreach (var item in args.data_list) { TreeNode node = new TreeNode(CompontData.getNameByType(item.type)); node.Tag = item; node_f.Nodes.Add(node); } _combination_node.Nodes.Add(node_f); node_f.Expand(); _combination_node.Expand(); }
// 非线程安全 public int addCompont(CompontData data) { int index = _index_compont; _index_compont++; try { _compont_dict.Add(index, data); } catch (ArgumentException) { return(-1); } data.index = index; return(index); }