public float GetSumLinkScales() { float sumLinkScales = 0; for (int n = 0; n < links.Count; n++) { NextNNLink link = links[n]; sumLinkScales += link.go.transform.localScale.x; } return(sumLinkScales); }
public NextNNLink DoesLinkAlreadyExist(NextNNNode node) { for (int n = 0; n < global.linksAll.Count; n++) { NextNNLink link = global.linksAll[n]; if (link.nodeFrom == node && link.nodeTo == this) { return(link); } if (link.nodeTo == node && link.nodeFrom == this) { return(link); } } return(null); }
public void FeedForward() { // Debug.Log("FeedForward...\n"); if (value > 0) { float sumLinkScales = GetSumLinkScales(); // Debug.Log("FeedForward value > 0 links:" + links.Count + "\n"); for (int n = 0; n < links.Count; n++) { NextNNLink link = links[n]; float fraction = link.go.transform.localScale.x / sumLinkScales; fraction = 1f / links.Count; NextNNNode node = links[n].nodeTo; float portion = fraction * value; Debug.Log("portion:" + portion + "\n"); node.value = portion; node.UpdateValueColor(); } value = 0; //value * .85f; UpdateValueColor(); } }
public void UpdateLinks() { if (go.transform.position != posLast || global.distNear != distNearLast) { ClearLinks(); ClearNearNodes(); nearNodes = new List <NextNNNode>(); links = new List <NextNNLink>(); for (int n = 0; n < global.nodes.Count; n++) { if (n != index) { NextNNNode node = global.nodes[n]; float dist = Vector3.Distance(go.transform.position, node.go.transform.position); if (dist < global.distNear) { nearNodes.Add(node); NextNNLink linkExisting = DoesLinkAlreadyExist(node); if (linkExisting != null) { links.Add(linkExisting); } else { NextNNLink link = new NextNNLink(this, node, global); links.Add(link); global.linksAll.Add(link); } } } } } //posLast = go.transform.position; //distNearLast = global.distNear; // FeedForward(); }