예제 #1
0
        private void DrawFields(QualiScorerData qsData)
        {
            EnumField qualTypeField = new EnumField("type", Qualifier.QualiType.SumOfChildren);

            qualTypeField.BindProperty(serData.FindPropertyRelative("qualiType"));
            LimitedFloatField thresholdField = new LimitedFloatField("threshold", 0, 1);

            thresholdField.BindProperty(serData.FindPropertyRelative("threshold"));

            contentContainer.Add(qualTypeField);
            contentContainer.Add(thresholdField);
        }
예제 #2
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);
        }
예제 #3
0
        public QualiScorerNode(QualiScorerData qsData, SerializedProperty serData) : base(serData)
        {
            title = "QualiScorer";

            /*for(int i = 0; i < qsData.inLinks.Count; i++)
             * {
             *  SerializedProperty linkProp = serData.FindPropertyRelative("inLinks").GetArrayElementAtIndex(i).FindPropertyRelative("weight");
             *  AddInputPort(qsData.inLinks[i], linkProp);
             * }*/
            //AddInputPort(true);
            DrawFields(qsData);
            outPort = AddPort("Output", Orientation.Horizontal, Direction.Output, Port.Capacity.Multi);
            Refresh();
        }
예제 #4
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);
        }
예제 #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();
     }
 }