Example #1
0
        private void CreateTree(List <PiePieceDescriptor> list, CallTreeNodeViewModel parent, double rotation, long totalCycles, int level)
        {
            if (level == 10 || Task.Current.IsCancelled)
            {
                return;
            }

            level++;

            int i = 0;

            foreach (CallTreeNodeViewModel child in parent.Children)
            {
                if (Task.Current.IsCancelled)
                {
                    return;
                }

                double childWedgeAngle;
                childWedgeAngle = child.CpuCyclesSpent * 360.0 / totalCycles;
                if (childWedgeAngle >= 360)
                {
                    childWedgeAngle = 359.9999;
                }
                if (childWedgeAngle > 0.5)
                {
                    PiePieceDescriptor piePiece = new PiePieceDescriptor {
                        Radius = 20, WedgeAngle = childWedgeAngle, RotationAngle = rotation, Level = level, Node = child
                    };
                    list.Add(piePiece);

                    // create pie pieces for children
                    CreateTree(list, child, rotation, totalCycles, level);

                    rotation += childWedgeAngle;

                    i++;
                }
            }
        }
Example #2
0
		private void CreateTree(List<PiePieceDescriptor> list, CallTreeNodeViewModel parent, double rotation, long totalCycles, int level)
		{
			if (level == 10 || Task.Current.IsCancelled)
				return;

			level++;

			int i = 0;

			foreach (CallTreeNodeViewModel child in parent.Children)
			{
				if (Task.Current.IsCancelled)
					return;
				
				double childWedgeAngle;
				childWedgeAngle = child.CpuCyclesSpent * 360.0 / totalCycles;
				if (childWedgeAngle >= 360)
					childWedgeAngle = 359.9999;
				if (childWedgeAngle > 0.5) {
					PiePieceDescriptor piePiece = new PiePieceDescriptor { Radius = 20, WedgeAngle = childWedgeAngle, RotationAngle = rotation, Level = level, Node = child };
					list.Add(piePiece);
					
					// create pie pieces for children
					CreateTree(list, child, rotation, totalCycles, level);
					
					rotation += childWedgeAngle;

					i++;
				}
			}
		}