public Porta(string nome,int offset, TipoDePorta tipo, WNode nodoPai) { Nome = nome; yOffset = offset; tipoDaPorta = tipo; nodoDono = nodoPai; cor = Color.white; switch(offset) { case 0: cor = Color.green; break; case 1: cor = Color.blue; break; case 2: cor = Color.red; break; case 3: cor = Color.yellow; break; case 4: cor = Color.black; break; case 5: cor = Color.cyan; break; default: Debug.LogError("erro cor da porta não suportada"); break; } //guiskin = Resources.Load<GUISkin>("GUISkinNode"); // textura = Resources.Load<Texture2D>("CirculoBranco"); textura = (Texture2D)Object.Instantiate(Resources.Load<Texture2D>("CirculoBranco")); Color[] colors = textura.GetPixels(); for (int i = 0; i < colors.Length; i++) { if (colors[i].a != 0) colors[i] = cor; } textura.SetPixels(colors); textura.Apply(); }
void UpdateNodes(WNode w) { MoveWNode(w); foreach (Transform child in w.transform) { WNode wn = child.GetComponent <WNode>(); if (wn != null) { UpdateNodes(wn); } } }
private void SaveOriginalNodeStates(WNode wn) { wn.SetOriginalUpVector(); foreach (Transform t in wn.transform) { WNode child = t.GetComponent <WNode>(); if (child != null) { SaveOriginalNodeStates(child); } } }
private void ResetNodes(WNode wn) { wn.transform.up = wn.GetOriginalupVector(); foreach (Transform t in wn.transform) { WNode child = t.GetComponent <WNode>(); if (child != null) { ResetNodes(child); } } }
void CriarNode() { WNode novoNode = new WNode("Node", livreID()); if (listaDeWNodes.Count > 0) { novoNode._posicao.x = Event.current.mousePosition.x; novoNode._posicao.y = Event.current.mousePosition.y; novoNode._tamanho.x = listaDeWNodes[0]._tamanho.x; novoNode._tamanho.y = listaDeWNodes[0]._tamanho.y; } listaDeWNodes.Add(novoNode); }
void MoveWNode(WNode W) { // Can simplify this if-else if (W.forward && W.currentR < W.MAX_R) { W.ApplyWindMovementVector(WindVector); } else if (W.forward && W.currentR >= W.MAX_R) { W.forward = false; } else if (!W.forward && W.currentR > W.MIN_R) { W.ApplyWindMovementVector(WindVector); } else if (!W.forward && W.currentR <= W.MIN_R) { W.forward = true; } }
public int JaExisteEsseLink(WNode nodo ) { //acha o link que tem esse nodo e retorna o indice do link for (int l = 0; l < listaDeLinks.Count; l++) { if (listaDeLinks[l].portas[0].nodoDono.Id == nodo.Id) { return l; } if (listaDeLinks[l].portas[1].nodoDono.Id == nodo.Id) { return l; } } return -1; }
void CriarNode(float x, float y) { WNode novoNode = new WNode("Node", livreID()); if (listaDeWNodes.Count > 0) { novoNode._posicao.x = x; novoNode._posicao.y = y; novoNode._tamanho.x = listaDeWNodes[0]._tamanho.x; novoNode._tamanho.y = listaDeWNodes[0]._tamanho.y; } listaDeWNodes.Add(novoNode); }
public void Conectar(WNode nodo1, WNode nodo2) { Porta portalivre1 = nodo1.PortaSaidaLivre(); Porta portalivre2 = nodo2.PortaEntradaLivre(); if(portalivre1==null) { nodo1.AdicionarPortas(); portalivre1 = nodo1.PortaSaidaLivre(); } if (portalivre2 == null) { nodo2.AdicionarPortas(); portalivre2 = nodo2.PortaSaidaLivre(); } Conectar(portalivre1, portalivre2); }
//usado na função importarxml2 void TraverseNode2(ref WNode nodo, XmlNode XmlNode, int indentacao) { //processa nodo List<Propriedade> listaP = new List<Propriedade>(); //lista de propriedade do node for (int i = 0; i < XmlNode.Attributes.Count; i++) { listaP.Add(new Propriedade(XmlNode.Attributes[i].Name, 0, XmlNode.Attributes[i].Value)); } //tentando criar uma estrutura pra arvore :S WNode novoNodo = CriarNode(nodo._posicao.x + nodo._tamanho.x + 100, nodo._posicao.y + nodo._tamanho.y/2 + indentacao * (nodo._tamanho.y+20), 100, 100, ref listaP); Conectar(nodo, novoNodo); int numFilhos=XmlNode.ChildNodes.Count; indentacao ++; foreach (XmlNode nodoxml in XmlNode.ChildNodes) { TraverseNode2(ref novoNodo, nodoxml,indentacao); indentacao += numFilhos/2; } }
//usado na função exportarxml2 void TraverseNode(ref WNode nodo, ref XmlElement nodoXML,ref XmlDocument xml) { //processa nodo XmlElement novoNodoXML = xml.CreateElement(nodo.Nome); //pra cada propriedade adiciona um atributo ao nodo // novoNodoXML.SetAttribute("porta",nodo); Debug.Log(" numero de propriedades desse nó =" + nodo.listaDePropriedades.Count); for (int j = 0; j < nodo.listaDePropriedades.Count; j++) { novoNodoXML.SetAttribute( nodo.listaDePropriedades[j].Nome , nodo.listaDePropriedades[j].texto); } nodoXML.AppendChild(novoNodoXML); // Debug.Log("nodo processado!"); //pra cada porta... for(int i=0; i<nodo.listaDePortas.Count ;i++) { if(nodo.listaDePortas[i].tipoDaPorta==TipoDePorta.SAIDA) //pega o nodo pai no final desse link //e propaga if(nodo.listaDePortas[i].Link!=null) TraverseNode(ref nodo.listaDePortas[i].Link.portaEntrada().nodoDono, ref novoNodoXML, ref xml); } }
void SelecionarNode(int i) { if( listaDeWNodes[i].MouseDown(Event.current.mousePosition)==true) { //aqui seria pro mouse perder o ultimo foco nodoSelecionadoAtualmente = listaDeWNodes[i]; } }
WNode CriarNode(float x, float y, float largura,float altura,ref List<Propriedade> lista) { WNode novoNode = new WNode("nodo", livreID(),x,y,largura,altura); novoNode.listaDePropriedades = lista; listaDeWNodes.Add(novoNode); return novoNode; }