private void buttonRun_Click(object sender, EventArgs e) { if (SourceFaceIndices.Length < 1 || TargetFaceIndices.Length < 1) { MessageBox.Show("考慮したい面が選択されていません。"); return; } if (SourceCorFaceIndex < 0 || TargetCorFaceIndex < 0) { MessageBox.Show("対応面が選択されていません。"); return; } pmx = PXCBridge.GetCurrentPmx(args.Connector); try { var sourceTree = new FaceTree(SourceFaceIndices.Select(i => GetFace(i)), GetFace(SourceCorFaceIndex), pmx.Vertex); var targetTree = new FaceTree(TargetFaceIndices.Select(i => GetFace(i)), GetFace(TargetCorFaceIndex), pmx.Vertex); RecursiveRegistration( (sourceTree.Root, sourceTree.Root.GetEdge(pmx.Vertex[SourceStartEdgeVertex1Index], pmx.Vertex[SourceStartEdgeVertex2Index])), (targetTree.Root, targetTree.Root.GetEdge(pmx.Vertex[TargetStartEdgeVertex1Index], pmx.Vertex[TargetStartEdgeVertex2Index])) ); PXCBridge.UpdatePmx(args.Connector, pmx); } catch (ArgumentException) { MessageBox.Show("選択面の中に対応面が含まれていません。"); } catch (Exception ex) { Utility.ShowException(ex); } MessageBox.Show("完了しました。"); }
/// <summary> /// モデル・画面を更新します。 /// </summary> public void Update() { PXCBridge.UpdatePmx(this.conn, this.PMX); }