예제 #1
0
 /// <summary>
 /// Constructor para duplicar el tipo de dato
 /// </summary>
 /// <param name="area">Objeto CAreasInteres a duplicar</param>
 public CAreaInteres(CAreaInteres area)
 {
     x = area.x;
     y = area.y;
     width = area.width;
     nombre = area.nombre;
     ini = area.ini;
     fin = area.fin;
 }
예제 #2
0
        private void AddArea(CCuadrado punto, string elemento)
        {
            // se incrementa el contador de areas
            countAreas++;

            // se cambia el punto obtenido a las coordenadas originales, considerando que el tamaño del pictCore y de la imagen son diferentes
            CCuadrado corregido = new CCuadrado(punto);
            corregido = MainForm.CorregirPictBox2Original(corregido, padre.actual.datacuboHigh.widthSeg, pictCore.Height);
            CAreaInteres area = new CAreaInteres(corregido.x, corregido.y, corregido.width, "Area" + countAreas.ToString(), Convert.ToInt32(numActual.Value), padre.actual.datacuboHigh.dataCube.Count);

            switch (elemento)
            {
                case "core":

                    padre.actual.areasCore.Add(area);

                    // se ordenan los elementos de principio a fin
                    this.padre.actual.areasCore.Sort(delegate(CAreaInteres a, CAreaInteres b)
                    {
                        return a.ini.CompareTo(b.ini);
                    });

                    // se verifica que no se crucen las areas entre si
                    if (this.padre.actual.areasCore.Count > 1)
                    {
                        // solo se verifica que no hayan cruces si y solo si hay mas de una area agregada a la lista
                        for (int i = 1; i < this.padre.actual.areasCore.Count; i++)
                        {
                            if (this.padre.actual.areasCore[i - 1].fin > this.padre.actual.areasCore[i].ini)
                                this.padre.actual.areasCore[i - 1].fin = this.padre.actual.areasCore[i].ini - 1;
                        }
                    }

                    // se llena el ListBox
                    LlenarListAreas();

                    // se busca que indice del listbox se debe seleccionar, en funcion del slide en el que se encuentra
                    for (int i = 0; i < this.padre.actual.areasCore.Count; i++)
                    {
                        if ((trackElementos.Value >= this.padre.actual.areasCore[i].ini) & (trackElementos.Value <= this.padre.actual.areasCore[i].fin))
                            lstAreas.SelectedIndex = i;
                    }

                    // se pintan las areas el pictCore
                    controlPaint = true;
                    pictCore.Invalidate();

                    // se envia el list de areas de interes a la SelectAreas2Form
                    //padre.selecAreas2Form.GetAreasCore(areasCore, pictCore.Image.Width);
                    break;
            }
        }