private void RefreshObjectTreeNode(IJoint joint, TreeNodeCollection nodes) { TreeNode node = new TreeNode(joint.ToString()); node.Tag = joint; AddLocationTreeNode(node, joint.Location); AddRotationNode(node, joint.Rotation); AddZIndexNode(node, joint.ZIndex); TreeNode elementsNode = new TreeNode("elements"); foreach (IElement childElement in joint.Elements) { TreeNode elementNode = new TreeNode(childElement.ToString()); AddPointsNode(elementNode, childElement.Points); AddColorsNode(elementNode, childElement.Colors); AddZIndexNode(elementNode, childElement.ZIndex); elementNode.Tag = childElement; elementsNode.Nodes.Add(elementNode); } node.Nodes.Add(elementsNode); TreeNode jointsNode = new TreeNode("joints"); foreach (IJoint childJoint in joint.Joints) { RefreshObjectTreeNode(childJoint, jointsNode.Nodes); } node.Nodes.Add(jointsNode); nodes.Add(node); }