public void AddShpere( ) { if (scenePanel_sceneList.InvokeRequired) { Add a = new Add(AddShpere); this.Invoke(a); } else { int index = scene.AddSphere(); if (index == -1) { MessageBox.Show("添加失败"); return; } PrimitiveNode p = new PrimitiveNode(Primitive_type.Sphere, index); p.Text = "sphere" + sphereIndex; scenePanel_sceneList.TopNode.Nodes.Add(p); scenePanel_sceneList.ExpandAll(); ++sphereIndex; } }
public void RefreshTransormPanel() { if (argumentFocus) { return; } if (scenePanel_sceneList.InvokeRequired) { RefreshTransform r = new RefreshTransform(RefreshTransormPanel); this.Invoke(r); } else { PrimitiveNode pn = GetCurrentNode(); if (pn == null || pn.Parent == null) { return; } int index = pn.index; Primitive_type p = pn.type; //因为目前primitive类型较少,所以我在这里用了primitive,以后不一定,也许会用字典,也许会用其他的 switch (p) { case Primitive_type.Default: break; case Primitive_type.Sphere: argumentPanel_transformPanelSphere.Visible = true; argumentPanel_transformPanelPlane.Visible = false; argumentPanel_transformPanelTriangle.Visible = false; RefreshSphereArgument(index); break; case Primitive_type.Triangle: argumentPanel_transformPanelSphere.Visible = false; argumentPanel_transformPanelPlane.Visible = false; argumentPanel_transformPanelTriangle.Visible = true; RefreshTriangleArgument(index); break; case Primitive_type.Plane: argumentPanel_transformPanelSphere.Visible = false; argumentPanel_transformPanelPlane.Visible = true; argumentPanel_transformPanelTriangle.Visible = false; RefreshPlaneArgument(index); break; } } }