#pragma once #include #include #include ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////// /** * @file olv_limp_def.h * Archivo de definiciones generales de Olivia. */ //Defines #define OLV_LIMP_AMB_NW_NODEF USHRT_MAX//-1 //dth[i].coste) j=i; } return j; }; }th_param_planif; /* * Para revisar la elevación de las carreteras y borrar uniones que no debería haber por estar a distinta elevación */ #define INFO_ASO_NW_NO_ELEV 0 enum INFO_ASO_NW_NODOS { FROM = 0, TO = 1, N_NODOS = 2 }; /* * Estructura para almacenar los id de los nodos de cada ent de la nw TO y FROM, y la elevación */ typedef struct Info_aso_nw_elev { short elev[N_NODOS]; //indica elevación //elev[FROM] = 0 o 1 //elev[TO]=0 o 1 double inod[N_NODOS]; //almacena aquí el id de las conjunciones de la carto FROM y TO double coord[N_NODOS][3]; //almacena aquí las coord de las conjunciones de la carto FROM y TO bool inod_check[N_NODOS]; //almacena aquí si se ha comprobado ya ese nodo int i_nw; //la ref de la nw }Info_aso_nw_elev; enum INFO_ASO_NW_ELEV { MISMA_ELEV = 0, DIST_ELEV = 1, N_ELEV = 2 }; /* * Estructura para almacenar nodos que están a distinta elevación */ typedef struct Info_aso_conj_elev_aux { short tofrom; int i_nw; void set(int _i_nw, short _tofrom) { i_nw = _i_nw; tofrom = _tofrom; } }Info_aso_conj_elev_aux; /* * Estructura para almacenar los id de los nodos a los que llegan ent de la nw con distinta elevación */ typedef struct Info_aso_conj_elev { std::vector conj_nw[N_ELEV]; //dos maps con las entidades de la nw que están a nivel 0 y a nivel 1 en la misma conjunción char key_coord[64]; //indica la key de la coordenada }Info_aso_conj_elev; /* * Estructura para almacenar los id de los nodos a los que llegan ent de la nw con distinta elevación de cada subthread */ typedef struct th_param_dist_elev_thr { std::vector conj_elev_i; //la clave son las coordenadas x-y en formato texto }th_param_dist_elev_thr; /** * Parametros de los thead que buscan nodos a dist elev */ typedef struct th_param_dist_elev { BOOL pirate;//indica a los thread que hay que irse BOOL abs; int id_curro;//id de curro int modo;//indica el modo de curro long nth;//numero de thread currando long nth_tot; int id_th;//indica al thread el id que tiene int n_nw; int milis_sleep; th_param_dist_elev_thr *conj_th; std::vector iaso_elev; ///