示例#1
0
        public override void Run(IPXCPluginRunArgs args)
        {
            base.Run(args);
            try
            {
                //PMXファイルを操作するためにおまじない。
                this.args = args;
                this.conn = args.Connector;
                this.PMX  = PXCBridge.GetCurrentPmx(this.conn);

                //-----------------------------------------------------------ここから-----------------------------------------------------------
                //ここから処理開始
                //-----------------------------------------------------------ここから-----------------------------------------------------------

                System.Diagnostics.Process.Start("http://walogia.ucoz.club/donate.html");


                IPXPmx iPXPmx = base.m_bld.Pmx();
                iPXPmx.FromFile(System.IO.Directory.GetCurrentDirectory() + @"\_plugin\User\Scale\model\Scale by iRon0129.pmx");
                this.scale = PXCBridge.RegisterUIModel(args.Connector, iPXPmx, "不知道起什么", null, true, true);
                //-----------------------------------------------------------ここまで-----------------------------------------------------------
                //処理ここまで
                //-----------------------------------------------------------ここまで-----------------------------------------------------------
                //必要がある場合はモデル・画面を更新します。
                Thread.Sleep(10000);
                scale.Release();

                this.Update();
            }
            catch (Exception ex)
            {
                // 例外処理
                MessageBox.Show(ex.Message);
            }
        }
示例#2
0
        private void buttonGetStartTargetPoint_Click(object sender, EventArgs e)
        {
            pmx = PXCBridge.GetCurrentPmx(args.Connector);
            var selectedVertexIndices = args.Connector.GetSelectedVertexIndices();

            if (selectedVertexIndices.Length != 2)
            {
                MessageBox.Show("辺をなす2点を選択してください");
                return;
            }

            TargetStartEdgeVertex1Index = selectedVertexIndices[0];
            TargetStartEdgeVertex2Index = selectedVertexIndices[1];

            textBoxStartTargetPointID1.Text = TargetStartEdgeVertex1Index.ToString();
            textBoxStartTargetPointID2.Text = TargetStartEdgeVertex2Index.ToString();
        }
示例#3
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("完了しました。");
        }
示例#4
0
 private int[] GetSelectedFaceIndices()
 {
     pmx = PXCBridge.GetCurrentPmx(args.Connector);
     return(args.Connector.GetSelectedFaceIndices().Select(i => i / 3).Distinct().ToArray());
 }