/// <summary>
        /// Creates a connector in the given diagram using a serialized connector. This diagram should already have its nodes created.
        /// </summary>
        /// <param name="diagram"></param>
        /// <param name="originNode"></param>
        /// <returns></returns>
        public static Connector CreateConnector(Diagram diagram, SerializableConnector serializedConnector)
        {
            GameObject newConnectorObj = new GameObject("Connector - New Node");

            newConnectorObj.transform.parent = diagram.transform;

            Connector newConnector = newConnectorObj.AddComponent <Connector>();

            // add origin node
            if (serializedConnector.originNodeID != null)
            {
                if (diagram.Nodes.ContainsKey(serializedConnector.originNodeID))
                {
                    var originNode = diagram.Nodes[serializedConnector.originNodeID];
                    newConnector.OriginNode = originNode;
                }
            }

            // add end node
            if (serializedConnector.endNodeID != null)
            {
                if (diagram.Nodes.ContainsKey(serializedConnector.endNodeID))
                {
                    var endNode = diagram.Nodes[serializedConnector.endNodeID];
                    newConnector.EndNode = endNode;
                }
            }

            return(newConnector);
        }
Beispiel #2
0
        /// <summary>
        /// Manufactures a random diagram
        /// </summary>
        /// <param name="diagramName"></param>
        /// <returns></returns>
        Serializablediagram IdiagramSerializer.Loaddiagram(string diagramName)
        {
            var diagram = _saveddiagrams.SingleOrDefault(s => s.diagramName == diagramName);

            return(diagram);

            // create a random diagram
            var numberOfNodes      = UnityEngine.Random.Range(10, 40);
            var numberOfConnectors = UnityEngine.Random.Range(numberOfNodes * 2, numberOfNodes * 5);
            var nodeList           = new List <SerializableNode>();

            for (int i = 0; i < numberOfNodes; i++)
            {
                var newNode = new SerializableNode(Guid.NewGuid(), i.ToString(), "", Color.blue);
                nodeList.Add(newNode);
            }

            var connectorList = new List <SerializableConnector>();

            for (int i = 0; i < numberOfConnectors; i++)
            {
                var nodeInd    = UnityEngine.Random.Range(0, numberOfNodes);
                var originNode = nodeList[nodeInd];

                nodeInd = UnityEngine.Random.Range(0, numberOfNodes);
                var endNode = nodeList[nodeInd];

                var newConnector = new SerializableConnector(originNode.uniqueID, endNode.uniqueID);
                connectorList.Add(newConnector);
            }

            var sdiagram = new Serializablediagram("Random diagram - " + Guid.NewGuid().ToString(), nodeList, connectorList);

            return(sdiagram);
        }