示例#1
0
        /// <summary>
        /// Método que marca una figura como seleccionada. Además desmarca la figura seleccionada anteriormente.
        /// Se asume, por diseño con contratos, que es una figura válida.
        /// </summary>
        /// <param name="figure">La figura a seleccionar</param>
        public void SelectFigure(Figure figure)
        {
            // Desmarcamos la figura anterior
            if(SelectedFigure != null)
                SelectedFigure.isSelected = false;

            // Marcamos la figura actual
            SelectedFigure = figure;
            SelectedFigure.isSelected = true;

            //Anulamos input si estabamos cambiando valores
            if (SelectedButton != null)
            {
                SelectedButton.COMPLETED = false;
                SelectedButton.RestartInput();
                sceneState = SceneState.Free;
            }
        }
示例#2
0
        /// <summary>
        /// Agrega una figura a la lista. La gracia está es que cada figura tiene un color único asignado, provisto
        /// por la escena. Esto sirve para tener una manera de identificar las figuras al momento de seleccionar.
        /// </summary>
        /// <param name="figure"></param>
        public void AddFigure(Figure figure)
        {
            // Le asignamos el color único a la figura
            figure.Color = new Vector(redId, blueId, greenId) / (float)255;
            // Hay que darlo vuelta B y G por que OpenGL, por alguna razón los lee distinto
            figure.ColorByte = new byte[3] { (byte)redId, (byte)blueId, (byte)greenId };

            // Creamos el próximo color único
            redId++;
            if (redId == 250)
            {
                redId = 0;
                greenId++;
                if (greenId == 250)
                {
                    greenId = 0;
                    blueId++;
                }
            }

            if (figure.Name == "")
                figure.Name = figure.ToString();
            figure.Name = figure.Name + "_" + figureCount++;
            SceneFigures.Add(figure);
        }