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); } }
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(); }
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); }
private int[] GetSelectedFaceIndices() { pmx = PXCBridge.GetCurrentPmx(args.Connector); return(args.Connector.GetSelectedFaceIndices().Select(i => i / 3).Distinct().ToArray()); }