diff --git a/index.html b/index.html index f2093b0..1d9966b 100644 --- a/index.html +++ b/index.html @@ -9,10 +9,13 @@ var N = { Parents:[], WalkID:0, - RecieveAddition:[], - RecieveMultiplication:[], - GiveAddition:[], - GiveMultiplication:[] + GetUpward:[], + GetDownward:[], + GetOutside:[], + + SetUpward:[], + SetDownward:[], + SetOutside:[] }; inChildren.forEach( inChild => N.Connect(output, "Children", inChild, "Parents") ); return output; @@ -24,7 +27,12 @@ var N = { }, Disconnect:(inParent, inParentRefs, inChild, inChildRefs) => { - //inParent[inParentRefs] + let checkRemove = (inArray, inMember) => + { + inArray.findIndex( (inMember, inIndex, inArray) => (inMember === match) ? inArray.splice(inIndex, 1) : false ); + }; + checkRemove(inParent[inParentRefs], inChild); + checkRemove(inChild[inChildRefs], inParent); }, Walk:(inNode, inKey, inIterator, inWalkID) => { @@ -43,21 +51,23 @@ var N = { } } }, - Modify(inNode, inAmount) + Modify(inNode) { inNode.WalkID = "tweak-"+Math.random(); let leaves = []; - let gatherAddition = n => N.Connect(inNode, "GiveAddition", n, "RecieveAddition"); - let gatherMultiply = n => + let gatherUp = n => N.Connect(inNode, "SetUpward", n, "GetUpward"); + let gatherDown = n => { - N.Connect(inNode, "GiveMultiplication", n, "RecieveMultiplication"); + N.Connect(inNode, "SetDownward", n, "GetDownward"); n.Children.length == 0 ? leaves.push(n) : null; }; + let gatherOut = n => N.Connect(inNode, "SetOutside", n, "GetOutside"); - N.Walk(inNode, "Parents", gatherAddition, inNode.WalkID); - N.Walk(inNode, "Children", gatherMultiply, inNode.WalkID); - leaves.forEach(leaf=>N.Walk(leaf, "Parents", gatherAddition, inNode.WalkID)); + N.Walk(inNode, "Parents", gatherUp, inNode.WalkID); + N.Connect(inNode, "SetDownward", inNode, "GetDownward"); + N.Walk(inNode, "Children", gatherDown, inNode.WalkID); + leaves.forEach(leaf=>N.Walk(leaf, "Parents", gatherOut, inNode.WalkID)); } };