private TransmissionState DrillDownBranchRecursive(AggregationTreeNode tnUpper, MatrixManipulator manipulator) { var stateUpperDesignated = new TransmissionState(); if (!tnUpper.IsLeaf) { foreach (var tn in tnUpper.Children) { var aggState = DrillDownBranchRecursive(tn, manipulator); var aggValue = manipulator.AggregationFunctionVector[tn.Level](aggState.LevelValues); stateUpperDesignated.LevelValues.Add(aggValue); // pass to upper stateUpperDesignated.TreeNodes.Add(tn); manipulator.setValue(tn.Dimmension, aggValue); } } else { stateUpperDesignated.LevelValues.Add(manipulator.getValue(tnUpper.Dimmension)); } return(stateUpperDesignated); }
public void DrillDownTree(MatrixManipulator manipulator) { DrillDownBranchRecursive(_seedAggregationTree, manipulator); }