Esempio n. 1
0
        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("完了しました。");
        }
Esempio n. 2
0
 /// <summary>
 /// モデル・画面を更新します。
 /// </summary>
 public void Update()
 {
     PXCBridge.UpdatePmx(this.conn, this.PMX);
 }