/// <summary> /// Show the load, delete and record buttons /// </summary> protected void ShowButtons(IMLConfiguration node) { m_ButtonsRect.x = m_IconCenter.x + 20; m_ButtonsRect.y = m_IconCenter.y + m_IconCenter.height; m_ButtonsRect.width = m_BodyRect.width - 40; m_ButtonsRect.height = 150; GUILayout.BeginArea(m_ButtonsRect); // if button contains mouse position TrainModelButton(); GUILayout.Space(15); RunModelButton(); GUILayout.Space(15); GUILayout.BeginHorizontal(); GUILayout.Space(NodeWidth / 2 - 40); if (GUILayout.Button("", m_NodeSkin.GetStyle("Reset"))) { node.ResetModel(); numberOfExamplesTrained = 0; } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("reset model", m_NodeSkin.GetStyle("Reset Pink Label")); GUILayout.EndHorizontal(); GUILayout.Space(15); ShowRunOnAwakeToggle(node); GUILayout.EndArea(); }
/// <summary> /// Called whenever the xNode editor window is updated /// </summary> public override void OnBodyGUI() { // Override label width for this node (since some names are quite long) LabelWidth = 184; base.OnBodyGUI(); m_IMLConfigNode = (target as IMLConfiguration); // SHOW KEYBOARD SHORTCUTS // Show information about runtime keys for interaction GUIStyle styleGUIBox = new GUIStyle(GUI.skin.box); styleGUIBox.richText = true; if (m_IMLConfigNode.EnableKeyboardControl) { GUILayout.Box("<b>Runtime Keys:</b>\n <b>Train:</b> " + m_IMLConfigNode.TrainingKey.ToString() + " | <b>Run:</b> " + m_IMLConfigNode.RunningKey, styleGUIBox); //GUILayout.Box("<b>Runtime Keys:</b>\n <b>Run:</b> R", styleGUIBox); // Show key configs m_IMLConfigNode.TrainingKey = (KeyCode)EditorGUILayout.EnumFlagsField(m_IMLConfigNode.TrainingKey); m_IMLConfigNode.RunningKey = (KeyCode)EditorGUILayout.EnumFlagsField(m_IMLConfigNode.RunningKey); EditorGUILayout.Space(); } // SHOW INPUTS CONFIG EditorGUILayout.Space(); ShowExpectedInputsConfigLogic(); EditorGUILayout.Space(); // SHOW OUTPUTS CONFIG ShowExpectedOutputsConfigLogic(); EditorGUILayout.Space(); // SHOW TRAINING STATUS ShowTrainingStatus(); // SHOW TOTAL NUMBER OF TRAINING EXAMPLES // Account for dtw if (m_IMLConfigNode.LearningType == IMLSpecifications.LearningType.DTW) { EditorGUILayout.LabelField("Total No. Training Series: ", m_IMLConfigNode.TotalNumTrainingData.ToString()); } // classification/regression else { EditorGUILayout.LabelField("Total No. Training Examples: ", m_IMLConfigNode.TotalNumTrainingData.ToString()); } EditorGUILayout.Space(); // SHOW MODEL OUTPUT ShowModelOutput(); EditorGUILayout.Space(); // SHOW TRAIN BUTTON ShowTrainModelButton(); // SHOW RUN BUTTON ShowRunModelButton(); // Init model button (to debug the model not working) if (GUILayout.Button("Reset Model")) { m_IMLConfigNode.ResetModel(); } // SHOW FEATURE SELECTION MATRIX // ShowFeatureSelectionMatrix(); // Errors with needed connections if (m_IMLConfigNode.ExpectedOutputList.Count == 0) { EditorGUILayout.HelpBox("There are no Expected Outputs Configured!", MessageType.Error); } if (m_IMLConfigNode.InputFeatures == null || m_IMLConfigNode.InputFeatures.Count == 0) { EditorGUILayout.HelpBox("There are no Realtime Input Features Connected!", MessageType.Error); } }