public virtual INode CreateNode(Node node, bool keepGroups, bool ignoreArrowDirection) { // If groups' layout is preserved, then, the underlying // node is always the highest-in-hierarchy group master. if (keepGroups) { while (node.MasterGroup != null) { if (!(node.MasterGroup.MainObject is Node)) break; node = node.MasterGroup.MainObject as Node; } } if (_nodes.Contains(node)) return _nodes[node] as INode; FCNode result = new FCNode(); _nodes[node] = result; result.Create(node, keepGroups, ignoreArrowDirection, this); return result; }
public virtual INode CreateNode(Node node, bool keepGroups, bool ignoreArrowDirection) { // If groups' layout is preserved, then, the underlying // node is always the highest-in-hierarchy group master. if (keepGroups) { while (node.MasterGroup != null) { if (!(node.MasterGroup.MainObject is Node)) { break; } node = node.MasterGroup.MainObject as Node; } } if (_nodes.Contains(node)) { return(_nodes[node] as INode); } FCNode result = new FCNode(); _nodes[node] = result; result.Create(node, keepGroups, ignoreArrowDirection, this); return(result); }