Пример #1
0
        protected virtual GraphCluster AllocCluster()
        {
            var cluster = new GraphCluster(_global_cluster_index);

            _global_cluster_index++;
            return(cluster);
        }
Пример #2
0
        protected virtual void ParseChilds(ref GraphCluster cluster, ref List <GraphObject> objects,
                                           ref List <GraphRelation> relations,
                                           ref List <GraphCluster> clusters,
                                           Node myFocusNode, Node focusNode, IList <Node> childs)
        {
            foreach (var c in childs)
            {
                var obj = AllocObject();
                obj.Label = c.ShortName;
                obj.Shape = GraphShapeEnum.Circle;
                obj.Rect  = c.Rect.CloneType();

                if (c == focusNode)
                {
                    obj.FillColor = GraphColor.Red;
                }

                if (c == myFocusNode)
                {
                    obj.Color = GraphColor.Red;
                }

                cluster.Objects.Add(obj);

                var result = ParseNode(c);
                if (result.Element is GraphCluster)
                {
                    var cc = result.Element as GraphCluster;
                    relations.Add(new GraphRelation(obj, cc.RelateToCluster, relateFromObj2Cluster: cc));
                    clusters.Add(cc);
                }
                else
                {
                    objects.Add(result.Element as GraphObject);
                }

                relations.AddRange(result.Relations);
                clusters.AddRange(result.Clusters);
            }
        }
Пример #3
0
 public GraphRelation(GraphObject obj1, GraphObject obj2, GraphCluster relateFromObj1Cluster = null, GraphCluster relateFromObj2Cluster = null)
     : this(obj1, obj2)
 {
     this.RelateFromObj1Cluster = relateFromObj1Cluster;
     this.RelateFromObj2Cluster = relateFromObj2Cluster;
 }