Esempio n. 1
0
        private void buttonNMLCopyNormals_Click(object sender, EventArgs e)
        {
            try
            {
                if (listViewNmlMeshes.SelectedItems.Count < 1)
                {
                    return;
                }

                List <DockContent> formAnimators;
                FormAnimator       dstFormAnim = GetFormAnimatorFromParserName(out formAnimators);
                Gui.Scripting.RunScript(EditorVar + ".CopyNormals(id=" + (int)listViewNmlMeshes.SelectedItems[0].Tag + ", dstAnimatorEditor=" + dstFormAnim.EditorVar + ", minOrMax=" + radioButtonNMLMaxNormals.Checked + ", setOrGet=" + (sender == buttonNMLGetNormals) + ")");
                Changed = true;
                LoadNml();
                if (sender == buttonNMLGetNormals)
                {
                    dstFormAnim.RecreateRenderObjects();
                }
            }
            catch (Exception ex)
            {
                Utility.ReportException(ex);
            }
        }
Esempio n. 2
0
        private void buttonNmlCompute_Click(object sender, EventArgs e)
        {
            if (listViewNmlMeshes.SelectedItems.Count == 0)
            {
                return;
            }

            buttonNmlCompute.Enabled = false;
            try
            {
                List <DockContent> formAnimators;
                FormAnimator       dstFormAnim = GetFormAnimatorFromParserName(out formAnimators);

                StringBuilder meshIds = new StringBuilder(20);
                for (int i = 0; i < listViewNmlMeshes.SelectedItems.Count; i++)
                {
                    meshIds.Append((int)listViewNmlMeshes.SelectedItems[i].Tag).Append(", ");
                }
                meshIds.Insert(0, "{ ");
                meshIds.Length -= 2;
                meshIds.Append(" }");

                StringBuilder adjAnimEditorMeshIdPairs = new StringBuilder(200);
                foreach (var form in formAnimators)
                {
                    FormAnimator formAnim = (FormAnimator)form;
                    if (formAnim.listViewMesh.SelectedItems.Count > 0)
                    {
                        for (int i = 0; i < formAnim.listViewMesh.SelectedItems.Count; i++)
                        {
                            adjAnimEditorMeshIdPairs.Append(formAnim.EditorVar).Append(", ").Append((int)formAnim.listViewMesh.SelectedItems[i].Tag).Append(", ");
                        }
                    }
                }
                if (adjAnimEditorMeshIdPairs.Length > 0)
                {
                    adjAnimEditorMeshIdPairs.Insert(0, "{ ");
                    adjAnimEditorMeshIdPairs.Length -= 2;
                    adjAnimEditorMeshIdPairs.Append(" }");
                }
                else
                {
                    adjAnimEditorMeshIdPairs.Append("null");
                }

                if (comboBoxSourceNmlMonoBehaviour.SelectedIndex <= 0 || comboBoxSourceAnimator.SelectedIndex <= 0)
                {
                    Gui.Scripting.RunScript(EditorVar + ".ComputeMinMaxNormals(nmlMeshIds=" + meshIds + ", dstAnimatorEditor=" + dstFormAnim.EditorVar + ", adjacentAnimatorEditorMeshIdPairs=" + adjAnimEditorMeshIdPairs + ", adjacentSquaredDistance=" + numericUpDownNmlAdjacentDistanceSquared.Value + ", worldCoordinates=" + checkBoxNmlWorldCoordinates.Checked + ")");
                }
                else
                {
                    Tuple <string, string> itemNml  = (Tuple <string, string>)comboBoxSourceNmlMonoBehaviour.SelectedItem;
                    Tuple <string, int>    itemMesh = (Tuple <string, int>)comboBoxSourceMesh.SelectedItem;
                    Tuple <string, string> itemAnim = (Tuple <string, string>)comboBoxSourceAnimator.SelectedItem;
                    Gui.Scripting.RunScript(EditorVar + ".ComputeMinMaxNormals(nmlMeshIds=" + meshIds + ", dstAnimatorEditor=" + dstFormAnim.EditorVar + ", srcNmlParser=" + itemNml.Item2 + ", srcNmlMeshId=" + itemMesh.Item2 + ", srcAnimatorEditor=" + itemAnim.Item2 + ", adjacentAnimatorEditorMeshIdPairs=" + adjAnimEditorMeshIdPairs + ", adjacentSquaredDistance=" + numericUpDownNmlAdjacentDistanceSquared.Value + ", worldCoordinates=" + checkBoxNmlWorldCoordinates.Checked + ")");
                }

                listViewNmlMeshes.Focus();
                LoadNml();
                Changed = Changed;
                foreach (var form in formAnimators)
                {
                    FormAnimator formAnim = (FormAnimator)form;
                    if (formAnim.listViewMesh.SelectedItems.Count > 0 && formAnim.Changed)
                    {
                        formAnim.Changed = formAnim.Changed;
                        formAnim.RecreateRenderObjects();
                    }
                }
            }
            catch (Exception ex)
            {
                Utility.ReportException(ex);
            }
            finally
            {
                buttonNmlCompute.Enabled = true;
            }
        }