private void DrawRelations(VisualizationNodeBase node, int depth, RelationType relationType)
        {
            List <VisualizationConnection> visualizationConnections = node.GetRelations(relationType);

            foreach (VisualizationConnection childConnection in visualizationConnections)
            {
                DrawConnectionForNodes(node, childConnection, relationType, false, visualizationConnections.Count);

                VisualizationNodeBase childNode = childConnection.VNode;

                if (_viewAreaData.IsRectInDrawArea(childNode.TreeBounds.Rect, new Color(0.1f, 0.2f, 0.5f, 0.3f)))
                {
                    DrawRelations(childNode, depth + 1, relationType);

                    float positionOffset = childNode.GetPositionOffset(_viewAreaData);
                    Rect  r = childNode.Bounds.Rect;
                    r.Set(r.x, r.y + positionOffset, r.width, r.height);

                    if (_viewAreaData.IsRectInDrawArea(r, new Color(0.6f, 0.2f, 0.1f, 0.3f)))
                    {
                        childNode.Draw(depth, relationType, this, this, DisplayData, _viewAreaData);
                    }
                }
            }

            List <VisualizationConnection> childConnections = node.GetRelations(InvertRelationType(relationType), false, true);

            foreach (VisualizationConnection childConnection in childConnections)
            {
                DrawConnectionForNodes(node, childConnection, InvertRelationType(relationType), true, childConnections.Count);
            }
        }