コード例 #1
0
 public CNeuroNetWrapper(int numInputs, int numOutputs)
 {
     _cnet        = CNeuroNetWrapperFunctions.__NewNeuroNet(numInputs, numOutputs);
     _numInputs   = numInputs;
     _numOutputs  = numOutputs;
     _connections = ConnectionsCollection.GetLinkedCollection(_cnet);
     _nodes       = NodesCollection.GetLinkedConnection(_cnet);
 }
コード例 #2
0
            public static ConnectionsCollection GetLinkedCollection(IntPtr ptr)
            {
                ConnectionsCollection c = null;

                if (ptr != IntPtr.Zero)
                {
                    c = new ConnectionsCollection(ptr);
                }

                return(c);
            }
コード例 #3
0
        public CNeuroNetWrapper(CNeuroNetWrapper copy)
        {
            _numInputs  = copy._numInputs;
            _numOutputs = copy._numOutputs;

            _cnet = CNeuroNetWrapperFunctions.__NewNeuroNet(_numInputs, _numOutputs);

            foreach (var n in copy.Nodes)
            {
                if (n.ID > _numInputs + _numOutputs)
                {
                    CNeuroNetWrapperFunctions.__AddNode(_cnet, n.ID);
                }
            }

            foreach (var c in copy.Connections)
            {
                CNeuroNetWrapperFunctions.__AddConnection(_cnet, c.From, c.To, c.Weight);
            }


            _connections = ConnectionsCollection.GetLinkedCollection(_cnet);
            _nodes       = NodesCollection.GetLinkedConnection(_cnet);
        }
コード例 #4
0
        void OnGUI()
        {
            if (!CheckSelectedObject()){
                EditorGUILayout.HelpBox("Please select scriptable object instance which has a [Graph] attribute", MessageType.Info,true);
                return;
            }

            if (Event.current.type == EventType.ValidateCommand && Event.current.commandName == "UndoRedoPerformed"){
                Event.current.Use();
                return;
            }

            if (Event.current.type == EventType.Used){
                return;
            }

            bool firsDrawCallOnThisGraph = CurrentGraph != lastUsedGraph;
            JointHighlight = (JointHighlightHolder) GUIUtility.GetStateObject(typeof(JointHighlightHolder)
                ,GUIUtility.GetControlID(FocusType.Passive));

            List<Node> nodes  = new List<Node>();
            OnGUIToolBar();

            scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition);
            GUILayoutUtility.GetRect(GUIContent.none, GUIStyle.none, GUILayout.Width(contentWidth), GUILayout.Height(contentHeight));

            if (connectionCollection != null){
                foreach (Connection connectionGUI in connectionCollection.allConnections) {
                    connectionGUI.OnGUI();
                }
            }

            foreach(var graphData in CurrentGraph.ItemList){
                Node nodeGUI = Node.GetInstance((ScriptableObjectNode)graphData, this);
                nodes.Add(nodeGUI);
            }

            BeginWindows();
            foreach (Node node in nodes){
                node.OnGUI();
            }
            EndWindows();

            connectionCollection = new ConnectionsCollection (nodes, this);

            HandleDraggConnections(nodes, connectionCollection.LastDraggedConnection);
            EditorGUILayout.EndScrollView();
            UpdateContentSize(nodes);
            if (firsDrawCallOnThisGraph ){
                Repaint();
            }
            lastUsedGraph = CurrentGraph;
        }