Esempio n. 1
0
        public SubProcesoTriangulacion(TipoTriangulado tipoTriangulado, List <Punto3D> Vertices, List <Linea> Rupturas, Triangulo Envolvente,
                                       int Anterior, int Siguiente)
        {
            _logProceso.Add(new Log.EventoLog(Log.TypeEvento.Inicio, "Inicialización del Proceso."));

            _tipoTriangulado = tipoTriangulado;
            _vertices        = Vertices;
            _rupturas        = Rupturas;

            //Añade a la triangulación los índices de la malla anterior y la siguiente
            _ResTriangulacion = Triangulacion.GetNewResultadoTriangulacion(tipoTriangulado);
            _ResTriangulacion.Seccion.TrianguloSeccion     = Envolvente;
            _ResTriangulacion.Seccion.ParAristas.Anterior  = Anterior;
            _ResTriangulacion.Seccion.ParAristas.Siguiente = Siguiente;

            _logProceso.Add(new Log.EventoLog(Log.TypeEvento.Fin, "Inicialización del Proceso."));

            _Estado = TriangulacionMultiProceso.Estado.EnEspera;
        }
Esempio n. 2
0
        public SubProcesoMerge(TipoTriangulado tipoTriangulado, IResultadoTriangulacion Triang1, IResultadoTriangulacion Triang2)
        {
            _logProceso.Add(new Log.EventoLog(Log.TypeEvento.Inicio, "Inicialización el Proceso."));

            _tipoTriangulado = tipoTriangulado;
            _triangulacion1  = Triang1.Resultado;
            _triangulacion2  = Triang2.Resultado;

            _ResTriangulacion = Triangulacion.GetNewResultadoTriangulacion(tipoTriangulado);
            if (Triang1.Seccion.ParAristas.Anterior == Triang2.Seccion.ParAristas.Siguiente)
            {
                // 1,2 - 0,1
                _ResTriangulacion.Seccion.ParAristas.Anterior =
                    Triang1.Seccion.ParAristas.Siguiente;
                _ResTriangulacion.Seccion.ParAristas.Siguiente =
                    Triang2.Seccion.ParAristas.Anterior;
            }
            else
            {
                if (Triang1.Seccion.ParAristas.Siguiente == Triang2.Seccion.ParAristas.Anterior)
                {
                    // 0,1 - 1,2
                    _ResTriangulacion.Seccion.ParAristas.Anterior =
                        Triang1.Seccion.ParAristas.Anterior;
                    _ResTriangulacion.Seccion.ParAristas.Siguiente =
                        Triang2.Seccion.ParAristas.Siguiente;
                }
                else
                {
                    //No son consecutivas
                }
            }

            _logProceso.Add(new Log.EventoLog(Log.TypeEvento.Fin, "Inicialización el Proceso."));

            _Estado = TriangulacionMultiProceso.Estado.EnEspera;
        }