Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 public override void setData(CompontData data)
 {
     base.setData(data);
     this.tb_path.Text = data.param_str;
     this.tx_name.Text = data.show_name;
     return;
 }
Exemplo n.º 3
0
 public void getDataEvent(object sender, CompontData e)
 {
     if (getData != null)
     {
         getData(this, e);
     }
 }
Exemplo n.º 4
0
 // 修改时点击确认
 public void ModifyCompont(object sender, CompontData args)
 {
     _render.RemoveViewProp(args.actor);
     args.actor = CompontFactory.genActor(args);
     _render.AddViewProp(args.actor);
     updateVtk();
 }
Exemplo n.º 5
0
 public CompontData(CompontData data)
 {
     coor  = data.coor;
     actor = data.actor;
     type  = data.type;
     name  = data.name;
 }
Exemplo n.º 6
0
 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);
 }
Exemplo n.º 7
0
        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));
        }
Exemplo n.º 8
0
        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();
        }
Exemplo n.º 9
0
        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;
        }
Exemplo n.º 10
0
 public SourceData(CompontData data_)
     : base(data_)
 {
     param = new List <double>();
     for (int i = 0; i < 3; i++)
     {
         param.Add(0);
     }
 }
Exemplo n.º 11
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());
        }
Exemplo n.º 12
0
        // 新建时点击确认
        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);
        }
Exemplo n.º 13
0
        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;
        }
Exemplo n.º 14
0
 //递归得到最终的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);
 }
Exemplo n.º 15
0
        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;
        }
Exemplo n.º 16
0
        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();
        }
Exemplo n.º 17
0
 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;
 }
Exemplo n.º 18
0
 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;
 }
Exemplo n.º 19
0
 public void getTmpDataEvent(object sender, CompontData e)
 {
     if (e == null)
     {
         return;
     }
     if (getTmpData != null)
     {
         getTmpData(this, e);
     }
 }
Exemplo n.º 20
0
        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();
        }
Exemplo n.º 21
0
 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;
 }
Exemplo n.º 22
0
        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;
        }
Exemplo n.º 23
0
        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;
        }
Exemplo n.º 24
0
        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));
        }
Exemplo n.º 25
0
        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);
        }
Exemplo n.º 26
0
        private void treeView1_AfterSelect(object sender, EventArgs e)
        {
            CompontData data = null;

            try
            {
                data = (CompontData)treeView1.SelectedNode.Tag;
            }
            catch
            {
            }
            propertyGrid1.SelectedObject = data;
        }
Exemplo n.º 27
0
        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);
        }
Exemplo n.º 28
0
        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);
        }
Exemplo n.º 29
0
        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();
        }
Exemplo n.º 30
0
        // 非线程安全
        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);
        }