public void RemoveNode(AdvancedSceneNode toRemove) { if (SceneNodeList.Contains(toRemove)) { SceneNodeList.Remove(toRemove); } }
public bool SwitchSelectedNode(AdvancedSceneNode nNode) { if (mSelectedTransform.Contains(nNode.transform)) { //Debug.Log("CONTAINS TIS NODE: " + mSelectedTransform.IndexOf(nNode.transform)); SelectionChange(mSelectedTransform.IndexOf(nNode.transform)); TheMenu.value = mSelectedTransform.IndexOf(nNode.transform); return(true); } else { return(false); } }
/*void GetChildrenNames(string blanks, Transform node) * { * string space = blanks + kChildSpace; * for (int i = node.childCount - 1; i >= 0; i--) * { * Transform child = node.GetChild(i); * AdvancedSceneNode cn = child.GetComponent<AdvancedSceneNode>(); * if (cn != null) * { * mSelectMenuOptions.Add(new Dropdown.OptionData(space + child.name)); * mSelectedTransform.Add(child); * GetChildrenNames(blanks + kChildSpace, child); * } * } * }*/ void GetChildrenNames(string blanks, AdvancedSceneNode node) { string space = blanks + kChildSpace; for (int i = node.SceneNodeList.Count - 1; i >= 0; i--) { AdvancedSceneNode cn = node.SceneNodeList[i]; if (cn != null) { mSelectMenuOptions.Add(new Dropdown.OptionData(space + cn.transform.name)); mSelectedTransform.Add(cn.transform); GetChildrenNames(blanks + kChildSpace, cn); } } }
void SelectionChange(int index) { mCurrentSelected.gameObject.GetComponent <MeshRenderer>().material.color = inactiveColor; mCurrentSelected.UnSelect(); mCurrentSelected = mSelectedTransform[index].GetComponent <AdvancedSceneNode>(); mCurrentSelected.SetToSelect(); mCurrentSelected.gameObject.GetComponent <MeshRenderer>().material.color = activeColor; XformControl.SetSelectedObject(mSelectedTransform[index]); primCtrl.GenerateList(mCurrentSelected); //mTranslator.SetPositionToSelected(mCurrentSelected.transform); }
public bool AddNode() { if (mCurrentSelected == null) { return(false); } else { AdvancedSceneNode nNode = Instantiate(node, nodeContainer.transform).GetComponent <AdvancedSceneNode>(); nNode.transform.position = new Vector3(mCurrentSelected.transform.position.x + (nodeInitialOffset * offsetDirection), mCurrentSelected.transform.position.y - nodeInitialOffset, mCurrentSelected.transform.position.z); mCurrentSelected.SceneNodeList.Add(nNode); GameObject nLine = Instantiate(nodeLine, nodeContainer.transform); nLine.GetComponent <NodeLine>().SetLineAttributes(mCurrentSelected.transform, nNode.transform, 0.25f); nNode.line = nLine; nNode.transform.name = "Lvl" + (TheMenu.value + 1) + "Node"; offsetDirection *= -1f; /*Dropdown.OptionData nData = new Dropdown.OptionData(nNode.transform.name); * mSelectMenuOptions.Add(nData); * mSelectedTransform.Add(nNode.transform); * TheMenu.AddOptions(mSelectMenuOptions);*/ GenerateList(); //Now, select our new current node nNode.transform.parent = mCurrentSelected.transform; SelectionChange(TheMenu.value + 1); TheMenu.value += 1; nNode.gameObject.layer = 9; //We set our layer to the NodeLLayer return(true); } }
// Use this for initialization void Start() { Debug.Assert(TheMenu != null); Debug.Assert(TheRoot != null); Debug.Assert(XformControl != null); Debug.Assert(node != null); Debug.Assert(nodeContainer != null); Debug.Assert(nodeLine != null); /*mSelectMenuOptions.Add(new Dropdown.OptionData(TheRoot.transform.name)); * mSelectedTransform.Add(TheRoot.transform); * //GetChildrenNames("", TheRoot.transform); * GetChildrenNames("", TheRoot); * TheMenu.AddOptions(mSelectMenuOptions);*/ GenerateList(); TheMenu.onValueChanged.AddListener(SelectionChange); mCurrentSelected = TheRoot; SelectionChange(0); primCtrl.InitializeNodeCtrl(TheRoot); }
public bool RemoveSelectedNode() { if (mSelectedTransform.IndexOf(mCurrentSelected.transform) == 0) { return(false); } else { AdvancedSceneNode toDelete = mCurrentSelected; int nIndex = mSelectedTransform.IndexOf(mCurrentSelected.transform) - 1; toDelete.DeleteSelf(); GenerateList(); SelectionChange(nIndex); TheMenu.value = nIndex; mCurrentSelected.RemoveNode(toDelete); return(true); } }
public void GenerateList(AdvancedSceneNode currentNode) { mSelectedNode = currentNode; mSelectMenuOptions.Clear(); mSelectedTransform.Clear(); TheMenu.ClearOptions(); if (currentNode.PrimitiveList.Count <= 0) { mSelectMenuOptions.Add(new Dropdown.OptionData("No Primitives Available")); } else { for (int i = 0; i < currentNode.PrimitiveList.Count; i++) { mSelectMenuOptions.Add(new Dropdown.OptionData(currentNode.PrimitiveList[i].transform.name)); mSelectedTransform.Add(currentNode.PrimitiveList[i].transform); } } SelectionChange(0); TheMenu.AddOptions(mSelectMenuOptions); }
public void InitializeNodeCtrl(AdvancedSceneNode root) { GenerateList(root); TheMenu.onValueChanged.AddListener(SelectionChange); SelectionChange(0); }