void BuildMeshNode(DirectX.ComplexDynamicMesh builder, ThreadScroll scroll, EventNode node, int level) { if (level == MaxDepth) { return; } Interval interval = scroll.TimeToUnit(node.Entry); double y = (double)level / MaxDepth; double h = 1.0 / MaxDepth; builder.AddRect(new Rect(interval.Left, y, interval.Width, h), node.Description.Color); foreach (EventNode child in node.Children) { BuildMeshNode(builder, scroll, child, level + 1); } }
void BuildMeshNode(DirectX.ComplexDynamicMesh builder, ThreadScroll scroll, EventNode node, int level) { if (level == MaxDepth) { return; } Interval interval = scroll.TimeToUnit(node.Entry); double y = (double)level / MaxDepth; double h = 1.0 / MaxDepth; Color nodeColor = node.Description.ForceColor; Color nodeGradColor = DirectX.Utils.MultiplyColor(nodeColor, NodeGradientShade); builder.AddRect(new Rect(interval.Left, y, interval.Width, h), new Color[] { nodeColor, nodeGradColor, nodeGradColor, nodeColor }); foreach (EventNode child in node.Children) { BuildMeshNode(builder, scroll, child, level + 1); } }