/// <summary> /// 修改图元的类型 /// </summary> /// <param name="index"></param> /// <param name="type"></param> public static void ChangePrimitiveType(int index, Primitive_type type) { unsafe { changePrimitiveType(index, type); } }
private void argument_TextChanged(object sender, EventArgs e) { if ((sender as TextBox).Focused) { updateType = GetCurrentNode().type; updateIndex = GetCurrentNode().index; isArgumentUpdate = true; } }
/// <summary> /// 修改图元的类型 /// </summary> /// <param name="index"></param> /// <param name="type"></param> public static bool ChangePrimitiveType(int index, Primitive_type type) { bool result = false; unsafe { result = changePrimitiveType(index, type); } return(result); }
private static extern void changePrimitive( int index, Primitive_type type, float c_x, float c_y, float c_z, float r, float g, float b, float a, float n_x, float n_y, float n_z, float radius, float p0_x, float p0_y, float p0_z, float p1_x, float p1_y, float p1_z, float p2_x, float p2_y, float p2_z );
private static extern bool changePrimitive( int index, Primitive_type type, float c_x, float c_y, float c_z, float r, float g, float b, float a, float n_x, float n_y, float n_z, float radius, float p0_x, float p0_y, float p0_z, float p1_x, float p1_y, float p1_z, float p2_x, float p2_y, float p2_z, float uv0_u, float uv0_v, float uv1_u, float uv1_v, float uv2_u, float uv2_v );
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; } } }
public PrimitiveNode(Primitive_type type, int i) { this.type = type; index = i; }
private static extern void changePrimitiveType(int index, Primitive_type type);