simplify terminal branch case in pivot routine
This commit is contained in:
parent
1424c18cc4
commit
6e1c170ff6
25
index.html
25
index.html
@ -240,29 +240,20 @@ var Pivot =
|
||||
{
|
||||
// collect modifiers effecting leaves
|
||||
let modifiers = [];
|
||||
let check = N.Step(inLeaf, "ModifyAt", false);
|
||||
if(check)
|
||||
{
|
||||
modifiers = modifiers.concat(check);
|
||||
}
|
||||
check = N.Step(inLeaf, "ModifyDown", false);
|
||||
if(check)
|
||||
{
|
||||
modifiers = modifiers.concat(check);
|
||||
}
|
||||
let collectModifier = n => modifiers.push(n);
|
||||
let connectModifiers = n => modifiers.forEach(inModifier => N.Connect(inModifier, n, "ModifyOut", true));
|
||||
|
||||
N.Walk(collectModifier, inLeaf, "ModifyAt", false);
|
||||
N.Walk(collectModifier, inLeaf, "ModifyDown", false);
|
||||
|
||||
if(modifiers.length)
|
||||
{
|
||||
// apply them to the branch
|
||||
inLastBranch.ID.Walk = N.ID.Walk;
|
||||
modifiers.forEach( inModifier => N.Connect(inModifier, inLastBranch, "ModifyOut") )
|
||||
connectModifiers(inLastBranch);
|
||||
|
||||
// also walk them up and connect, but with "check unique" enabled
|
||||
N.Walk( inNode=>
|
||||
{
|
||||
modifiers.forEach( inModifier => N.Connect(inModifier, inNode, "ModifyOut", true) )
|
||||
}
|
||||
, inLastBranch, "Hierarchy", false);
|
||||
N.Walk(connectModifiers, inLastBranch, "Hierarchy", false);
|
||||
}
|
||||
|
||||
// lastly connect the leaf to the branch
|
||||
@ -275,7 +266,7 @@ var Pivot =
|
||||
{
|
||||
iterator = child => Pivot.Pivot(inRoot, child, inPivotIndicies, inSumIndicies, depth+1);
|
||||
}
|
||||
N.Step(inParent, "Hierarchy").forEach(iterator);
|
||||
N.Walk(iterator, inParent, "Hierarchy");
|
||||
return inParent;
|
||||
},
|
||||
Create(inPivotIndicies, inSumIndicies)
|
||||
|
Loading…
Reference in New Issue
Block a user