コード例 #1
0
        public void CreateNewQualiScorerNode(Vector2 position)
        {
            QualiScorerData qsData = new QualiScorerData();

            qsData.position = position;
            qsData.guid     = Guid.NewGuid().ToString();
            graphData.qualiScorers.Add(qsData);
            SaveGraphData();
            int             qsIndex = graphData.qualiScorers.Count - 1;
            QualiScorerNode qsNode  = CreateQualiScorerNode(qsIndex);

            AddNewQualiScorerPort(qsNode, qsIndex);
        }
コード例 #2
0
        private void AddExistingQualiScorerPort(QualiScorerNode qsNode, int qsIndex, int nwIndex)
        {
            NodeWeightedLink nwLink = graphData.qualiScorers[qsIndex].inLinks[nwIndex];

            SaveGraphData();
            SerializedProperty serNWL = graphDataSerialized
                                        .FindProperty("qualiScorers")
                                        .GetArrayElementAtIndex(qsIndex)
                                        .FindPropertyRelative("inLinks")
                                        .GetArrayElementAtIndex(nwIndex)
                                        .FindPropertyRelative("weight");
            Port port = qsNode.AddInputPort(nwLink, serNWL);

            AddExistingPort(nwLink, port, qsNode);
        }
コード例 #3
0
        public QualiScorerNode CreateQualiScorerNode(int index)
        {
            QualiScorerData    qsData  = graphData.qualiScorers[index];
            SerializedProperty qsArr   = graphDataSerialized.FindProperty("qualiScorers");
            SerializedProperty serData = qsArr.GetArrayElementAtIndex(index);
            QualiScorerNode    node    = new QualiScorerNode(qsData, serData);

            this.AddElement(node);
            for (int i = 0; i < qsData.inLinks.Count; i++)
            {
                AddExistingQualiScorerPort(node, index, i);
            }
            this.allNodes.Add(node.guid, node);
            return(node);
        }
コード例 #4
0
        private void AddNewQualiScorerPort(QualiScorerNode qsNode, int qsIndex)
        {
            NodeWeightedLink nwLink = new NodeWeightedLink();

            nwLink.otherNodeID = "";
            nwLink.weight      = 0.5f;
            graphData.qualiScorers[qsIndex].inLinks.Add(nwLink);
            int linkIndex = graphData.qualiScorers[qsIndex].inLinks.Count - 1;

            SaveGraphData();
            SerializedProperty serNWL = graphDataSerialized
                                        .FindProperty("qualiScorers")
                                        .GetArrayElementAtIndex(qsIndex)
                                        .FindPropertyRelative("inLinks")
                                        .GetArrayElementAtIndex(linkIndex)
                                        .FindPropertyRelative("weight");

            qsNode.AddInputPort(nwLink, serNWL);
        }
コード例 #5
0
 private void DeleteEdge(Edge edge)
 {
     if (edge.input.node is QualiScorerNode)
     {
         QualiScorerNode qsNode    = ((QualiScorerNode)edge.input.node);
         NodeData        nData     = GetDataByGuid(qsNode.guid);
         QualiScorerData qData     = (QualiScorerData)nData;
         int             portIndex = qsNode.inputContainer.IndexOf(edge.input);
         qData.inLinks[portIndex].otherNodeID = "";
         SaveGraphData();
     }
     else if (edge.input.node is QualifierNode)
     {
         QualifierNode qNode     = ((QualifierNode)edge.input.node);
         NodeData      nData     = GetDataByGuid(qNode.guid);
         QualifierData qData     = (QualifierData)nData;
         int           portIndex = qNode.inputContainer.IndexOf(edge.input);
         qData.inLinks[portIndex].otherNodeID = "";
         SaveGraphData();
     }
 }