Exemplo n.º 1
0
        public IEnumerator CreateAndDestroyModelGameObject_Undo_ModelExist()
        {
            var scene           = TestUtility.defaultScene;
            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            Undo.FlushUndoRecordObjects();
            Undo.IncrementCurrentGroup();
            yield return(null);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeNodeCount, "Expected 1 TreeNode to Exist");

            Undo.DestroyObjectImmediate(modelGameObject);
            yield return(null);

            Assert.False(modelGameObject);
            Assert.False(model);
            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");

            Undo.PerformUndo();
            yield return(null);

            model = modelGameObject.GetComponent <ChiselModel>();
            yield return(null);

            Assert.True(modelGameObject);
            Assert.True(model);
            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeNodeCount, "Expected 1 TreeNode to Exist");
            Assert.AreEqual(1, CSGNodeHierarchyManager.RootCount(scene));
        }
Exemplo n.º 2
0
        public IEnumerator ModelWithWithGameObjectWithBrush_BrushHasModelAsTree()
        {
            var model           = TestUtility.CreateUndoableGameObjectWithModel("model");
            var modelGameObject = model.gameObject;

            var plainGameObject = TestUtility.CreateGameObject("gameObject");

            plainGameObject.transform.parent = modelGameObject.transform;

            var brush           = TestUtility.CreateUndoableGameObjectWithBrush("brush");
            var brushGameObject = brush.gameObject;

            brush.transform.parent = plainGameObject.transform;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.True(modelGameObject);
            Assert.True(model);
            Assert.True(plainGameObject);
            Assert.True(brushGameObject);
            Assert.True(brush);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
            Assert.AreEqual(1, model.Node.Count);
            Assert.AreEqual(model.Node.NodeID, brush.TopNode.Tree.NodeID);
        }
Exemplo n.º 3
0
        public IEnumerator CreateModel_UndoCreateGameObject_DoesNotDirtyAnyScene()
        {
            var currentScene = SceneManager.GetActiveScene();
            var newScene     = TestUtility.CreateAdditionalSceneAndActivate();

            Assert.False(currentScene.isDirty);
            Assert.False(newScene.isDirty);
            Undo.FlushUndoRecordObjects();
            Undo.IncrementCurrentGroup();
            yield return(null);

            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            Assert.AreEqual(modelGameObject.scene, newScene);
            Assert.True(newScene.isDirty);
            Assert.False(currentScene.isDirty);

            Undo.PerformUndo();
            yield return(null);

            Assert.False(modelGameObject);
            Assert.False(model);
            Assert.False(newScene.isDirty);
            Assert.False(currentScene.isDirty);
        }
Exemplo n.º 4
0
        public IEnumerator ModelWithChildComposite_ChildHasModelAsTree()
        {
            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            var composite           = TestUtility.CreateUndoableGameObjectWithComposite();
            var compositeGameObject = composite.gameObject;

            composite.transform.parent = model.transform;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBranchCount, "Expected 0 TreeBranches to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.True(modelGameObject);
            Assert.True(model);
            Assert.True(compositeGameObject);
            Assert.True(composite);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeBranchCount, "Expected 1 TreeBranch to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
            Assert.AreEqual(1, model.Node.Count);
            Assert.AreEqual(model.Node.NodeID, composite.Node.Tree.NodeID);
        }
Exemplo n.º 5
0
        public IEnumerator Composite_AddChildModel_CompositeHasNoChildren()
        {
            var composite           = TestUtility.CreateUndoableGameObjectWithComposite();
            var compositeGameObject = composite.gameObject;

            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            model.transform.parent = composite.transform;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.True(compositeGameObject);
            Assert.True(composite);
            Assert.True(modelGameObject);
            Assert.True(model);

            Assert.AreEqual(2, CSGManager.TreeCount, "Expected 2 Trees to Exist");
            Assert.AreEqual(1, CSGManager.TreeBranchCount, "Expected 1 TreeBranch to Exist");
            Assert.AreEqual(3, CSGManager.TreeNodeCount, "Expected 3 TreeNodes to Exist");
            Assert.AreEqual(0, composite.Node.Count);
        }
Exemplo n.º 6
0
        public IEnumerator Model_AddChildOperation_ModelHasChild()
        {
            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            var operation           = TestUtility.CreateUndoableGameObjectWithOperation();
            var operationGameObject = operation.gameObject;

            operation.transform.parent = model.transform;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBranchCount, "Expected 0 TreeBranches to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.True(modelGameObject);
            Assert.True(model);
            Assert.True(operationGameObject);
            Assert.True(operation);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeBranchCount, "Expected 1 TreeBranch to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
            Assert.AreEqual(1, model.Node.Count);
            Assert.AreEqual(operation.Node.NodeID, model.Node[0].NodeID);
        }
Exemplo n.º 7
0
        public IEnumerator Model1WithDisabledModel2WithChildBrush_AddChildBrushToModel1_ChildHasModel2AsTree()
        {
            var model1           = TestUtility.CreateUndoableGameObjectWithModel();
            var model1GameObject = model1.gameObject;

            var model2           = TestUtility.CreateUndoableGameObjectWithModel();
            var model2GameObject = model2.gameObject;

            model2.transform.parent = model1.transform;
            model2.enabled          = false;

            var brush           = TestUtility.CreateUndoableGameObjectWithBrush();
            var brushGameObject = brush.gameObject;

            brush.transform.parent = model2.transform;

            Assert.True(model1GameObject);
            Assert.True(model1);
            Assert.True(model2GameObject);
            Assert.True(model2);
            Assert.True(brushGameObject);
            Assert.True(brush);

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
            Assert.AreEqual(1, model1.Node.Count);
            Assert.AreEqual(CSGTreeNode.InvalidNode.NodeID, model2.Node.NodeID);
            Assert.AreEqual(model1.Node.NodeID, brush.TopNode.Tree.NodeID);
        }
Exemplo n.º 8
0
        public IEnumerator ModelInScene1_MoveToScene2_ModelOnlyExistsInScene2()
        {
            var scene2 = TestUtility.defaultScene;

            EditorSceneManager.SaveScene(scene2, TestUtility.tempFilename);
            var scene1 = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Additive);

            EditorSceneManager.SetActiveScene(scene1);

            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeNodeCount, "Expected 1 TreeNode to Exist");
            Assert.AreEqual(scene1, model.hierarchyItem.Scene);

            Undo.MoveGameObjectToScene(modelGameObject, scene2, "Move gameObject to different scene");
            yield return(null);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeNodeCount, "Expected 1 TreeNode to Exist");

            Assert.AreEqual(scene2, model.gameObject.scene, "Model is not part of expected scene");
            Assert.AreEqual(scene2, model.hierarchyItem.Scene, "Model is not registered to expected scene");

            Assert.AreEqual(0, CSGNodeHierarchyManager.RootCount(scene1));
            Assert.AreEqual(1, CSGNodeHierarchyManager.RootCount(scene2));

            // make sure test runner doesn't puke on its own bugs
            EditorSceneManager.NewScene(NewSceneSetup.EmptyScene);
        }
Exemplo n.º 9
0
        public IEnumerator Model_AddChildBrush_ModelHasChild()
        {
            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            var brush           = TestUtility.CreateUndoableGameObjectWithBrush();
            var brushGameObject = brush.gameObject;

            brush.transform.parent = model.transform;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.True(modelGameObject);
            Assert.True(model);
            Assert.True(brushGameObject);
            Assert.True(brush);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
            Assert.AreEqual(1, model.Node.Count);
            Assert.AreEqual(brush.TopNode.NodeID, model.Node[0].NodeID);
        }
Exemplo n.º 10
0
        public IEnumerator ModelWithChildInScene1_MoveToScene2_ModelWithChildOnlyExistsInScene2()
        {
            var scene2 = TestUtility.defaultScene;

            EditorSceneManager.SaveScene(scene2, TestUtility.tempFilename);

            var scene1 = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Additive);

            EditorSceneManager.SetActiveScene(scene1);

            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            var brush           = TestUtility.CreateUndoableGameObjectWithBrush();
            var brushGameObject = brush.gameObject;

            brush.transform.parent = model.transform;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
            Assert.AreEqual(scene1, model.gameObject.scene);
            Assert.AreEqual(scene1, model.hierarchyItem.Scene);

            Undo.MoveGameObjectToScene(modelGameObject, scene2, "Move gameObject to different scene");
            yield return(null);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");

            Assert.AreEqual(model.hierarchyItem, brush.hierarchyItem.Parent);
            Assert.AreEqual(model.NodeID, brush.hierarchyItem.Parent.Component.NodeID);
            Assert.AreEqual(model.NodeID, brush.TopNode.Tree.NodeID);

            Assert.AreEqual(scene2, model.gameObject.scene, "Model is not part of expected scene");
            Assert.AreEqual(scene2, model.hierarchyItem.Scene, "Model is not registered to expected scene");

            Assert.AreEqual(scene2, brush.gameObject.scene, "Brush is not part of expected scene");
            Assert.AreEqual(scene2, brush.hierarchyItem.Scene, "Brush is not registered to expected scene");

            Assert.AreEqual(0, ChiselNodeHierarchyManager.RootCount(scene1));
            Assert.AreEqual(1, ChiselNodeHierarchyManager.RootCount(scene2));

            // make sure test runner doesn't puke on its own bugs
            EditorSceneManager.NewScene(NewSceneSetup.EmptyScene);
        }
Exemplo n.º 11
0
        public IEnumerator Model1WithChildGameObjectWithChildBrush_MoveChildToModel2_ChildHasModel2AsTree()
        {
            var model1           = TestUtility.CreateUndoableGameObjectWithModel("model1");
            var model1GameObject = model1.gameObject;

            var model2           = TestUtility.CreateUndoableGameObjectWithModel("model2");
            var model2GameObject = model2.gameObject;

            var plainGameObject = TestUtility.CreateGameObject("gameObject");

            plainGameObject.transform.parent = model1.transform;

            var brush           = TestUtility.CreateUndoableGameObjectWithBrush();
            var brushGameObject = brush.gameObject;

            brush.transform.parent = plainGameObject.transform;

            Assert.True(model1GameObject);
            Assert.True(model1);
            Assert.True(model2GameObject);
            Assert.True(model2);
            Assert.True(brushGameObject);
            Assert.True(brush);

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");

            yield return(null);

            Assert.AreEqual(2, CSGManager.TreeCount, "Expected 2 Trees to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(3, CSGManager.TreeNodeCount, "Expected 3 TreeNodes to Exist");

            Assert.AreNotEqual(CSGTreeNode.InvalidNode.NodeID, model2.Node.NodeID);
            Assert.AreNotEqual(CSGTreeNode.InvalidNode.NodeID, model1.Node.NodeID);
            Assert.AreNotEqual(CSGTreeNode.InvalidNode.NodeID, brush.TopNode.NodeID);

            Assert.AreEqual(model1.Node.NodeID, brush.TopNode.Tree.NodeID);

            Assert.AreEqual(1, model1.Node.Count);
            Assert.AreEqual(0, model2.Node.Count);

            brush.transform.parent = model2.transform;
            yield return(null);

            Assert.AreEqual(model2.Node.NodeID, brush.TopNode.Tree.NodeID);

            Assert.AreEqual(0, model1.Node.Count);
            Assert.AreEqual(1, model2.Node.Count);
        }
Exemplo n.º 12
0
        public IEnumerator Model1WithWithGameObjectWithBrush_AddModel2ToGameObject_BrushHasModel2AsTree()
        {
            var model1           = TestUtility.CreateUndoableGameObjectWithModel("model1");
            var model1GameObject = model1.gameObject;

            var model2GameObject = TestUtility.CreateGameObject("model2");

            model2GameObject.transform.parent = model1GameObject.transform;

            var brush           = TestUtility.CreateUndoableGameObjectWithBrush("brush");
            var brushGameObject = brush.gameObject;

            brush.transform.parent = model2GameObject.transform;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.True(model1GameObject);
            Assert.True(model1);
            Assert.True(model2GameObject);
            Assert.True(brushGameObject);
            Assert.True(brush);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
            Assert.AreEqual(1, model1.Node.Count);
            Assert.AreEqual(model1.Node.NodeID, brush.TopNode.Tree.NodeID);

            var model2 = TestUtility.CreateUndoableModelComponent(model2GameObject);

            yield return(null);

            Assert.True(model1GameObject);
            Assert.True(model1);
            Assert.True(model2GameObject);
            Assert.True(model2);
            Assert.True(brushGameObject);
            Assert.True(brush);

            Assert.AreEqual(2, CSGManager.TreeCount, "Expected 2 Trees to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(3, CSGManager.TreeNodeCount, "Expected 3 TreeNodes to Exist");
            Assert.AreEqual(0, model1.Node.Count);
            Assert.AreEqual(1, model2.Node.Count);
            Assert.AreEqual(model2.Node.NodeID, brush.TopNode.Tree.NodeID);
        }
Exemplo n.º 13
0
        public void CreateModel_OnlyDirtiesSceneOfModel()
        {
            var currentScene = SceneManager.GetActiveScene();
            var newScene     = TestUtility.CreateAdditionalSceneAndActivate();

            Assert.False(currentScene.isDirty);
            Assert.False(newScene.isDirty);

            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            Assert.AreEqual(modelGameObject.scene, newScene);
            Assert.True(newScene.isDirty);
            Assert.False(currentScene.isDirty);
        }
Exemplo n.º 14
0
        public IEnumerator Model1WithModel2WithChildBrush_DestroyModel2Component_ChildHasModel1AsTree()
        {
            var model1           = TestUtility.CreateUndoableGameObjectWithModel();
            var model1GameObject = model1.gameObject;

            var model2           = TestUtility.CreateUndoableGameObjectWithModel();
            var model2GameObject = model2.gameObject;

            model2.transform.parent = model1.transform;

            var brush           = TestUtility.CreateUndoableGameObjectWithBrush();
            var brushGameObject = brush.gameObject;

            brush.transform.parent = model2.transform;

            Assert.True(model1GameObject);
            Assert.True(model1);
            Assert.True(model2GameObject);
            Assert.True(model2);
            Assert.True(brushGameObject);
            Assert.True(brush);

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.AreEqual(2, CSGManager.TreeCount, "Expected 2 Trees to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(3, CSGManager.TreeNodeCount, "Expected 3 TreeNodes to Exist");

            Assert.AreEqual(0, model1.Node.Count);
            Assert.AreEqual(1, model2.Node.Count);
            Assert.AreEqual(model2.Node.NodeID, brush.TopNode.Tree.NodeID);

            Undo.DestroyObjectImmediate(model2);
            yield return(null);

            Assert.False(model2);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");

            Assert.AreEqual(1, model1.Node.Count);
            Assert.AreEqual(model1.Node.NodeID, brush.TopNode.Tree.NodeID);
        }
Exemplo n.º 15
0
        public IEnumerator ModelWithTwoChildBrushes_SwapOrder_ModelHasChildrenInOrder()
        {
            var model           = TestUtility.CreateUndoableGameObjectWithModel("model");
            var modelGameObject = model.gameObject;

            var brush1           = TestUtility.CreateUndoableGameObjectWithBrush("brush1");
            var brush1GameObject = brush1.gameObject;

            brush1.transform.parent = model.transform;

            var brush2           = TestUtility.CreateUndoableGameObjectWithBrush("brush2");
            var brush2GameObject = brush2.gameObject;

            brush2.transform.parent = model.transform;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");

            Assert.True(modelGameObject);
            Assert.True(model);
            Assert.True(brush1GameObject);
            Assert.True(brush1);
            Assert.True(brush2GameObject);
            Assert.True(brush2);

            Assert.AreEqual(model.transform.GetChild(0), brush1.transform);
            Assert.AreEqual(model.transform.GetChild(1), brush2.transform);

            yield return(null);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(2, CSGManager.TreeBrushCount, "Expected 2 TreeBrushes to Exist");
            Assert.AreEqual(3, CSGManager.TreeNodeCount, "Expected 3 TreeNodes to Exist");
            Assert.AreEqual(2, model.Node.Count);
            brush2.transform.SetSiblingIndex(0);

            Assert.AreEqual(model.transform.GetChild(0), brush2.transform);
            Assert.AreEqual(model.transform.GetChild(1), brush1.transform);
            yield return(null);

            Assert.AreEqual(brush2.TopNode.NodeID, model.Node[0].NodeID);
            Assert.AreEqual(brush1.TopNode.NodeID, model.Node[1].NodeID);
        }
Exemplo n.º 16
0
        public IEnumerator Model1WithChildBrush_MoveChildOutOfAnyModel_ChildHasNoTreeNodeSet()
        {
            var model1           = TestUtility.CreateUndoableGameObjectWithModel("model1");
            var model1GameObject = model1.gameObject;

            var plainGameObject = TestUtility.CreateGameObject("gameObject");

            var brush           = TestUtility.CreateUndoableGameObjectWithBrush();
            var brushGameObject = brush.gameObject;

            brush.transform.parent = model1.transform;

            Assert.True(model1GameObject);
            Assert.True(model1);
            Assert.True(plainGameObject);
            Assert.True(brushGameObject);
            Assert.True(brush);

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");

            yield return(null);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");

            Assert.AreNotEqual(CSGTreeNode.InvalidNode.NodeID, model1.Node.NodeID);
            Assert.AreNotEqual(CSGTreeNode.InvalidNode.NodeID, brush.TopNode.NodeID);

            Assert.AreEqual(model1.Node.NodeID, brush.TopNode.Tree.NodeID);

            Assert.AreEqual(1, model1.Node.Count);

            brush.transform.parent = plainGameObject.transform;
            yield return(null);

            Assert.AreEqual(0, model1.Node.Count);
            var defaultModel = brush.hierarchyItem.sceneHierarchy.DefaultModel;

            Assert.AreEqual(defaultModel.NodeID, brush.TopNode.Tree.NodeID);
        }
Exemplo n.º 17
0
        public IEnumerator ModelWithChildBrush_DestroyModel_ChildIsAlsoDestroyed()
        {
            var scene           = TestUtility.defaultScene;
            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            var brush           = TestUtility.CreateUndoableGameObjectWithBrush();
            var brushGameObject = brush.gameObject;

            brush.transform.parent = model.transform;

            Assert.True(modelGameObject);
            Assert.True(model);
            Assert.True(brushGameObject);
            Assert.True(brush);

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");

            Assert.AreEqual(1, model.Node.Count, 1);
            Assert.AreEqual(model.Node.NodeID, brush.TopNode.Tree.NodeID);

            Undo.DestroyObjectImmediate(modelGameObject);
            yield return(null);

            Assert.False(modelGameObject);
            Assert.False(model);
            Assert.False(brushGameObject);
            Assert.False(brush);

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            Assert.AreEqual(0, ChiselNodeHierarchyManager.RootCount(scene));
        }
Exemplo n.º 18
0
        public IEnumerator ModelWithChildOperation_DestroyChildComponent_ModelHasNoChildren()
        {
            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            var operation           = TestUtility.CreateUndoableGameObjectWithOperation();
            var operationGameObject = operation.gameObject;

            operation.transform.parent = model.transform;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBranchCount, "Expected 0 TreeBranches to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.True(modelGameObject);
            Assert.True(model);
            Assert.True(operationGameObject);
            Assert.True(operation);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeBranchCount, "Expected 1 TreeBranch to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
            Assert.AreEqual(1, model.Node.Count);
            Assert.AreEqual(model.Node.NodeID, operation.Node.Tree.NodeID);

            Undo.DestroyObjectImmediate(operation);
            yield return(null);

            Assert.True(modelGameObject);
            Assert.True(model);
            Assert.True(operationGameObject);
            Assert.False(operation);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(0, CSGManager.TreeBranchCount, "Expected 0 TreeBranches to Exist");
            Assert.AreEqual(1, CSGManager.TreeNodeCount, "Expected 1 TreeNode to Exist");
            Assert.AreEqual(0, model.Node.Count);
        }
Exemplo n.º 19
0
        public IEnumerator ModelWithChildBrush_DestroyChildComponent_ModelHasNoChildren()
        {
            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            var brush           = TestUtility.CreateUndoableGameObjectWithBrush();
            var brushGameObject = brush.gameObject;

            brush.transform.parent = model.transform;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.True(modelGameObject);
            Assert.True(model);
            Assert.True(brushGameObject);
            Assert.True(brush);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeBrushCount, "Expected 1 TreeBrush to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
            Assert.AreEqual(1, model.Node.Count);
            Assert.AreEqual(model.Node.NodeID, brush.TopNode.Tree.NodeID);

            Undo.DestroyObjectImmediate(brush);
            yield return(null);

            Assert.True(modelGameObject);
            Assert.True(model);
            Assert.True(brushGameObject);
            Assert.False(brush);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(1, CSGManager.TreeNodeCount, "Expected 1 TreeNode to Exist");
            Assert.AreEqual(0, model.Node.Count);
        }
Exemplo n.º 20
0
        public IEnumerator CreateModel_DeactivateModelGameObject_ModelDoesNotExist()
        {
            var scene           = TestUtility.defaultScene;
            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeNodeCount, "Expected 1 TreeNode to Exist");

            modelGameObject.SetActive(false);
            yield return(null);

            Assert.True(modelGameObject);
            Assert.True(model);
            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            Assert.AreEqual(0, ChiselNodeHierarchyManager.RootCount(scene));
        }
Exemplo n.º 21
0
        public IEnumerator CreateModel_DestroyModelGameObject_ModelDoesNotExist()
        {
            var scene           = TestUtility.defaultScene;
            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeNodeCount, "Expected 1 TreeNode to Exist");

            Undo.DestroyObjectImmediate(modelGameObject);
            yield return(null);

            Assert.False(modelGameObject);
            Assert.False(model);
            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            Assert.AreEqual(0, CSGNodeHierarchyManager.RootCount(scene));
        }
Exemplo n.º 22
0
        public IEnumerator Model1WithModel2WithChildBrush_DeactivateModel2GameObject_ChildIsAlsoDeactivated()
        {
            var scene            = TestUtility.defaultScene;
            var model1           = TestUtility.CreateUndoableGameObjectWithModel();
            var model1GameObject = model1.gameObject;

            var model2           = TestUtility.CreateUndoableGameObjectWithModel();
            var model2GameObject = model2.gameObject;

            model2.transform.parent = model1.transform;
            model2GameObject.SetActive(false);

            var brush           = TestUtility.CreateUndoableGameObjectWithBrush();
            var brushGameObject = brush.gameObject;

            brush.transform.parent = model2.transform;

            Assert.True(model1GameObject);
            Assert.True(model1);
            Assert.True(model2GameObject);
            Assert.True(model2);
            Assert.True(brushGameObject);
            Assert.True(brush);

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(0, CSGManager.TreeBrushCount, "Expected 0 TreeBrushes to Exist");
            Assert.AreEqual(1, CSGManager.TreeNodeCount, "Expected 1 TreeNode to Exist");

            Assert.AreEqual(0, model1.Node.Count);
            Assert.AreEqual(CSGTreeNode.InvalidNode.NodeID, brush.TopNode.NodeID);
            Assert.AreEqual(CSGTreeNode.InvalidNode.NodeID, model2.Node.NodeID);
            Assert.AreEqual(1, ChiselNodeHierarchyManager.RootCount(scene));
        }
Exemplo n.º 23
0
        public IEnumerator SaveModelInScene_LoadScene_ModelTreeNodeIsGenerated()
        {
            var scene1 = TestUtility.defaultScene;
            {
                TestUtility.CreateUndoableGameObjectWithModel();
                EditorSceneManager.SaveScene(scene1, TestUtility.tempFilename);
            }

            var scene2 = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene);

            yield return(null);

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            Assert.AreEqual(0, CSGNodeHierarchyManager.RootCount(scene2));

            var scene3 = EditorSceneManager.OpenScene(TestUtility.tempFilename);
            var models = Object.FindObjectsOfType <ChiselModel>();

            yield return(null);

            Assert.NotNull(models);
            Assert.AreEqual(1, models.Length);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeNodeCount, "Expected 1 TreeNode to Exist");
            Assert.AreEqual(1, CSGNodeHierarchyManager.RootCount(scene3));

            Assert.AreEqual(scene3, models[0].gameObject.scene, "Model is not part of expected scene");
            Assert.AreEqual(scene3, models[0].hierarchyItem.Scene, "Model is not registered to expected scene");

            Assert.AreEqual(0, CSGNodeHierarchyManager.RootCount(scene1)); // unloaded, so should be unknown to us
            Assert.AreEqual(0, CSGNodeHierarchyManager.RootCount(scene2)); // unloaded, so should be unknown to us
            Assert.AreEqual(1, CSGNodeHierarchyManager.RootCount(scene3));

            // make sure test runner doesn't puke on its own bugs
            EditorSceneManager.NewScene(NewSceneSetup.EmptyScene);
        }
Exemplo n.º 24
0
        public IEnumerator CreateModel_DestroyModelGameObject_OnlyDirtiesSceneOfModel()
        {
            var currentScene = SceneManager.GetActiveScene();
            var newScene     = TestUtility.CreateAdditionalSceneAndActivate();

            Assert.False(currentScene.isDirty);
            Assert.False(newScene.isDirty);

            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            Assert.AreEqual(modelGameObject.scene, newScene);
            Assert.True(newScene.isDirty);
            Assert.False(currentScene.isDirty);

            Undo.DestroyObjectImmediate(modelGameObject);
            yield return(null);

            Assert.False(modelGameObject);
            Assert.False(model);
            Assert.True(newScene.isDirty);
            Assert.False(currentScene.isDirty);
        }
Exemplo n.º 25
0
        public IEnumerator CreateModel_UndoCreateGameObject_ModelDoesNotExist()
        {
            var scene           = TestUtility.defaultScene;
            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            Undo.FlushUndoRecordObjects();
            Undo.IncrementCurrentGroup();
            yield return(null);

            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeNodeCount, "Expected 1 TreeNode to Exist");

            Undo.PerformUndo();
            yield return(null);

            Assert.False(modelGameObject);
            Assert.False(model);
            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            Assert.AreEqual(0, CSGNodeHierarchyManager.RootCount(scene));
        }
Exemplo n.º 26
0
        public IEnumerator Model_AddChildModel_ModelHasNoChildren()
        {
            var model1           = TestUtility.CreateUndoableGameObjectWithModel();
            var model1GameObject = model1.gameObject;

            var model2           = TestUtility.CreateUndoableGameObjectWithModel();
            var model2GameObject = model2.gameObject;

            model2.transform.parent = model1.transform;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeBranchCount, "Expected 0 TreeBranches to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.True(model1GameObject);
            Assert.True(model1);
            Assert.True(model2GameObject);
            Assert.True(model2);

            Assert.AreEqual(2, CSGManager.TreeCount, "Expected 2 Trees to Exist");
            Assert.AreEqual(2, CSGManager.TreeNodeCount, "Expected 2 TreeNodes to Exist");
            Assert.AreEqual(0, model1.Node.Count);
        }
Exemplo n.º 27
0
        public IEnumerator CreateModel_EnableModelComponent_ModelExists()
        {
            var scene           = TestUtility.defaultScene;
            var model           = TestUtility.CreateUndoableGameObjectWithModel();
            var modelGameObject = model.gameObject;

            model.enabled = false;

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");
            yield return(null);

            Assert.AreEqual(0, CSGManager.TreeCount, "Expected 0 Trees to Exist");
            Assert.AreEqual(0, CSGManager.TreeNodeCount, "Expected 0 TreeNodes to Exist");

            model.enabled = true;
            yield return(null);

            Assert.True(modelGameObject);
            Assert.True(model);
            Assert.AreEqual(1, CSGManager.TreeCount, "Expected 1 Tree to Exist");
            Assert.AreEqual(1, CSGManager.TreeNodeCount, "Expected 1 TreeNode to Exist");
            Assert.AreEqual(1, ChiselNodeHierarchyManager.RootCount(scene));
        }