Exemplo n.º 1
0
        void dialogAddNewTransition()
        {
            Estado e = (Estado)MarkovTemplate.stateList[qualJanelaActiva];

            EditorGUILayout.LabelField("State" + e.id, EditorStyles.boldLabel);
            targetId = EditorGUILayout.IntField("Transition to state: ",
                                                targetId);

            if (targetId < 0)
            {
                targetId = 0;
            }
            if (targetId > listaEstados.Length)
            {
                targetId = listaEstados.Length;
            }

            verticalSpace();
            for (int i = 0; i < listaEstados.Length; i++)
            {
                MarkovTemplate.Sensor sTemplate = (MarkovTemplate.Sensor)listaEstados.GetValue(i);
                condicoes[i] = EditorGUILayout.Toggle("Sensor: " + sTemplate, condicoes[i]);
            }
        }
Exemplo n.º 2
0
        void dialogEdicao()
        {
            Estado estado = MarkovTemplate.getState(qualJanelaActiva);

            if (estado != null)
            {
                if (estado.transicoes.Count == 0)
                {
                    janela.height = 100;
                }
                else
                {
                    janela.height = 500;
                }
            }

            verticalSpace();

            EditorGUILayout.LabelField("State: " + qualJanelaActiva, EditorStyles.boldLabel);

            ((Estado)MarkovTemplate.getState(qualJanelaActiva)).titulo = EditorGUILayout.TextField(estado.titulo,
                                                                                                   GUILayout.Width(125));//, GUILayout.Width(75),GUILayout.ExpandWidth(true),EditorStyles.textField);
            verticalSpace();

            //Visualiza Check Boxes das Transicoes
            if (estado != null)
            {
                scrollPos =
                    EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Width(190), GUILayout.Height(300));

                //Para todas as transicoes deste estado
                for (int t = estado.transicoes.Count - 1; t >= 0; t--)
                {
                    bool             aux       = false;
                    Estado.Transicao transicao = (Estado.Transicao)estado.transicoes[t];
                    aux          = condicoes[t];
                    condicoes[t] = EditorGUILayout.BeginToggleGroup("Transition to: " + transicao.destino, condicoes[t]);
                    if (aux != condicoes[t])
                    {
                        if (!condicoes[t])
                        {
                            estado.transicoes.RemoveAt(t);
                            condicoes[t] = true;
                        }
                    }
                    //Condicoes
                    foreach (MarkovTemplate.Sensor sTemplate in listaEstados)
                    {
                        aux = false;
                        int idx = -1;
                        for (int s = 0; s < transicao.condicao.Count; s++)
                        {
                            MarkovTemplate.Sensor sr = (MarkovTemplate.Sensor)transicao.condicao[s];
                            if (sr == (MarkovTemplate.Sensor)sTemplate)
                            {
                                aux = true; idx = s;
                            }
                        }
                        myBool = EditorGUILayout.Toggle("Sensor: " + sTemplate, aux);
                        if (aux != myBool)
                        {
                            if (myBool)
                            {
                                transicao.condicao.Add(sTemplate);
                            }
                            else
                            {
                                transicao.condicao.RemoveAt(idx);
                            }
                        }
                    }
                    EditorGUILayout.EndToggleGroup();
                }
                EditorGUILayout.EndScrollView();
                //EditorGUILayout.EndVertical();
            }
        }