public override void RenderGUI(Rect area, bool isEditable)
        {
            GUILayout.BeginArea(area);

            RenderTitle(isEditable, true, false);

            scroller_ = EditorGUILayout.BeginScrollView(scroller_);

            EditorGUI.BeginDisabledGroup(!isEditable);

            RenderFieldObjects("Attentive Nodes", FieldController, true, false, CNFieldWindow.Type.extended);

            EditorGUILayout.Space();
            CRGUIUtils.DrawSeparator();
            CRGUIUtils.Splitter();

            EditorGUILayout.Space();
            DrawTimer();

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            EditorGUI.EndDisabledGroup();

            EditorGUILayout.EndScrollView();

            GUILayout.EndArea();
        }
Beispiel #2
0
        public override void RenderGUI(Rect area, bool isEditable)
        {
            GUILayout.BeginArea(area);

            RenderTitle(isEditable, false, false);

            EditorGUI.BeginDisabledGroup(!isEditable);
            RenderFieldObjects("Objects", FieldController, true, true, CNFieldWindow.Type.normal);

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Weld", GUILayout.Height(30f)))
            {
                Weld();
            }
            if (GUILayout.Button("Save asset...", GUILayout.Height(30f), GUILayout.Width(100f)))
            {
                SaveWeldResult();
            }
            EditorGUILayout.EndHorizontal();

            EditorGUI.EndDisabledGroup();
            CRGUIUtils.DrawSeparator();

            scroller_ = EditorGUILayout.BeginScrollView(scroller_);

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            float originalLabelwidth = EditorGUIUtility.labelWidth;

            EditorGUIUtility.labelWidth = 200f;

            CRGUIUtils.Splitter();
            GUIStyle centerLabel = new GUIStyle(EditorStyles.largeLabel);

            centerLabel.alignment = TextAnchor.MiddleCenter;
            centerLabel.fontStyle = FontStyle.Bold;
            EditorGUILayout.LabelField("Output", centerLabel);

            EditorGUI.BeginDisabledGroup(Data.WeldGameObject == null);

            EditorGUILayout.Space();

            if (GUILayout.Button("Select welded object"))
            {
                Selection.activeGameObject = Data.WeldGameObject;
            }
            EditorGUILayout.Space();

            EditorGUI.EndDisabledGroup();

            EditorGUIUtility.labelWidth = originalLabelwidth;

            EditorGUILayout.EndScrollView();

            GUILayout.EndArea();
        } // RenderGUI
Beispiel #3
0
        public override void RenderGUI(Rect area, bool isEditable)
        {
            GUILayout.BeginArea(area);

            RenderTitle(isEditable, true, false);

            EditorGUI.BeginDisabledGroup(!isEditable);
            RenderFieldObjects("Bodies", FieldController, true, true, CNFieldWindow.Type.extended);

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            CRGUIUtils.DrawSeparator();
            CRGUIUtils.Splitter();

            EditorGUILayout.Space();
            EditorGUILayout.Space();
            bool currentMode = EditorGUIUtility.wideMode;

            EditorGUIUtility.wideMode = true;
            DrawTimer();
            EditorGUILayout.Space();
            DrawGravity();
            EditorGUIUtility.wideMode = currentMode;

            EditorGUILayout.Space();
            EditorGUI.EndDisabledGroup();
            GUILayout.EndArea();
        }
Beispiel #4
0
        public override void RenderGUI(Rect area, bool isEditable)
        {
            GUILayout.BeginArea(area);

            RenderTitle(isEditable);

            EditorGUILayout.Space();
            float originalLabelwidth = EditorGUIUtility.labelWidth;

            EditorGUIUtility.labelWidth = 100f;

            EditorGUI.BeginDisabledGroup(!isEditable);
            EditorGUI.BeginChangeCheck();
            selectedScopeIdx_ = EditorGUILayout.Popup("Effect Scope", selectedScopeIdx_, scopeStrings);
            if (EditorGUI.EndChangeCheck())
            {
                ChangeScope((CNGroup.CARONTEFX_SCOPE)selectedScopeIdx_);
            }

            EditorGUI.EndDisabledGroup();
            EditorGUILayout.Space();
            EditorGUILayout.Space();
            if (GUILayout.Button(new GUIContent("Select scope GameObjects"), GUILayout.Height(30f)))
            {
                SceneSelection();
            }
            EditorGUIUtility.labelWidth = originalLabelwidth;

            CRGUIUtils.DrawSeparator();
            CRGUIUtils.Splitter();
            DrawEffectGUIWindow(isEditable);

            GUILayout.EndArea();
        }
Beispiel #5
0
        //-----------------------------------------------------------------------------------
        public override void RenderGUI(Rect area, bool isEditable)
        {
            GUILayout.BeginArea(area);

            RenderTitle(isEditable);

            EditorGUI.BeginDisabledGroup(!isEditable);
            {
                RenderFieldObjects("ObjectsA", FieldControllerA, true, true, CNFieldWindow.Type.extended);
                RenderFieldObjects("ObjectsB", FieldControllerB, true, true, CNFieldWindow.Type.extended);

                EditorGUILayout.Space();
                EditorGUILayout.Space();

                if (GUILayout.Button(Data.NeedsUpdate ? "Create/Recreate(*)" : "Create/Recreate", GUILayout.Height(30f)))
                {
                    RecreateEntities();
                }
            }
            EditorGUI.EndDisabledGroup();

            CRGUIUtils.DrawSeparator();
            CRGUIUtils.Splitter();

            scroller_ = EditorGUILayout.BeginScrollView(scroller_);

            float originalLabelwidth = EditorGUIUtility.labelWidth;

            EditorGUIUtility.labelWidth = 200f;
            bool currentMode = EditorGUIUtility.wideMode;

            EditorGUIUtility.wideMode = true;

            EditorGUI.BeginDisabledGroup(!isEditable);

            EditorGUILayout.Space();
            EditorGUILayout.Space();
            EditorGUI.BeginChangeCheck();
            RenderCreationParams();
            if (EditorGUI.EndChangeCheck() && eManager.IsServosCreated(Data))
            {
                DestroyEntities();
            }

            CRGUIUtils.Splitter();
            EditorGUILayout.Space();

            RenderEditParams();

            EditorGUIUtility.labelWidth = originalLabelwidth;
            EditorGUIUtility.wideMode   = currentMode;

            EditorGUI.EndDisabledGroup();
            EditorGUILayout.EndScrollView();
            GUILayout.EndArea();
        } // RenderGUI
Beispiel #6
0
        //----------------------------------------------------------------------------------
        protected override void RenderFieldsBody(bool isEditable)
        {
            EditorGUILayout.Space();
            EditorGUILayout.Space();

            CRGUIUtils.DrawSeparator();
            CRGUIUtils.Splitter();

            float originalLabelWidth = EditorGUIUtility.labelWidth;

            EditorGUIUtility.labelWidth = label_width;

            scroller_ = EditorGUILayout.BeginScrollView(scroller_);
            EditorGUI.BeginDisabledGroup(!isEditable);
            EditorGUILayout.Space();

            DrawDoCollide();
            EditorGUILayout.Space();

            EditorGUILayout.Space();
            EditorGUILayout.Space();
            DrawAnimationClip();
            EditorGUILayout.Space();
            EditorGUILayout.Space();

            DrawTimeStart();

            GUILayout.BeginHorizontal();
            DrawTimeLength();
            DrawTimeLengthReset();
            GUILayout.EndHorizontal();
            EditorGUILayout.Space();

            CRGUIUtils.Splitter();
            EditorGUILayout.Space();
            EditorGUILayout.Space();

            DrawRestitution();
            DrawFrictionKinetic();

            GUILayout.BeginHorizontal();
            EditorGUI.BeginDisabledGroup(Data.FromKinetic);
            DrawFrictionStatic();
            EditorGUI.EndDisabledGroup();
            DrawFrictionStaticFromKinetic();
            GUILayout.EndHorizontal();

            EditorGUIUtility.labelWidth = originalLabelWidth;

            EditorGUI.EndDisabledGroup();
            EditorGUILayout.EndScrollView();
        }
        //----------------------------------------------------------------------------------
        public override void RenderGUI(Rect area, bool isEditable)
        {
            GUILayout.BeginArea(area);

            RenderTitle(isEditable);

            EditorGUI.BeginDisabledGroup(!isEditable);
            RenderFieldObjects("Scope", FieldController, true, true, CNFieldWindow.Type.normal);
            EditorGUI.EndDisabledGroup();

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            CRGUIUtils.DrawSeparator();
            CRGUIUtils.Splitter();

            EditorGUILayout.Space();
            GUILayout.EndArea();
        }
        //----------------------------------------------------------------------------------
        public override void RenderGUI(Rect area, bool isEditable)
        {
            GUILayout.BeginArea(area);

            RenderTitle(isEditable, true, false);

            EditorGUI.BeginDisabledGroup(!isEditable);

            RenderFieldObjects("Bodies", FieldController, true, true, CNFieldWindow.Type.extended);

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            CRGUIUtils.DrawSeparator();
            CRGUIUtils.Splitter();

            scroller_ = EditorGUILayout.BeginScrollView(scroller_);

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            Data.Timer        = EditorGUILayout.FloatField("Timer (s)", Data.Timer);
            Data.TimeDuration = EditorGUILayout.FloatField("Duration (s)", Data.TimeDuration);

            EditorGUILayout.Space();

            Data.Multiplier_r = EditorGUILayout.FloatField("Position multiplier", Data.Multiplier_r);
            Data.Multiplier_q = EditorGUILayout.FloatField("Rotation multiplier", Data.Multiplier_q);

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            RenderFieldObjects("Target objects", FieldControllerAimGameObjects, true, false, CNFieldWindow.Type.normal);

            EditorGUI.EndDisabledGroup();

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            EditorGUILayout.EndScrollView();

            GUILayout.EndArea();
        }
        public override void RenderGUI(Rect area, bool isEditable)
        {
            GUILayout.BeginArea(area);

            RenderTitle(isEditable, false, false);

            EditorGUI.BeginDisabledGroup(!isEditable);
            RenderFieldObjects("Objects", FieldController, true, true, CNFieldWindow.Type.normal);

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            if (GUILayout.Button("Select", GUILayout.Height(30f)))
            {
                ClassifySelection();
            }

            EditorGUI.EndDisabledGroup();
            CRGUIUtils.DrawSeparator();

            scroller_ = EditorGUILayout.BeginScrollView(scroller_);

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            float originalLabelwidth = EditorGUIUtility.labelWidth;

            EditorGUIUtility.labelWidth = 200f;

            DrawSelectorGO();
            DrawSelectionMode();
            DrawComplementarySelection();

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            EditorGUIUtility.labelWidth = originalLabelwidth;

            EditorGUILayout.EndScrollView();

            GUILayout.EndArea();
        } // RenderGUI
Beispiel #10
0
        //----------------------------------------------------------------------------------
        public override void RenderGUI(Rect area, bool isEditable)
        {
            GUILayout.BeginArea(area);

            RenderTitle(isEditable, true, false);

            EditorGUI.BeginDisabledGroup(!isEditable);
            RenderFieldObjects("Bodies", FieldController, true, true, CNFieldWindow.Type.extended);
            RenderFieldObjects("Locators", FieldControllerLocators, true, true, CNFieldWindow.Type.normal);

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            CRGUIUtils.DrawSeparator();
            CRGUIUtils.Splitter();

            EditorGUILayout.Space();
            EditorGUILayout.Space();
            bool currentMode = EditorGUIUtility.wideMode;

            EditorGUIUtility.wideMode = true;
            DrawTimer();
            EditorGUILayout.Space();
            DrawForce();
            DrawSpeedLimit();
            EditorGUILayout.Space();
            DrawForceDeltaMax();
            DrawAngleDeltaMax();
            EditorGUILayout.Space();
            DrawPeriodTime();
            DrawPeriodSpace();
            EditorGUIUtility.wideMode = currentMode;

            EditorGUILayout.Space();
            EditorGUI.EndDisabledGroup();
            GUILayout.EndArea();
        }
Beispiel #11
0
        //-----------------------------------------------------------------------------------
        public override void RenderGUI(Rect area, bool isEditable)
        {
            GUILayout.BeginArea(area);

            RenderTitle(isEditable, true, true, true);

            EditorGUI.BeginDisabledGroup(!isEditable);
            {
                RenderFieldObjects("ObjectsA", FieldControllerA, true, true, CNFieldWindow.Type.extended);
                RenderFieldObjects("ObjectsB", FieldControllerB, true, true, CNFieldWindow.Type.extended);

                EditorGUILayout.Space();
                EditorGUILayout.Space();

                if (GUILayout.Button(Data.NeedsUpdate ? "Create/Recreate(*)" : "Create/Recreate", GUILayout.Height(30f)))
                {
                    RecreateEntities();
                }
            }
            EditorGUI.EndDisabledGroup();

            CRGUIUtils.DrawSeparator();
            CRGUIUtils.Splitter();

            scroller_ = EditorGUILayout.BeginScrollView(scroller_);

            float originalLabelwidth = EditorGUIUtility.labelWidth;

            EditorGUIUtility.labelWidth = 200f;

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            EditorGUI.BeginDisabledGroup(!isEditable);
            {
                EditorGUI.BeginChangeCheck();
                {
                    RenderCreationParams();
                }
                if (EditorGUI.EndChangeCheck() && eManager.IsMultiJointCreated(Data))
                {
                    DestroyEntities();
                }

                EditorGUILayout.Space();

                CRGUIUtils.Splitter();
                EditorGUILayout.Space();

                //FORCES
                EditorGUI.BeginChangeCheck();
                EditorGUILayout.BeginHorizontal();
                EditorGUI.BeginDisabledGroup(MaximumForce);
                DrawForceMax();
                EditorGUI.EndDisabledGroup();
                DrawMaximumForce();
                EditorGUILayout.EndHorizontal();
                EditorGUI.BeginDisabledGroup(MaximumForce);
                DrawForceMaxRand();
                DrawForceRange();
                DrawForceProfile();
                EditorGUI.EndDisabledGroup();
            }
            EditorGUI.EndDisabledGroup();

            CRGUIUtils.Splitter();
            EditorGUILayout.Space();

            //BREAK
            EditorGUILayout.BeginHorizontal();
            Data.BreakFoldout = EditorGUILayout.Foldout(Data.BreakFoldout, "Break if distance exceeded");

            EditorGUI.BeginDisabledGroup(!isEditable);
            {
                GUILayout.Space(145f);
                DrawBreakIfDistanceExceeded();
                GUILayout.FlexibleSpace();
                EditorGUILayout.EndHorizontal();
                {
                    if (Data.BreakFoldout)
                    {
                        EditorGUILayout.Space();
                        EditorGUI.BeginDisabledGroup(!Data.BreakIfDistExcedeed);
                        DrawDistanceForBreak();
                        DrawDistanceForBreakRand();
                        EditorGUI.EndDisabledGroup();
                        DrawEnableCollisionIfBreak();
                    }
                }
            }
            EditorGUI.EndDisabledGroup();

            CRGUIUtils.Splitter();
            EditorGUILayout.Space();

            //PLASTICITY
            EditorGUILayout.BeginHorizontal();
            Data.PlasticityFoldout = EditorGUILayout.Foldout(Data.PlasticityFoldout, "Plasticity");

            EditorGUI.BeginDisabledGroup(!isEditable);
            {
                GUILayout.Space(145f);
                DrawPlasticity();
                GUILayout.FlexibleSpace();
                EditorGUILayout.EndHorizontal();

                if (Data.PlasticityFoldout)
                {
                    EditorGUILayout.Space();

                    EditorGUI.BeginDisabledGroup(!Data.Plasticity);
                    DrawDistanceForPlasticity();
                    DrawDistanceForPlasticityRand();
                    DrawPlasticityRateAcquired();
                    EditorGUI.EndDisabledGroup();
                }
            }
            EditorGUI.EndDisabledGroup();

            CRGUIUtils.Splitter();
            EditorGUIUtility.labelWidth = originalLabelwidth;

            EditorGUILayout.EndScrollView();
            GUILayout.EndArea();
        } // RenderGUI
Beispiel #12
0
        //-----------------------------------------------------------------------------------
        protected override void RenderFieldsBody(bool isEditable)
        {
            EditorGUILayout.Space();
            EditorGUILayout.Space();

            CRGUIUtils.DrawSeparator();
            CRGUIUtils.Splitter();

            float originalLabelWidth = EditorGUIUtility.labelWidth;

            EditorGUIUtility.labelWidth = label_width;

            scroller_ = EditorGUILayout.BeginScrollView(scroller_);
            EditorGUI.BeginDisabledGroup(!isEditable);
            EditorGUILayout.Space();
            DrawDoCollide();
            EditorGUILayout.Space();

            EditorGUI.BeginDisabledGroup(!Data.IsFiniteMass);
            DrawGUIMassOptions();
            EditorGUI.EndDisabledGroup();

            GUILayout.Space(simple_space);

            DrawRestitution();
            DrawFrictionKinetic();

            GUILayout.BeginHorizontal();
            EditorGUI.BeginDisabledGroup(Data.FromKinetic);
            DrawFrictionStatic();
            EditorGUI.EndDisabledGroup();
            DrawFrictionStaticFromKinetic();
            GUILayout.EndHorizontal();

            EditorGUI.BeginDisabledGroup(!Data.IsFiniteMass);

            GUILayout.Space(simple_space);
            DrawDampingPerSecondWorld();
            GUILayout.Space(simple_space);

            bool currentMode = EditorGUIUtility.wideMode;

            EditorGUIUtility.wideMode = true;

            EditorGUI.EndDisabledGroup();

            DrawLinearVelocity();
            DrawAngularVelocity();

            EditorGUILayout.Space();
            CRGUIUtils.Splitter();
            EditorGUILayout.Space();

            DrawExplosionOpacity();

            EditorGUI.BeginDisabledGroup(!Data.IsFiniteMass);
            DrawExplosionResponsiveness();
            EditorGUI.EndDisabledGroup();

            EditorGUIUtility.labelWidth = originalLabelWidth;
            EditorGUIUtility.wideMode   = currentMode;

            EditorGUILayout.Space();
            EditorGUI.EndDisabledGroup();

            EditorGUILayout.EndScrollView();
        }
        public override void RenderGUI(Rect area, bool isEditable)
        {
            GUILayout.BeginArea(area);

            RenderTitle(isEditable, false, false);

            EditorGUI.BeginDisabledGroup(!isEditable);

            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Create helper mesh", GUILayout.Height(30f)))
            {
                CreateHelperMesh();
            }

            if (GUILayout.Button("Save asset...", GUILayout.Height(30f), GUILayout.Width(100f)))
            {
                SaveAssets();
            }
            EditorGUILayout.EndHorizontal();

            EditorGUI.EndDisabledGroup();
            CRGUIUtils.DrawSeparator();

            scroller_ = EditorGUILayout.BeginScrollView(scroller_);

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            float originalLabelwidth = EditorGUIUtility.labelWidth;

            EditorGUIUtility.labelWidth = 200f;

            DrawRandomSeed();
            DrawResolution();
            DrawNBumps();
            DrawRadiusMin();
            DrawRadiusMax();

            CRGUIUtils.Splitter();
            GUIStyle centerLabel = new GUIStyle(EditorStyles.largeLabel);

            centerLabel.alignment = TextAnchor.MiddleCenter;
            centerLabel.fontStyle = FontStyle.Bold;
            EditorGUILayout.LabelField("Output", centerLabel);

            EditorGUI.BeginDisabledGroup(Data.HelperGO == null);

            EditorGUILayout.Space();

            if (GUILayout.Button("Select helper object"))
            {
                Selection.activeGameObject = Data.HelperGO;
            }
            EditorGUILayout.Space();

            EditorGUI.EndDisabledGroup();

            EditorGUIUtility.labelWidth = originalLabelwidth;

            EditorGUILayout.EndScrollView();

            GUILayout.EndArea();
        } // RenderGUI
        public override void RenderGUI(Rect area, bool isEditable)
        {
            GUILayout.BeginArea(area);

            RenderTitle(isEditable, false, false);

            EditorGUI.BeginDisabledGroup(!isEditable);
            RenderFieldObjects("Objects", FieldController, true, true, CNFieldWindow.Type.normal);

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Chop", GUILayout.Height(30f)))
            {
                Chop();
            }

            if (GUILayout.Button("Save assets..", GUILayout.Height(30f), GUILayout.Width(100f)))
            {
                SaveChopResult();
            }

            EditorGUILayout.EndHorizontal();

            EditorGUI.EndDisabledGroup();
            CRGUIUtils.DrawSeparator();
            CRGUIUtils.Splitter();

            tabIndex_ = GUILayout.SelectionGrid(tabIndex_, tabNames_, 2);
            CRGUIUtils.Splitter();

            scroller_ = EditorGUILayout.BeginScrollView(scroller_);

            if (tabIndex_ == 1)
            {
                EditorGUILayout.LabelField("Last chop input objects " + Data.InputObjects);
                EditorGUILayout.LabelField("Last chop input vertices: " + Data.InputVertices);
                EditorGUILayout.LabelField("Last chop input triangles: " + Data.InputTriangles);

                EditorGUILayout.Space();

                EditorGUILayout.LabelField("Last chop output pieces: " + Data.OutputPieces);
                EditorGUILayout.LabelField("Last chop output vertices: " + Data.OutputVertices);
                EditorGUILayout.LabelField("Last chop output triangles: " + Data.OutputTriangles);
            }
            else
            {
                EditorGUI.BeginDisabledGroup(!isEditable);

                float originalLabelwidth = EditorGUIUtility.labelWidth;
                EditorGUIUtility.labelWidth = 200f;

                EditorGUILayout.Space();

                switch (Data.ChopMode)
                {
                case CNFracture.CHOP_MODE.VORONOI_UNIFORM:
                    DrawGUIUniform();
                    break;

                case CNFracture.CHOP_MODE.VORONOI_BY_GEOMETRY:
                    DrawGUIGeometry();
                    break;

                case CNFracture.CHOP_MODE.VORONOI_RADIAL:
                    DrawGUIRadial();
                    break;
                }

                EditorGUILayout.Space();
                CRGUIUtils.Splitter();
                EditorGUILayout.Space();

                DrawCropGeometry();
                DrawCropMode();
                DrawWeldInOne();

                CRGUIUtils.Splitter();

                GUIStyle centerLabel = new GUIStyle(EditorStyles.largeLabel);
                centerLabel.alignment = TextAnchor.MiddleCenter;
                centerLabel.fontStyle = FontStyle.Bold;
                EditorGUILayout.LabelField("Output", centerLabel);

                EditorGUI.BeginDisabledGroup(Data.GameObjectChoppedRoot == null);
                EditorGUI.BeginChangeCheck();

                EditorGUILayout.Space();

                if (GUILayout.Button("Select pieces"))
                {
                    Selection.activeGameObject = Data.GameObjectChoppedRoot;
                }

                DrawPushRate();
                DrawPushMultiplier();
                ValidateState();

                EditorGUI.EndDisabledGroup();

                EditorGUIUtility.labelWidth = originalLabelwidth;

                EditorGUI.EndDisabledGroup();
            }

            EditorGUILayout.EndScrollView();
            GUILayout.EndArea();
        }
        void OnGUI()
        {
            Rect nodesArea    = new Rect(5, 5, width - 10, ((height - 10) * 0.70f));
            Rect nodesAreaBox = new Rect(nodesArea.xMin, nodesArea.yMin, nodesArea.width + 1, nodesArea.height + 1);

            GUI.Box(nodesAreaBox, "");

            GUILayout.BeginArea(nodesArea);
            GUILayout.BeginHorizontal();

            GUIStyle styleTitle = new GUIStyle(GUI.skin.label);

            styleTitle.fontStyle = FontStyle.Bold;

            GUILayout.Label("Nodes to bake:", styleTitle);
            GUILayout.EndHorizontal();

            CRGUIUtils.DrawSeparator();

            GUILayout.BeginHorizontal();

            int bodyNodeCount = listBodyNode_.Count;

            EditorGUILayout.BeginHorizontal();
            DrawToggleMixed(bodyNodeCount);
            Rect rect = GUILayoutUtility.GetLastRect();

            GUILayout.Space(65f);
            EditorGUILayout.EndHorizontal();
            GUILayout.FlexibleSpace();

            GUILayout.EndHorizontal();

            Rect boxRect = new Rect(nodesAreaBox.xMin - 5f, rect.yMax, nodesAreaBox.width, (nodesAreaBox.yMax - rect.yMax) + 1f);

            GUI.Box(boxRect, "");

            scroller_ = GUILayout.BeginScrollView(scroller_);

            for (int i = 0; i < bodyNodeCount; i++)
            {
                CNBody bodyNode = listBodyNode_[i];
                string name     = bodyNode.Name;
                bitArrNeedsBaking_[i] = EditorGUILayout.ToggleLeft(name, bitArrNeedsBaking_[i], GUILayout.Width(250f));
            }

            EditorGUILayout.EndScrollView();

            GUILayout.EndArea();
            GUILayout.FlexibleSpace();

            Rect optionsArea = new Rect(5f, nodesArea.yMax + 15f, width - 10f, ((height - 10f) * 0.30f));

            GUILayout.BeginArea(optionsArea);

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            GUILayout.BeginHorizontal();
            simulationBaker_.combineMeshesInFrame_ = EditorGUILayout.Toggle("Combine meshes", simulationBaker_.combineMeshesInFrame_);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            simulationBaker_.bakeObjectName_ = EditorGUILayout.TextField("Bake object name", simulationBaker_.bakeObjectName_);
            GUILayout.EndHorizontal();

            EditorGUILayout.Space();
            EditorGUILayout.Space();
            if (GUILayout.Button("Bake!"))
            {
                EditorApplication.delayCall += () =>
                {
                    simulationBaker_.BakeCurrentFrame();
                    Close();
                };
            }


            GUILayout.EndArea();
        }
        void OnGUI()
        {
            Rect nodesArea    = new Rect(5, 5, width - 10, ((height - 10) / 2));
            Rect nodesAreaBox = new Rect(nodesArea.xMin, nodesArea.yMin, nodesArea.width + 1, nodesArea.height + 1);

            GUI.Box(nodesAreaBox, "");

            GUILayout.BeginArea(nodesArea);
            GUILayout.BeginHorizontal();

            GUIStyle styleTitle = new GUIStyle(GUI.skin.label);

            styleTitle.fontStyle = FontStyle.Bold;

            GUILayout.Label("Nodes to bake:", styleTitle);
            GUILayout.EndHorizontal();

            CRGUIUtils.DrawSeparator();

            GUILayout.BeginHorizontal();

            int bodyNodeCount = listBodyNode_.Count;

            EditorGUILayout.BeginHorizontal();
            DrawToggleMixed(bodyNodeCount);
            Rect rect = GUILayoutUtility.GetLastRect();

            GUILayout.Space(65f);
            EditorGUILayout.LabelField("Collapse");
            EditorGUILayout.EndHorizontal();
            GUILayout.FlexibleSpace();

            GUILayout.EndHorizontal();

            Rect boxRect      = new Rect(nodesAreaBox.xMin - 5, rect.yMax, nodesAreaBox.width - 70f, nodesAreaBox.yMax - rect.yMax);
            Rect collapseRect = new Rect(boxRect.xMax, boxRect.yMin, 70f, boxRect.height);

            GUI.Box(boxRect, "");
            GUI.Box(collapseRect, "");

            scroller_ = GUILayout.BeginScrollView(scroller_);

            for (int i = 0; i < bodyNodeCount; i++)
            {
                GUILayout.BeginHorizontal();
                CNBody bodyNode = listBodyNode_[i];
                string name     = bodyNode.Name;

                bitArrNeedsBaking_[i] = EditorGUILayout.ToggleLeft(name, bitArrNeedsBaking_[i], GUILayout.Width(250f));
                GUILayout.Space(40f);

                bool isRigid    = bodyNode is CNRigidbody;
                bool isAnimated = bodyNode is CNAnimatedbody;

                if (isRigid && !isAnimated)
                {
                    bitArrNeedsCollapsing_[i] = EditorGUILayout.Toggle(bitArrNeedsCollapsing_[i]);
                }

                GUILayout.EndHorizontal();
            }

            EditorGUILayout.EndScrollView();

            GUILayout.EndArea();
            GUILayout.FlexibleSpace();

            Rect optionsArea = new Rect(5, nodesArea.yMax, width - 10, (height - 10) / 2);

            GUILayout.BeginArea(optionsArea);

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            EditorGUILayout.LabelField("Frame Start : " + StartFrame);
            EditorGUILayout.LabelField("Frame End   : " + EndFrame);

            float start = StartFrame;
            float end   = EndFrame;

            EditorGUILayout.MinMaxSlider(new GUIContent("Frames:"), ref start, ref end, 0, MaxFrames);

            SetStartEndFrames((int)start, (int)end);

            EditorGUILayout.Space();

            GUILayout.BeginHorizontal();
            simulationBaker_.sbCompression_ = EditorGUILayout.Toggle("Vertex compression", simulationBaker_.sbCompression_);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            simulationBaker_.sbTangents_ = EditorGUILayout.Toggle("Save tangents", simulationBaker_.sbTangents_);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            simulationBaker_.bakeEvents_ = EditorGUILayout.Toggle("Save events", simulationBaker_.bakeEvents_);
            GUILayout.EndHorizontal();

            EditorGUILayout.Space();

            GUILayout.BeginHorizontal();
            simulationBaker_.animationName_ = EditorGUILayout.TextField("Animation name", simulationBaker_.animationName_);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            simulationBaker_.bakeObjectName_ = EditorGUILayout.TextField("Root gameobject name", simulationBaker_.bakeObjectName_);
            GUILayout.EndHorizontal();

            EditorGUILayout.Space();
            EditorGUILayout.Space();
            if (GUILayout.Button("Bake!"))
            {
                EditorApplication.delayCall += () =>
                {
                    simulationBaker_.BakeSimulationAsAnim();
                    Close();
                };
            }

            GUILayout.BeginHorizontal();

            GUILayout.EndHorizontal();

            GUILayout.EndArea();
        }
        //-----------------------------------------------------------------------------------
        protected override void RenderFieldsBody(bool isEditable)
        {
            EditorGUILayout.Space();
            EditorGUILayout.Space();

            CRGUIUtils.DrawSeparator();
            CRGUIUtils.Splitter();

            scroller_ = EditorGUILayout.BeginScrollView(scroller_);

            EditorGUILayout.Space();
            float originalLabelWidth = EditorGUIUtility.labelWidth;

            EditorGUIUtility.labelWidth = 180f;

            EditorGUI.BeginDisabledGroup(!isEditable);
            {
                DrawDoCollide();
                DrawDoAutocollide();
                EditorGUILayout.Space();

                DrawGUIMassOptions();

                GUILayout.Space(simple_space);
                DrawResolution();
                GUILayout.Space(simple_space);
                DrawLengthStiffness();
                DrawVolumeStiffness();
                GUILayout.Space(simple_space);
                DrawDampingPerSecondCM();
                GUILayout.Space(simple_space);

                CRGUIUtils.Splitter();
                EditorGUILayout.Space();

                EditorGUILayout.BeginHorizontal();
                DrawPlasticityFoldout();
                EditorGUI.BeginDisabledGroup(!isEditable);
                {
                    DrawPlasticity();
                    EditorGUILayout.EndHorizontal();

                    if (Data.PlasticityFoldout)
                    {
                        EditorGUILayout.Space();
                        EditorGUI.BeginDisabledGroup(!Data.Plasticity);
                        DrawThreshold();
                        DrawAcquired();
                        DrawCompressionLimit();
                        DrawExpansionLimit();
                        EditorGUI.EndDisabledGroup();
                    }
                }
                EditorGUI.EndDisabledGroup();

                CRGUIUtils.Splitter();
                GUILayout.Space(simple_space);

                DrawRestitution();
                DrawFrictionKinetic();

                GUILayout.BeginHorizontal();
                EditorGUI.BeginDisabledGroup(Data.FromKinetic);
                DrawFrictionStatic();
                EditorGUI.EndDisabledGroup();
                DrawFrictionStaticFromKinetic();
                GUILayout.EndHorizontal();

                GUILayout.Space(simple_space);
                DrawDampingPerSecondWorld();
                GUILayout.Space(simple_space);

                bool currentMode = EditorGUIUtility.wideMode;
                EditorGUIUtility.wideMode = true;
                DrawLinearVelocity();
                DrawAngularVelocity();
                EditorGUIUtility.wideMode = currentMode;
            }
            EditorGUI.EndDisabledGroup();

            EditorGUILayout.Space();
            CRGUIUtils.Splitter();
            EditorGUILayout.Space();

            EditorGUI.BeginDisabledGroup(!isEditable);
            {
                DrawExplosionOpacity();
                DrawExplosionResponsiveness();
            }
            EditorGUI.EndDisabledGroup();

            EditorGUIUtility.labelWidth = originalLabelWidth;

            EditorGUILayout.Space();
            EditorGUILayout.EndScrollView();
        }
        public override void RenderGUI(Rect area, bool isEditable)
        {
            GUILayout.BeginArea(area);

            RenderTitle(isEditable, true, false);

            EditorGUI.BeginDisabledGroup(!isEditable);
            RenderFieldObjects("Objects", FieldController, true, true, CNFieldWindow.Type.extended);

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            EditorGUI.EndDisabledGroup();

            CRGUIUtils.DrawSeparator();
            CRGUIUtils.Splitter();

            EditorGUILayout.Space();

            EditorGUI.BeginDisabledGroup(!isEditable);
            List <ParameterModifierCommand> listPmCommand = Data.ListPmCommand;

            EditorGUILayout.Space();

            DrawTimer();

            EditorGUILayout.Space();
            EditorGUILayout.Space();
            EditorGUILayout.Space();

            EditorGUILayout.LabelField("Object parameters to modify: ");

            CRGUIUtils.Splitter();
            scroller_ = EditorGUILayout.BeginScrollView(scroller_);
            GUILayout.Space(10f);

            ParameterModifierCommand pmCommandToRemove = null;
            ParameterModifierCommand pmCommandToAdd    = null;
            int addPosition = 0;


            int nPmCommand = listPmCommand.Count;

            for (int i = 0; i < nPmCommand; i++)
            {
                ParameterModifierCommand pmCommand = listPmCommand[i];
                DrawPmCommand(i, pmCommand, ref pmCommandToRemove, ref pmCommandToAdd, ref addPosition);
            }

            if (pmCommandToRemove != null && listPmCommand.Count > 1)
            {
                Undo.RecordObject(Data, "Remove parameter - " + Data.Name);
                listPmCommand.Remove(pmCommandToRemove);
                pmCommandToRemove = null;
                EditorUtility.SetDirty(Data);
            }
            if (pmCommandToAdd != null)
            {
                Undo.RecordObject(Data, "Add parameter - " + Data.Name);
                listPmCommand.Insert(addPosition, pmCommandToAdd);
                pmCommandToAdd = null;
                EditorUtility.SetDirty(Data);
            }


            EditorGUI.EndDisabledGroup();
            EditorGUILayout.EndScrollView();

            GUILayout.EndArea();
        }
Beispiel #19
0
        public override void RenderGUI(Rect area, bool isEditable)
        {
            GUILayout.BeginArea(area);
            RenderTitle(isEditable, true, true, true);

            EditorGUI.BeginDisabledGroup(!isEditable);
            RenderFieldObjects("Bodies", FieldController, true, true, CNFieldWindow.Type.extended);
            EditorGUI.EndDisabledGroup();

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            CRGUIUtils.DrawSeparator();
            CRGUIUtils.Splitter();

            scroller_ = EditorGUILayout.BeginScrollView(scroller_);

            bool currentMode = EditorGUIUtility.wideMode;

            EditorGUIUtility.wideMode = true;

            EditorGUI.BeginDisabledGroup(!isEditable);
            EditorGUILayout.Space();
            EditorGUILayout.Space();

            DrawTimer();

            EditorGUILayout.Space();
            EditorGUI.BeginChangeCheck();
            DrawExplosionTransform();
            EditorGUILayout.Space();

            DrawResolution();
            DrawWavefronteSpeed();
            DrawRange();
            DrawDecay();
            DrawMomentum();

            EditorGUILayout.Space();
            DrawObjectsLimitSpeed();

            EditorGUILayout.Space();
            DrawAsymmetry();
            CRGUIUtils.Splitter();
            EditorGUILayout.Space();
            EditorGUI.BeginDisabledGroup(!Data.Asymmetry);
            DrawAsymmetryRandomSeed();
            DrawAsymmetryBumpNumber();
            DrawAsymmetryAdditionalSpeedRatio();
            EditorGUI.EndDisabledGroup();

            if (EditorGUI.EndChangeCheck())
            {
                ApplyEntity();
                EditorUtility.SetDirty(Data);
            }

            EditorGUI.EndDisabledGroup();

            EditorGUIUtility.wideMode = currentMode;

            EditorGUILayout.Space();
            EditorGUILayout.EndScrollView();
            GUILayout.EndArea();
        }
Beispiel #20
0
        //----------------------------------------------------------------------------------
        public override void RenderGUI(Rect area, bool isEditable)
        {
            GUILayout.BeginArea(area);

            RenderTitle(isEditable, true, false);

            EditorGUI.BeginDisabledGroup(!isEditable);

            RenderFieldObjects("Bodies", FieldController, true, true, CNFieldWindow.Type.extended);

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            CRGUIUtils.DrawSeparator();
            CRGUIUtils.Splitter();

            scroller_ = EditorGUILayout.BeginScrollView(scroller_);

            bool currentMode = EditorGUIUtility.wideMode;

            EditorGUIUtility.wideMode = true;

            float originalLabelWidth = EditorGUIUtility.labelWidth;

            EditorGUIUtility.labelWidth = 180f;

            EditorGUILayout.Space();
            EditorGUILayout.Space();
            DrawTimer();
            EditorGUILayout.Space();

            DrawFluidDensity();
            EditorGUILayout.Space();
            DrawVelocity();
            EditorGUILayout.Space();

            DrawSpeedDeltaMax();
            DrawAngleDeltaMax();

            EditorGUILayout.Space();

            CRGUIUtils.Splitter();
            EditorGUILayout.Space();
            Data.NoiseFoldout = EditorGUILayout.Foldout(Data.NoiseFoldout, "Noise");
            if (Data.NoiseFoldout)
            {
                GUILayout.Space(10f);

                DrawPeriodTime();
                DrawPeriodSpace();
            }
            CRGUIUtils.Splitter();
            EditorGUILayout.Space();
            Data.HfFoldout = EditorGUILayout.Foldout(Data.HfFoldout, "High frequency");
            if (Data.HfFoldout)
            {
                GUILayout.Space(10f);
                DrawHighFrequencyAM();
                DrawHighFrequencySP();
            }
            CRGUIUtils.Splitter();
            EditorGUIUtility.labelWidth = originalLabelWidth;
            EditorGUIUtility.wideMode   = currentMode;

            EditorGUILayout.EndScrollView();

            GUILayout.EndArea();
        }