Últimos cambios para detectar nodos a distinta elevación
parent
ad248325eb
commit
0647ffd070
|
|
@ -391,7 +391,7 @@ void COlivia::prueba()
|
||||||
|
|
||||||
///////////////////
|
///////////////////
|
||||||
//solo para debug elena olivia
|
//solo para debug elena olivia
|
||||||
i=1;
|
i=2;
|
||||||
|
|
||||||
if(fin)
|
if(fin)
|
||||||
{
|
{
|
||||||
|
|
@ -423,6 +423,19 @@ void COlivia::prueba()
|
||||||
"/path_data:D:\\Proyectos\\Olivia\\Instal3.0\\data_prueba_2\\data_T00_A0405_20230111_233224.shp "\
|
"/path_data:D:\\Proyectos\\Olivia\\Instal3.0\\data_prueba_2\\data_T00_A0405_20230111_233224.shp "\
|
||||||
"/path_nw:D:\\Proyectos\\Olivia\\Instal3.0\\data_prueba_2\\nw_20230111_233224.shp ");
|
"/path_nw:D:\\Proyectos\\Olivia\\Instal3.0\\data_prueba_2\\nw_20230111_233224.shp ");
|
||||||
break;
|
break;
|
||||||
|
case 2:
|
||||||
|
sprintf_s(config, max_char_cap, "/CONFIG_PLANIF /campo_capaci:CAPACIDAD /kg_max:7500 /campo_kgrecog:KGRECO /campo_uds:UNIDADES /recogida_kg:200 /carga_cont:0 "\
|
||||||
|
"/densidad:-1 /t_conv:480 /t_descan:30 /t_vacia:90 /t_descarg:40 /t_sallleg:25 /h_inicio:420 /trafico:80 "\
|
||||||
|
"/n_ptsctrl:3 /n_secdef:3 /anch_vehi:0 /giro_vehi:175 /coor_inst_x:544038,5064 /coor_inst_y:4624375,9191 "\
|
||||||
|
"/coor_desc_x:543887,2812 /coor_desc_y:4623093,8184 "\
|
||||||
|
"/sens_id:0 /sens_url:0 /sens_fechai:0 /sens_fechaf:0 /md_pet:0 /aislados:1 /lateralidad:0 "\
|
||||||
|
"/cons_onew:ONEWAY /cons_kph:KPH /cons_fow:FOW /cons_name:NAME "\
|
||||||
|
"/atr_TF:TF /atr_FT:FT /atr_N:N /atr_pedes:14 /str_tto:Resto "\
|
||||||
|
"/Camp_sector:SECTOR /Camp_secuencia:SECUENCIA /Camp_objectid:FID "\
|
||||||
|
"/Giro_max_vehiculo:175 /Desv_max_rel:0.15 /Desv_max_abs:1000 "\
|
||||||
|
"/path_data:D:\\Proyectos\\Olivia\\Instal3.0\\data_prueba_put_1\\data_F01_C01_20230207_112246.shp "\
|
||||||
|
"/path_nw:D:\\Proyectos\\Olivia\\Instal3.0\\data_prueba_put_1\\nw_20230207_112246.shp ");
|
||||||
|
break;
|
||||||
case 3://nw de arcmap
|
case 3://nw de arcmap
|
||||||
sprintf_s(config, max_char_cap, "/CONFIG /t_tto:2900 /restr_cir:0 /u_tto:3 /v_despl:5 /t_conv:480 /t_descan:30 /t_despl:25 /t_carg:40 "\
|
sprintf_s(config, max_char_cap, "/CONFIG /t_tto:2900 /restr_cir:0 /u_tto:3 /v_despl:5 /t_conv:480 /t_descan:30 /t_despl:25 /t_carg:40 "\
|
||||||
"/h_inicio:450 /trafico:80 /n_ptsctrl:3 /n_secdef:3 /anch_med:2 /coor_inst_x:0 /coor_inst_y:0 /aislados:1 /cons_obser:OBSERVACIONES "\
|
"/h_inicio:450 /trafico:80 /n_ptsctrl:3 /n_secdef:3 /anch_med:2 /coor_inst_x:0 /coor_inst_y:0 /aislados:1 /cons_obser:OBSERVACIONES "\
|
||||||
|
|
@ -431,7 +444,7 @@ void COlivia::prueba()
|
||||||
"/atr_TF:TF /atr_FT:FT /atr_N:N /atr_pedes:14 /str_tto:Barrido_man "\
|
"/atr_TF:TF /atr_FT:FT /atr_N:N /atr_pedes:14 /str_tto:Barrido_man "\
|
||||||
"/path_data:D:\\Proyectos\\Olivia\\Instal2.0\\data\\data_T00_A04050607_NNivel7_20220327_155737.shp /path_nw:D:\\Proyectos\\Olivia\\Instal2.0\\data\\nw_20220327_170516.shp ");
|
"/path_data:D:\\Proyectos\\Olivia\\Instal2.0\\data\\data_T00_A04050607_NNivel7_20220327_155737.shp /path_nw:D:\\Proyectos\\Olivia\\Instal2.0\\data\\nw_20220327_170516.shp ");
|
||||||
break;
|
break;
|
||||||
case 2://orig arcmap
|
case 5://orig arcmap
|
||||||
sprintf_s(config, max_char_cap, "/CONFIG /t_tto:2900 /restr_cir:0 /u_tto:3 /v_despl:5 /t_conv:480 /t_descan:30 /t_despl:25 /t_carg:40 "\
|
sprintf_s(config, max_char_cap, "/CONFIG /t_tto:2900 /restr_cir:0 /u_tto:3 /v_despl:5 /t_conv:480 /t_descan:30 /t_despl:25 /t_carg:40 "\
|
||||||
"/h_inicio:420 /trafico:80 /n_ptsctrl:3 /n_secdef:3 /anch_med:2 /coor_inst_x:0 /coor_inst_y:0 /aislados:0 /cons_obser:OBSERVACIONES "\
|
"/h_inicio:420 /trafico:80 /n_ptsctrl:3 /n_secdef:3 /anch_med:2 /coor_inst_x:0 /coor_inst_y:0 /aislados:0 /cons_obser:OBSERVACIONES "\
|
||||||
"/cons_anch_tip:ANCHO_TIPO /cons_tipolo:TIPOLOGIA /cons_tip_ent:NOM_TIPO_ENTIDAD /atr_aparc:Banda Aparcamiento /atr_bord:Bordillo Libre "\
|
"/cons_anch_tip:ANCHO_TIPO /cons_tipolo:TIPOLOGIA /cons_tip_ent:NOM_TIPO_ENTIDAD /atr_aparc:Banda Aparcamiento /atr_bord:Bordillo Libre "\
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,7 @@ public:
|
||||||
std::map<int,Info_aso2> iaso; ///<Map con mismos elementos que entidades la carto, con la información asociada
|
std::map<int,Info_aso2> iaso; ///<Map con mismos elementos que entidades la carto, con la información asociada
|
||||||
std::vector<Info_tramos> *tramos;
|
std::vector<Info_tramos> *tramos;
|
||||||
|
|
||||||
std::map<int, Info_aso_nw_elev> iaso_elev; ///<Map con mismos elementos que la nw, con la info de elevación de los nodos
|
std::vector<Info_aso_nw_elev> iaso_elev; ///<Map con mismos elementos que la nw, con la info de elevación de los nodos
|
||||||
|
|
||||||
//*************************************************************************************
|
//*************************************************************************************
|
||||||
//Funciones
|
//Funciones
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <float.h>
|
#include <float.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <map>
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
//////////////////////////////////////////////////
|
//////////////////////////////////////////////////
|
||||||
|
|
@ -579,4 +580,29 @@ typedef struct Info_aso_conj_elev_aux
|
||||||
typedef struct Info_aso_conj_elev
|
typedef struct Info_aso_conj_elev
|
||||||
{
|
{
|
||||||
std::vector<Info_aso_conj_elev_aux> 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
|
std::vector<Info_aso_conj_elev_aux> 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;
|
}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<Info_aso_conj_elev> 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<Info_aso_nw_elev> iaso_elev; ///<Map con mismos elementos que la nw, con la info de elevación de los nodos, cada thr su copia
|
||||||
|
}th_param_dist_elev;
|
||||||
|
|
@ -24,6 +24,7 @@
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
UINT th_planificacion(LPVOID pp);
|
UINT th_planificacion(LPVOID pp);
|
||||||
|
UINT th_busca_elev_dist(LPVOID pp);
|
||||||
/**
|
/**
|
||||||
* @file olv_limp_thr.cpp
|
* @file olv_limp_thr.cpp
|
||||||
* Archivo de implementaciones del thread de control de la utilidad de limpieza viaria del programa Olivia.
|
* Archivo de implementaciones del thread de control de la utilidad de limpieza viaria del programa Olivia.
|
||||||
|
|
@ -1239,22 +1240,23 @@ void Colv_limp_thr::rellena_elev_nw()
|
||||||
n = 0;
|
n = 0;
|
||||||
CartoBaseInfoEntity ient;
|
CartoBaseInfoEntity ient;
|
||||||
int npts;
|
int npts;
|
||||||
|
Info_aso_nw_elev info;
|
||||||
while (idd == 1)
|
while (idd == 1)
|
||||||
{
|
{
|
||||||
//inicia
|
//inicia
|
||||||
olv_limp->iaso_elev[n].inod_check[FROM] = olv_limp->iaso_elev[n].inod_check[TO] = false;
|
info.inod_check[FROM] = info.inod_check[TO] = false;
|
||||||
olv_limp->iaso_elev[n].i_nw = n;
|
info.i_nw = n;
|
||||||
//conj
|
//conj
|
||||||
olv_limp->iaso_elev[n].inod[TO] = -1;
|
info.inod[TO] = -1;
|
||||||
olv_limp->iaso_elev[n].inod[FROM] = -1;
|
info.inod[FROM] = -1;
|
||||||
ient = olv_limp->carto.getEntity(n + olv_limp->n_amb);
|
ient = olv_limp->carto.getEntity(n + olv_limp->n_amb);
|
||||||
npts = ient.getNumberPtos();
|
npts = ient.getNumberPtos();
|
||||||
memcpy(olv_limp->iaso_elev[n].coord[FROM], ient.getPto(0), 3 * sizeof(double));
|
memcpy(info.coord[FROM], ient.getPto(0), 3 * sizeof(double));
|
||||||
memcpy(olv_limp->iaso_elev[n].coord[TO], ient.getPto(npts - 1), 3 * sizeof(double));
|
memcpy(info.coord[TO], ient.getPto(npts - 1), 3 * sizeof(double));
|
||||||
//elev
|
//elev
|
||||||
olv_limp->iaso_elev[n].elev[TO] = dbf.getI(ic_elev_to);
|
info.elev[TO] = dbf.getI(ic_elev_to);
|
||||||
olv_limp->iaso_elev[n].elev[FROM] = dbf.getI(ic_elev_from);
|
info.elev[FROM] = dbf.getI(ic_elev_from);
|
||||||
|
olv_limp->iaso_elev.push_back(info);
|
||||||
n++;
|
n++;
|
||||||
idd = dbf.leeNexRow();
|
idd = dbf.leeNexRow();
|
||||||
|
|
||||||
|
|
@ -1294,30 +1296,98 @@ BOOL Colv_limp_thr::revisa_elev_nw()
|
||||||
std::vector<Info_aso_conj_elev> Colv_limp_thr::busca_elev_nw()
|
std::vector<Info_aso_conj_elev> Colv_limp_thr::busca_elev_nw()
|
||||||
{
|
{
|
||||||
std::vector<Info_aso_conj_elev> conj_elev;
|
std::vector<Info_aso_conj_elev> conj_elev;
|
||||||
|
int nthr = n_subthr;
|
||||||
|
th_param_dist_elev thp;
|
||||||
|
memset(&thp, 0, sizeof(thp));
|
||||||
|
thp.milis_sleep = 1;
|
||||||
|
thp.abs = TRUE;
|
||||||
|
thp.nth_tot = nthr;
|
||||||
|
thp.n_nw = olv_limp->n_nw;
|
||||||
|
thp.conj_th = (th_param_dist_elev_thr*)malloc(sizeof(th_param_dist_elev_thr) * nthr);
|
||||||
|
memset(thp.conj_th, 0, sizeof(th_param_dist_elev_thr) * nthr);
|
||||||
|
thp.iaso_elev = olv_limp->iaso_elev;
|
||||||
|
|
||||||
|
olvlog(LOG_TODO, "olv_limp_t", "Buscando nodos con elevaciones distintas");
|
||||||
|
|
||||||
|
for (int i = 0; i < nthr; i++)
|
||||||
|
{
|
||||||
|
thp.id_th = i;
|
||||||
|
lck_sum_atm(&thp.nth, 1);
|
||||||
|
AfxBeginThread(th_busca_elev_dist, (LPVOID)&thp, THREAD_PRIORITY_NORMAL, 0, 0, NULL);
|
||||||
|
while (thp.id_th >= 0)
|
||||||
|
Sleep(1);
|
||||||
|
}
|
||||||
|
while (thp.nth > 0)
|
||||||
|
Sleep(10);
|
||||||
|
////////////////////////////////////////////////
|
||||||
|
//reune toda la información
|
||||||
|
//recorre el array de todos los threads, buscando repetidos
|
||||||
|
std::vector<Info_aso_conj_elev>::iterator it2;
|
||||||
|
int i1;
|
||||||
|
bool ya_esta = false;
|
||||||
|
for (int i = 0; i < nthr; i++)
|
||||||
|
{
|
||||||
|
for(i1=0;i1< thp.conj_th[i].conj_elev_i.size();i1++)
|
||||||
|
{
|
||||||
|
ya_esta = false;
|
||||||
|
//busca que no esté esta coordenada ya en el array
|
||||||
|
it2 = conj_elev.begin();
|
||||||
|
while (it2 != conj_elev.end() && !ya_esta)
|
||||||
|
{
|
||||||
|
if (strcmp(thp.conj_th[i].conj_elev_i[i1].key_coord, it2->key_coord) == 0)
|
||||||
|
ya_esta = true;
|
||||||
|
it2++;
|
||||||
|
}
|
||||||
|
if (!ya_esta)
|
||||||
|
{
|
||||||
|
//la almacena en el vector
|
||||||
|
conj_elev.push_back(thp.conj_th[i].conj_elev_i[i1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (thp.conj_th)
|
||||||
|
{
|
||||||
|
free(thp.conj_th);
|
||||||
|
}
|
||||||
|
return conj_elev;
|
||||||
|
}
|
||||||
|
//*************************************************************************************
|
||||||
|
/**
|
||||||
|
* Thread para cálculo multiproceso de búsqueda de nodos a distinta elevación
|
||||||
|
*/
|
||||||
|
UINT th_busca_elev_dist(LPVOID pp)
|
||||||
|
{
|
||||||
|
th_param_dist_elev* p = (th_param_dist_elev*)pp;
|
||||||
|
int ithr = p->id_th;
|
||||||
|
|
||||||
Info_aso_conj_elev conj_elev_i1;
|
Info_aso_conj_elev conj_elev_i1;
|
||||||
Info_aso_conj_elev_aux conj_elev_nw_i1, conj_elev_nw_i2;
|
Info_aso_conj_elev_aux conj_elev_nw_i1, conj_elev_nw_i2;
|
||||||
std::map<int, Info_aso_nw_elev>::iterator it1;
|
int i1, i2,elev1,elev2,it2;
|
||||||
std::map<int, Info_aso_nw_elev>::iterator it2;
|
|
||||||
int i1, i2,elev1,elev2;
|
|
||||||
Info_aso_nw_elev* info1, * info2;
|
Info_aso_nw_elev* info1, * info2;
|
||||||
|
std::vector<Info_aso_conj_elev> conj_elev_i;
|
||||||
|
|
||||||
it1 = olv_limp->iaso_elev.begin();
|
int n_desp = (int)ceil(1.0 * p->n_nw / p->nth_tot);
|
||||||
while (it1 != olv_limp->iaso_elev.end())
|
int n_ini = min(ithr * n_desp, p->n_nw);
|
||||||
|
int n_fin = min((ithr + 1) * n_desp, p->n_nw);
|
||||||
|
|
||||||
|
//avisa de que ya empieza
|
||||||
|
p->id_th = -1;
|
||||||
|
|
||||||
|
for (int in = n_ini; in < n_fin && !p->pirate; in++)
|
||||||
{
|
{
|
||||||
info1 = &it1->second;
|
info1 = &((p->iaso_elev)[in]);
|
||||||
for (i1 = 0; i1 < N_NODOS; i1++)
|
for (i1 = 0; i1 < N_NODOS; i1++)
|
||||||
{
|
{
|
||||||
if (info1->inod_check[i1]) //si ya se ha comprobado, pasa
|
if (info1->inod_check[i1]) //si ya se ha comprobado, pasa
|
||||||
continue;
|
continue;
|
||||||
conj_elev_i1.conj_nw[MISMA_ELEV].clear();
|
conj_elev_i1.conj_nw[MISMA_ELEV].clear();
|
||||||
conj_elev_i1.conj_nw[DIST_ELEV].clear();
|
conj_elev_i1.conj_nw[DIST_ELEV].clear();
|
||||||
it2 = olv_limp->iaso_elev.begin();
|
for (it2 = 0; it2 < p->n_nw && !p->pirate; it2++)
|
||||||
while (it2 != olv_limp->iaso_elev.end())
|
|
||||||
{
|
{
|
||||||
info2 = &it2->second;
|
info2 = &((p->iaso_elev)[it2]);
|
||||||
if (info2->i_nw == info1->i_nw)
|
if (info2->i_nw == info1->i_nw)
|
||||||
{
|
{
|
||||||
it2++;
|
|
||||||
continue;//mismo elemento
|
continue;//mismo elemento
|
||||||
}
|
}
|
||||||
for (i2 = 0; i2 < N_NODOS; i2++)
|
for (i2 = 0; i2 < N_NODOS; i2++)
|
||||||
|
|
@ -1339,10 +1409,10 @@ std::vector<Info_aso_conj_elev> Colv_limp_thr::busca_elev_nw()
|
||||||
//misma elev
|
//misma elev
|
||||||
conj_elev_i1.conj_nw[MISMA_ELEV].push_back(conj_elev_nw_i2);
|
conj_elev_i1.conj_nw[MISMA_ELEV].push_back(conj_elev_nw_i2);
|
||||||
}
|
}
|
||||||
|
info2->inod_check[i2] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
it2++;
|
|
||||||
}
|
}
|
||||||
info1->inod_check[i1] = true;
|
info1->inod_check[i1] = true;
|
||||||
//solo los almacena si tiene alguno en dist elev, si todos son la misma, no
|
//solo los almacena si tiene alguno en dist elev, si todos son la misma, no
|
||||||
|
|
@ -1351,14 +1421,16 @@ std::vector<Info_aso_conj_elev> Colv_limp_thr::busca_elev_nw()
|
||||||
//se añade a sí mismo
|
//se añade a sí mismo
|
||||||
conj_elev_nw_i1.set(info1->i_nw, i1);
|
conj_elev_nw_i1.set(info1->i_nw, i1);
|
||||||
conj_elev_i1.conj_nw[MISMA_ELEV].push_back(conj_elev_nw_i1);
|
conj_elev_i1.conj_nw[MISMA_ELEV].push_back(conj_elev_nw_i1);
|
||||||
conj_elev.push_back(conj_elev_i1);
|
sprintf_s(conj_elev_i1.key_coord, 64, "%lf-%lf", info1->coord[i1][0], info1->coord[i1][1]);
|
||||||
|
conj_elev_i.push_back(conj_elev_i1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
it1++;
|
|
||||||
}
|
}
|
||||||
|
p->conj_th[ithr].conj_elev_i = conj_elev_i;
|
||||||
|
//salida de thread-------------------------
|
||||||
|
lck_sum_atm(&p->nth, -1);
|
||||||
|
|
||||||
return conj_elev;
|
return 0;
|
||||||
}
|
}
|
||||||
//*************************************************************************************
|
//*************************************************************************************
|
||||||
#define MUEVE_COOR_METROS 5
|
#define MUEVE_COOR_METROS 5
|
||||||
|
|
@ -1967,7 +2039,7 @@ BOOL Colv_limp_thr::busca_inw_dmin(int i_amb)
|
||||||
prime_ptos = prime_ptos_f;
|
prime_ptos = prime_ptos_f;
|
||||||
|
|
||||||
//necesita una función que dé la distancia media de prime_ptos a ientnw
|
//necesita una función que dé la distancia media de prime_ptos a ientnw
|
||||||
daux=prime_ptos.disMedLines(&ientnw,&desv); //coge la dis media para quedarse con la min
|
daux=prime_ptos.disMedLines(&ientnw,&desv, olv_limp->revisa_elev); //coge la dis media para quedarse con la min
|
||||||
ientnw.DisPtoLine(prime_ptos.getPto(0),&ip, &lamb, olv_limp->revisa_elev); //coge el punto donde se da la min
|
ientnw.DisPtoLine(prime_ptos.getPto(0),&ip, &lamb, olv_limp->revisa_elev); //coge el punto donde se da la min
|
||||||
}
|
}
|
||||||
else if(KK==OLV_AMB_PUN)
|
else if(KK==OLV_AMB_PUN)
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
<LocalDebuggerWorkingDirectory>..\bin\$(IntDir)</LocalDebuggerWorkingDirectory>
|
<LocalDebuggerWorkingDirectory>..\bin\$(IntDir)</LocalDebuggerWorkingDirectory>
|
||||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
<LocalDebuggerCommand>C:\Desa\v2017\Olivia\bin\$(IntDir)$(TargetFileName)</LocalDebuggerCommand>
|
<LocalDebuggerCommand>C:\Desa\v2017\Olivia\bin\$(IntDir)$(TargetFileName)</LocalDebuggerCommand>
|
||||||
<LocalDebuggerCommandArguments>/tipo:0 /ip:192.168.2.61 /port:19995 /tout:20 /path_temp:D:\Proyectos\Olivia\Instal3.0\temp\ /path_cfgeo: /debug</LocalDebuggerCommandArguments>
|
<LocalDebuggerCommandArguments>/tipo:1 /ip:192.168.2.61 /port:19995 /tout:20 /path_temp:D:\Proyectos\Olivia\Instal3.0\temp\ /path_cfgeo: /debug</LocalDebuggerCommandArguments>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<LocalDebuggerWorkingDirectory>..\bin\$(IntDir)</LocalDebuggerWorkingDirectory>
|
<LocalDebuggerWorkingDirectory>..\bin\$(IntDir)</LocalDebuggerWorkingDirectory>
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,7 @@ public:
|
||||||
void* getIa();
|
void* getIa();
|
||||||
double getLong();
|
double getLong();
|
||||||
double disMedLines(SetPtsR *line2, double l_avan, double *desv=NULL);
|
double disMedLines(SetPtsR *line2, double l_avan, double *desv=NULL);
|
||||||
double disMedLines(SetPtsR *line2, double *desv=NULL);
|
double disMedLines(SetPtsR *line2, double *desv=NULL, BOOL usa_z = FALSE);
|
||||||
double DisPtoLine(double*p, int* idpto=NULL, double *lamb=NULL, BOOL usa_z=FALSE);
|
double DisPtoLine(double*p, int* idpto=NULL, double *lamb=NULL, BOOL usa_z=FALSE);
|
||||||
SetPtsW *GetNPrimePtos(SetPtsW *ldst, int nptos, double dis, BOOL avanza);
|
SetPtsW *GetNPrimePtos(SetPtsW *ldst, int nptos, double dis, BOOL avanza);
|
||||||
bool DivLine(SetPtsW* ldst1, SetPtsW* ldst2, int ip, double lamb);
|
bool DivLine(SetPtsW* ldst1, SetPtsW* ldst2, int ip, double lamb);
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ public:
|
||||||
virtual double* getPto(int i){return 0;}
|
virtual double* getPto(int i){return 0;}
|
||||||
|
|
||||||
virtual int getNumberPtos(){return 0;}
|
virtual int getNumberPtos(){return 0;}
|
||||||
virtual double disMedLines(SetPtsR *line2, double *desv=NULL);
|
virtual double disMedLines(SetPtsR *line2, double *desv=NULL, BOOL usa_z =FALSE);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ public:
|
||||||
//distancia de un punto a una linea
|
//distancia de un punto a una linea
|
||||||
static double DisPtoLine(SetPtsR* line, double*p, int* idpto=NULL, double *lamb=NULL, BOOL usa_z = FALSE);
|
static double DisPtoLine(SetPtsR* line, double*p, int* idpto=NULL, double *lamb=NULL, BOOL usa_z = FALSE);
|
||||||
//distancia media entre dos líneas
|
//distancia media entre dos líneas
|
||||||
static double DisMedLines( SetPtsR* line1, SetPtsR* line2, double *desv=NULL);
|
static double DisMedLines( SetPtsR* line1, SetPtsR* line2, double *desv=NULL, BOOL usa_z =FALSE);
|
||||||
static double DisMedLines( SetPtsR* line1, SetPtsR* line2, double l_avan, double *desv=NULL);
|
static double DisMedLines( SetPtsR* line1, SetPtsR* line2, double l_avan, double *desv=NULL);
|
||||||
//parte una linea en 2
|
//parte una linea en 2
|
||||||
static bool DivLine(SetPtsR* linesrc, SetPtsW* ldst1, SetPtsW* ldst2, double dis);
|
static bool DivLine(SetPtsR* linesrc, SetPtsW* ldst1, SetPtsW* ldst2, double dis);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue