public static void ExpectInvalidBranch(ref CSGTreeBranch operation) { CSGNodeType type = CSGTreeNode.Encapsulate(operation.NodeID).Type; Assert.AreEqual(false, operation.Valid); Assert.AreEqual(0, operation.UserID); Assert.AreEqual(CSGNodeType.None, type); }
public static void ExpectInvalidTree(ref CSGTree model) { CSGNodeType type = CSGTreeNode.Encapsulate(model.NodeID).Type; Assert.AreEqual(false, model.Valid); Assert.AreEqual(0, model.UserID); Assert.AreEqual(CSGNodeType.None, type); }
public static void ExpectInvalidBrush(ref CSGTreeBrush brush) { CSGNodeType type = CSGTreeNode.Encapsulate(brush.NodeID).Type; Assert.AreEqual(false, brush.Valid); Assert.AreEqual(0, brush.UserID); Assert.AreEqual(CSGNodeType.None, type); }
public static void ExpectValidTreeWithUserID(ref CSGTree model, int userID) { CSGNodeType type = CSGTreeNode.Encapsulate(model.NodeID).Type; Assert.AreEqual(true, model.Valid); Assert.AreNotEqual(0, model.NodeID); Assert.AreEqual(userID, model.UserID); Assert.AreEqual(CSGNodeType.Tree, type); }
public static void ExpectValidBranchWithUserID(ref CSGTreeBranch operation, int userID) { CSGNodeType type = CSGTreeNode.Encapsulate(operation.NodeID).Type; Assert.AreEqual(true, operation.Valid); Assert.AreNotEqual(0, operation.NodeID); Assert.AreEqual(userID, operation.UserID); Assert.AreEqual(CSGNodeType.Branch, type); }
public static void ExpectValidBrushWithUserID(ref CSGTreeBrush brush, int userID) { CSGNodeType type = CSGTreeNode.Encapsulate(brush.NodeID).Type; Assert.AreEqual(true, brush.Valid); Assert.AreNotEqual(0, brush.NodeID); Assert.AreEqual(userID, brush.UserID); Assert.AreEqual(CSGNodeType.Brush, type); }
void OnGUI() { if (styles == null) { UpdateStyles(); } var selectedInstanceIDs = new HashSet <int>(); foreach (var instanceID in Selection.instanceIDs) { var obj = EditorUtility.InstanceIDToObject(instanceID); var go = obj as GameObject; if (go != null) { foreach (var no in go.GetComponents <ChiselNode>()) { var instanceID_ = no.GetInstanceID(); selectedInstanceIDs.Add(instanceID_); } } } float kItemHeight = EditorGUIUtility.singleLineHeight; var allNodes = CSGManager.AllTreeNodes; var allRootNodeList = new List <CSGTreeNode>(); for (int i = 0; i < allNodes.Length; i++) { if (allNodes[i].Type != CSGNodeType.Tree && (allNodes[i].Tree.Valid || allNodes[i].Parent.Valid)) { continue; } allRootNodeList.Add(allNodes[i]); } var allRootNodes = allRootNodeList.ToArray(); var totalCount = GetVisibleItems(allRootNodes, ref openNodes); var itemArea = position; itemArea.x = 0; itemArea.y = 0; itemArea.height -= 200; var totalRect = position; totalRect.x = 0; totalRect.y = 0; totalRect.width = position.width - kScrollWidth; totalRect.height = (totalCount * kItemHeight) + (2 * kPadding); var itemRect = position; itemRect.x = 0; itemRect.y = kPadding; itemRect.height = kItemHeight; m_ScrollPos = GUI.BeginScrollView(itemArea, m_ScrollPos, totalRect); { Rect visibleArea = itemArea; visibleArea.x += m_ScrollPos.x; visibleArea.y += m_ScrollPos.y; AddFoldOuts(ref itemRect, ref visibleArea, allRootNodes, selectedInstanceIDs, ref openNodes); } GUI.EndScrollView(); if (selectedInstanceIDs.Count == 1) { var instanceID = selectedInstanceIDs.First(); var obj = EditorUtility.InstanceIDToObject(instanceID) as ChiselNode; if (obj) { var brush = obj as ChiselBrush; var operation = obj as ChiselOperation; var model = obj as ChiselModel; int nodeID = CSGTreeNode.InvalidNode.NodeID; if (brush) { nodeID = brush.TopNode.NodeID; } else if (operation) { nodeID = operation.Node.NodeID; } else if (model) { nodeID = model.Node.NodeID; } else { for (int n = 0; n < allNodes.Length; n++) { if (allNodes[n].UserID == instanceID) { nodeID = allNodes[n].NodeID; break; } } } if (nodeID != CSGTreeNode.InvalidNode.NodeID) { var labelArea = itemArea; labelArea.x = 0; labelArea.y = labelArea.height; labelArea.height = kItemHeight; CSGTreeNode node = CSGTreeNode.Encapsulate(nodeID); GUI.Label(labelArea, "NodeID: " + (nodeID - 1)); labelArea.y += kItemHeight; GUI.Label(labelArea, "UserID: " + node.UserID); labelArea.y += kItemHeight; GUI.Label(labelArea, "Operation: " + node.Operation); labelArea.y += kItemHeight; GUI.Label(labelArea, "Valid: " + node.Valid); labelArea.y += kItemHeight; GUI.Label(labelArea, "NodeType: " + node.Type); labelArea.y += kItemHeight; GUI.Label(labelArea, "ChildCount: " + node.Count); labelArea.y += kItemHeight; if (node.Type != CSGNodeType.Tree) { GUI.Label(labelArea, "Parent: " + (node.Parent.NodeID - 1) + " valid: " + node.Parent.Valid); labelArea.y += kItemHeight; GUI.Label(labelArea, "Model: " + (node.Tree.NodeID - 1) + " valid: " + node.Tree.Valid); labelArea.y += kItemHeight; } if (node.Type == CSGNodeType.Brush) { var treeBrush = (CSGTreeBrush)node; var brushMeshInstance = treeBrush.BrushMesh; GUI.Label(labelArea, "BrushMeshInstance: " + brushMeshInstance.BrushMeshID + " valid: " + brushMeshInstance.Valid); labelArea.y += kItemHeight; } } } } }