retoques version 4.0.0.0
parent
431578ba46
commit
028928896e
|
|
@ -28,8 +28,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 3,1,6,0
|
||||
PRODUCTVERSION 3,1,6,0
|
||||
FILEVERSION 3,4,0,0
|
||||
PRODUCTVERSION 3,4,0,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
|
|
@ -46,12 +46,12 @@ BEGIN
|
|||
BEGIN
|
||||
VALUE "CompanyName", "VSM"
|
||||
VALUE "FileDescription", "Librería de la aplicación Olivia"
|
||||
VALUE "FileVersion", "3.1.6.0"
|
||||
VALUE "FileVersion", "3.4.0.0"
|
||||
VALUE "InternalName", "Olivia.dll"
|
||||
VALUE "LegalCopyright", "OLIVIA (c) VSM 2020. All rights reserved."
|
||||
VALUE "OriginalFilename", "Olivia.dll"
|
||||
VALUE "ProductName", "OLIVIA"
|
||||
VALUE "ProductVersion", "3.1.6.0"
|
||||
VALUE "ProductVersion", "3.4.0.0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ public:
|
|||
CartoBase cartoAux;
|
||||
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 <Coste_modif> coste_modificado;
|
||||
std::vector<Info_aso_nw_elev> iaso_elev; ///<Map con mismos elementos que la nw, con la info de elevación de los nodos
|
||||
double mima[N_COOR_MIMA]; ///<Coordenadas de las cuatro esquinas de la red
|
||||
//*************************************************************************************
|
||||
|
|
|
|||
|
|
@ -236,6 +236,17 @@ typedef struct Info_aso_nw
|
|||
double velo; //velocidad de la vía, en km/h
|
||||
char *nomb; //nombre de la vía
|
||||
}Info_aso_nw;
|
||||
|
||||
/**
|
||||
* Nueva Estructura que contiene la información asociada de la nw
|
||||
*/
|
||||
typedef struct Coste_modif
|
||||
{
|
||||
float coste;
|
||||
int i;
|
||||
int j;
|
||||
}Coste_modif;
|
||||
|
||||
/**
|
||||
* Nueva Estructura que contiene la información asociada de las entidades de limpieza (aceras, bordillos, peatonales...)
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -970,6 +970,7 @@ BOOL Colv_limp_thr::rellena_info_nw()
|
|||
{
|
||||
s=dbf.getI(icampv);
|
||||
}
|
||||
s = dbf.getI(icampv);
|
||||
if(s<=0)
|
||||
{
|
||||
s=OLV_LIMP_VELO_DEF;//pone por def
|
||||
|
|
@ -977,7 +978,7 @@ BOOL Colv_limp_thr::rellena_info_nw()
|
|||
|
||||
olv_limp->iaso[ia].velReal = 1.0 * s * OLV_KMH2MS;;
|
||||
if(cevita==0)
|
||||
olv_limp->iaso[ia].inf_n.velo=1.0*s*OLV_KMH2MS;
|
||||
olv_limp->iaso[ia].inf_n.velo= olv_limp->iaso[ia].velReal;
|
||||
else if(cevita >0)
|
||||
{
|
||||
olv_limp->iaso[ia].inf_n.velo = 1.0 * cevita * s * OLV_KMH2MS;
|
||||
|
|
@ -1195,6 +1196,14 @@ BOOL Colv_limp_thr::rellena_info_amb()
|
|||
if(!olv_limp->barr_mix)
|
||||
olv_limp->barr_mix=(barr_mix & (OLV_LIMP_FLG_AMB_APA | OLV_LIMP_FLG_AMB_BORD)) && (barr_mix & OLV_LIMP_FLG_AMB_ACE);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (olv_limp->uds_tto == OliviaDef::GeneralDef::OlvTipTtoMh_eje)
|
||||
ancho = 1;
|
||||
else if (olv_limp->uds_tto == OliviaDef::GeneralDef::OlvTipTtoM2h_eje)
|
||||
ancho = olv_limp->ancho_via;
|
||||
olv_limp->iaso[ia].inf_l.ancho = ancho;
|
||||
}
|
||||
if (icampoid >= 0)
|
||||
{
|
||||
olv_limp->iaso[ia].oid = dbf.getI(icampoid);
|
||||
|
|
@ -1658,12 +1667,10 @@ BOOL Colv_limp_thr::replica_peat()
|
|||
ient=olv_limp->carto.get(i);
|
||||
if(!(olv_limp->iaso[ient.entity()->ref].flgs & OLV_LIMP_FLG_AMB_PEAT))
|
||||
continue;
|
||||
|
||||
//Replica la peatonal
|
||||
if(!ient.getCopy(&peatcp) || !olv_limp->carto.add(peatcp))
|
||||
break;
|
||||
ientcp=olv_limp->carto.get(olv_limp->carto.getNumberEntities()-1);
|
||||
|
||||
//Añade la info aso
|
||||
info_aux.reset();
|
||||
info_aux.flgs=OLV_LIMP_FLG_PEAT_REP;
|
||||
|
|
@ -1936,6 +1943,7 @@ BOOL Colv_limp_thr::une_amb_nw(int soloi)
|
|||
continue;
|
||||
|
||||
//Añade los segmentos a clase NW_union
|
||||
|
||||
add_uniones_obj(i);
|
||||
}
|
||||
//cuida si ha salido antes por falta de memo
|
||||
|
|
@ -1947,7 +1955,6 @@ BOOL Colv_limp_thr::une_amb_nw(int soloi)
|
|||
|
||||
if(comp_lejos) //ojo
|
||||
comprueba_aislados(olv_limp->inww_amb);
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
//si hay algún ámbito asignado a una carretera de prohibido circular
|
||||
//se le quita el flag a la carretera
|
||||
|
|
@ -2134,6 +2141,8 @@ BOOL Colv_limp_thr::busca_inw_dmin_ejes(int i_amb)
|
|||
ientamb=olv_limp->carto.getEntity(i_amb);
|
||||
refamb=ientamb.entity()->ref;
|
||||
npts=ientamb.getNumberPtos();
|
||||
double* pi = ientamb.getPto(0);
|
||||
double* pf = ientamb.getPto(npts-1);
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
//Bucle por cada carretera de la nw
|
||||
//empiezan donde acaban los ámbitos, y terminan en namb+nnw
|
||||
|
|
@ -2143,9 +2152,14 @@ BOOL Colv_limp_thr::busca_inw_dmin_ejes(int i_amb)
|
|||
refenw=ientnw.entity()->ref;
|
||||
if(!(olv_limp->iaso[refenw].flgs & OLV_LIMP_FLG_NW))
|
||||
continue; //no debería, pero por si acaso
|
||||
|
||||
if(olv_limp->iaso[refenw].oid==olv_limp->iaso[refamb].oid)
|
||||
double* ei = ientnw.getPto(0);
|
||||
double* ef = ientnw.getPto(ientnw.getNumberPtos()-1);
|
||||
if (ei[0] == pi[0] && ef[0] == pf[0])
|
||||
break;
|
||||
/*
|
||||
if(olv_limp->iaso[refenw].oid==olv_limp->iaso[refamb].oid)//todo a elena
|
||||
break;
|
||||
*/
|
||||
}
|
||||
if(inw>=olv_limp->n_amb+olv_limp->n_nw || pirate)
|
||||
return FALSE;
|
||||
|
|
@ -4067,7 +4081,7 @@ double Colv_limp_thr::dame_ang_conj(int ic, int i, int j)
|
|||
}
|
||||
|
||||
ang=Colv_geom::ang_vect(v[0],v[1]);
|
||||
if(ang> OLV_PI)
|
||||
//if(ang> OLV_PI)
|
||||
ang=OLV_PI-ang;
|
||||
|
||||
return ang;
|
||||
|
|
@ -4148,16 +4162,198 @@ void Colv_limp_thr::revisa_calles_cortadas()
|
|||
// return;
|
||||
for(ic=0;ic<olv_limp->conjs.n;ic++)
|
||||
{
|
||||
Coste_modif coste_old;
|
||||
nady=olv_limp->ang_conj[ic].nady;
|
||||
/*if (nady == 1)
|
||||
{
|
||||
i = 0;
|
||||
j = 0;
|
||||
}
|
||||
else
|
||||
{*/
|
||||
for (i = 0; i < nady; i++)
|
||||
{
|
||||
j = -1;
|
||||
k = nady;
|
||||
//localiza entrada a ic
|
||||
if (olv_limp->cost_conj[olv_limp->ang_conj[ic].i_conjs[i]][ic] >= MAYUSCULO)
|
||||
continue;
|
||||
//localiza al menos una salida
|
||||
for (j = 0; j < nady; j++)
|
||||
{
|
||||
//if (j == i) La salida puede ser tambien i
|
||||
// continue;
|
||||
|
||||
if (olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[j]] < MAYUSCULO &&
|
||||
olv_limp->ang_conj[ic].angs[i][j])
|
||||
break;
|
||||
}
|
||||
//por cada entrada a ic al menos tiene que tener una salida
|
||||
if (j >= nady)
|
||||
{
|
||||
//pone coste extra de i a ic
|
||||
// coste_old.i = olv_limp->ang_conj[ic].i_conjs[i];
|
||||
coste_old.i = olv_limp->ang_conj[ic].i_conjs[i];
|
||||
coste_old.j = ic;
|
||||
coste_old.coste = olv_limp->cost_conj[olv_limp->ang_conj[ic].i_conjs[i]][ic];
|
||||
|
||||
olv_limp->coste_modificado.push_back(coste_old);
|
||||
olv_limp->cost_conj.set(olv_limp->ang_conj[ic].i_conjs[i], ic, coste_old.coste * 10);
|
||||
|
||||
//por la entrada i a ic es cortada, abre salidas
|
||||
|
||||
for (j = 0; j < nady; j++)
|
||||
{
|
||||
|
||||
if (olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[j]] < MAYUSCULO)
|
||||
{
|
||||
//abre salidas con un coste extra
|
||||
olv_limp->ang_conj[ic].angs[i][j] = 1;
|
||||
|
||||
coste_old.i = ic;
|
||||
coste_old.j = olv_limp->ang_conj[ic].i_conjs[j];
|
||||
coste_old.coste = olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[j]];
|
||||
olv_limp->coste_modificado.push_back(coste_old);
|
||||
olv_limp->cost_conj.set(ic, olv_limp->ang_conj[ic].i_conjs[j], coste_old.coste * 10);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
//}
|
||||
/*
|
||||
if(i<nady && k<nady)
|
||||
{
|
||||
//solo tiene una calle por donde volver
|
||||
olv_limp->ang_conj[ic].angs[i][k] = 1;
|
||||
if (olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[k]] < MAYUSCULO)
|
||||
{
|
||||
coste_old.i = ic;
|
||||
coste_old.j = olv_limp->ang_conj[ic].i_conjs[k];
|
||||
olv_limp->coste_modificado.push_back(coste_old);
|
||||
olv_limp->cost_conj.set(ic, olv_limp->ang_conj[ic].i_conjs[k], olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[k]] * 10);
|
||||
}
|
||||
if(olv_limp->cost_conj[olv_limp->ang_conj[ic].i_conjs[i]][ic] < MAYUSCULO)
|
||||
{
|
||||
coste_old.i = olv_limp->ang_conj[ic].i_conjs[i];
|
||||
coste_old.j = ic;
|
||||
olv_limp->coste_modificado.push_back(coste_old);
|
||||
olv_limp->cost_conj.set(olv_limp->ang_conj[ic].i_conjs[i], ic, olv_limp->cost_conj[olv_limp->ang_conj[ic].i_conjs[i]][ic] * 10);
|
||||
}
|
||||
}
|
||||
*/
|
||||
/*else
|
||||
{
|
||||
for (i = 0; i < nady; i++)
|
||||
{
|
||||
if (!(olv_limp->cost_conj[olv_limp->ang_conj[ic].i_conjs[i]][ic] < MAYUSCULO))
|
||||
continue;
|
||||
for (j = 0; j < nady; j++)
|
||||
{
|
||||
if (j == i)
|
||||
continue;
|
||||
if (!(olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[j]] < MAYUSCULO))
|
||||
continue;
|
||||
}
|
||||
if (j >= nady)
|
||||
{
|
||||
//de la conjunción i no se puede ir a otra que no sea ella misma
|
||||
}
|
||||
if (!olv_limp->ang_conj[ic].angs[i][j])
|
||||
{
|
||||
//comprueba si se puede ir de i a j o de j a i
|
||||
if()
|
||||
}
|
||||
}
|
||||
for(i=0;i<nady;i++)
|
||||
{
|
||||
for(j=0;j<nady;j++)
|
||||
{
|
||||
if (j == i)
|
||||
continue;
|
||||
if(!olv_limp->ang_conj[ic].angs[i][j])
|
||||
{
|
||||
//si el ángulo es prohibido, mira a ver si hay más conjunciones
|
||||
for(k=0;k<nady;k++)
|
||||
{
|
||||
if (k == i || k==j)
|
||||
continue;
|
||||
if(olv_limp->ang_conj[ic].i_conjs[k]<0 || olv_limp->ang_conj[ic].i_conjs[k]>=olv_limp->conjs.n)
|
||||
{
|
||||
olvlog(LOG_TODO,"olv_limp_t","Ojo ang_conj fuera de límites ic %ld, k %ld",ic,k);
|
||||
continue;
|
||||
}
|
||||
/* if(((k!=i) || (k!=j)) && (olv_limp->conjs.inc[olv_limp->ang_conj[ic].i_conjs[k]].n>1))
|
||||
break; /
|
||||
if((olv_limp->ang_conj[ic].i_conjs[k]!=olv_limp->ang_conj[ic].i_conjs[i]) &&
|
||||
(olv_limp->ang_conj[ic].i_conjs[k]!=olv_limp->ang_conj[ic].i_conjs[j]) &&
|
||||
(olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[k]]<MAYUSCULO) &&
|
||||
(olv_limp->conjs.inc[olv_limp->ang_conj[ic].i_conjs[k]].n>1))
|
||||
break;
|
||||
}
|
||||
if(k>=nady)//estos nodos son los únicos que tiene para entrar y salir
|
||||
{
|
||||
olv_limp->ang_conj[ic].angs[i][j]=1;
|
||||
//coste en calles cortadas
|
||||
int rnw = -1;
|
||||
Coste_modif coste_old;
|
||||
coste_old.i = ic;
|
||||
if (olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[j]] < MAYUSCULO)
|
||||
{
|
||||
|
||||
coste_old.j = j;
|
||||
coste_old.coste = olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[j]];
|
||||
olv_limp->coste_modificado.push_back(coste_old);
|
||||
olv_limp->cost_conj.set(ic, olv_limp->ang_conj[ic].i_conjs[j], olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[j]] * 10);
|
||||
}
|
||||
if (i!=j && olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[i]] < MAYUSCULO)
|
||||
{
|
||||
coste_old.j = i;
|
||||
coste_old.coste = olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[i]];
|
||||
olv_limp->coste_modificado.push_back(coste_old);
|
||||
olv_limp->cost_conj.set(ic, olv_limp->ang_conj[ic].i_conjs[i], olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[i]] * 10);
|
||||
if (olv_limp->conjs.inc[olv_limp->ang_conj[ic].i_conjs[i]].n == 1)
|
||||
rnw = olv_limp->conjs.inc[olv_limp->ang_conj[ic].i_conjs[i]].refnw0;
|
||||
}
|
||||
/*if (rnw != -1)
|
||||
{
|
||||
|
||||
}*
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
//*************************************************************************************
|
||||
/**
|
||||
* Resvisa los ángulos, de forma que si hay algún giro "prohibido" de 180º, en caso
|
||||
* de que sean calles cortadas o sin salida, los pone a ok
|
||||
*/
|
||||
void Colv_limp_thr::revisa_calles_cortadas_old()
|
||||
{
|
||||
int ic, i, j, k, nady;
|
||||
//if(olv_limp->res_circ==OLV_RES_NO)
|
||||
// return;
|
||||
for (ic = 0; ic < olv_limp->conjs.n; ic++)
|
||||
{
|
||||
nady = olv_limp->ang_conj[ic].nady;
|
||||
|
||||
for (i = 0; i < nady; i++)
|
||||
{
|
||||
for (j = 0; j < nady; j++)
|
||||
{
|
||||
if (j == i)
|
||||
continue;
|
||||
if (!olv_limp->ang_conj[ic].angs[i][j])
|
||||
{
|
||||
//si el ángulo es prohibido, mira a ver si hay más conjunciones
|
||||
for (k = 0; k < nady; k++)
|
||||
{
|
||||
if (k == i || k == j)
|
||||
continue;
|
||||
if (olv_limp->ang_conj[ic].i_conjs[k] < 0 || olv_limp->ang_conj[ic].i_conjs[k] >= olv_limp->conjs.n)
|
||||
{
|
||||
olvlog(LOG_TODO, "olv_limp_t", "Ojo ang_conj fuera de límites ic %ld, k %ld", ic, k);
|
||||
|
|
@ -4174,6 +4370,31 @@ void Colv_limp_thr::revisa_calles_cortadas()
|
|||
if (k >= nady)//estos nodos son los únicos que tiene para entrar y salir
|
||||
{
|
||||
olv_limp->ang_conj[ic].angs[i][j] = 1;
|
||||
//coste en calles cortadas
|
||||
int rnw = -1;
|
||||
Coste_modif coste_old;
|
||||
coste_old.i = ic;
|
||||
if (olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[j]] < MAYUSCULO)
|
||||
{
|
||||
|
||||
coste_old.j = j;
|
||||
coste_old.coste = olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[j]];
|
||||
olv_limp->coste_modificado.push_back(coste_old);
|
||||
olv_limp->cost_conj.set(ic, olv_limp->ang_conj[ic].i_conjs[j], olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[j]] * 10);
|
||||
}
|
||||
if (i != j && olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[i]] < MAYUSCULO)
|
||||
{
|
||||
coste_old.j = i;
|
||||
coste_old.coste = olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[i]];
|
||||
olv_limp->coste_modificado.push_back(coste_old);
|
||||
olv_limp->cost_conj.set(ic, olv_limp->ang_conj[ic].i_conjs[i], olv_limp->cost_conj[ic][olv_limp->ang_conj[ic].i_conjs[i]] * 10);
|
||||
if (olv_limp->conjs.inc[olv_limp->ang_conj[ic].i_conjs[i]].n == 1)
|
||||
rnw = olv_limp->conjs.inc[olv_limp->ang_conj[ic].i_conjs[i]].refnw0;
|
||||
}
|
||||
/*if (rnw != -1)
|
||||
{
|
||||
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -7906,7 +8127,6 @@ BOOL Colv_limp_thr::planifica_fin()
|
|||
//Si es barrido mixto hay que copiar la info en las que no se ha sectorizado
|
||||
if(olv_limp->barr_mix)
|
||||
copia_info_barr_mix();
|
||||
|
||||
///////////////////////////////////
|
||||
//prepara los datos para guardarlos
|
||||
if(!genera_rut_ctrl(olv_limp->nsec, olv_limp->plan, FALSE))
|
||||
|
|
@ -8037,6 +8257,16 @@ BOOL Colv_limp_thr::genera_planif_aux(int is, Info_sec *ss, Info_planif *pp, int
|
|||
is_uno=FALSE;
|
||||
ref_nw=0;
|
||||
//////////////////////////////////////////////////////////////////
|
||||
//recompone costes
|
||||
/*int cmn = olv_limp->coste_modificado.size();
|
||||
for (int i = 0; i < olv_limp->coste_modificado.size(); i++)
|
||||
{
|
||||
Coste_modif cm = olv_limp->coste_modificado[i];
|
||||
olv_limp->cost_conj.set(cm.i, cm.j, cm.coste);
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
|
||||
if(nsecu==1)
|
||||
{
|
||||
|
|
@ -8223,7 +8453,15 @@ BOOL Colv_limp_thr::genera_planif_aux(int is, Info_sec *ss, Info_planif *pp, int
|
|||
}
|
||||
else//es carretera
|
||||
{
|
||||
//todo_costes_virtuales
|
||||
ref_nw=ref_j;
|
||||
if (olv_limp->iaso[ref_nw].inf_n.velo != olv_limp->iaso[ref_nw].velReal && olv_limp->iaso[ref_nw].velReal>0)
|
||||
{
|
||||
//poner coste real
|
||||
cost = ltot / olv_limp->iaso[ref_nw].velReal;
|
||||
}
|
||||
|
||||
|
||||
tp=OLV_PLAN_TIP_NW;
|
||||
dt=OLV_DESP;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -197,6 +197,7 @@ public:
|
|||
|
||||
//Cálculo del coste entre ámbitos
|
||||
void invierte_nodos(int nn, int KK,Secu_amb * ord_sec, BOOL *pirate);
|
||||
void revisa_calles_cortadas_old();
|
||||
BOOL calcula_cost_amb();
|
||||
BOOL inicia_cost_amb();
|
||||
BOOL calcula_cost_amb_fin();
|
||||
|
|
|
|||
|
|
@ -82,8 +82,8 @@ MAINICON ICON "favicon.ico"
|
|||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 3,1,7,0
|
||||
PRODUCTVERSION 3,1,7,0
|
||||
FILEVERSION 4,0,0,0
|
||||
PRODUCTVERSION 4,0,0,0
|
||||
FILEFLAGSMASK 0x17L
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
|
|
@ -100,12 +100,12 @@ BEGIN
|
|||
BEGIN
|
||||
VALUE "CompanyName", "VSM"
|
||||
VALUE "FileDescription", "Launcher de la aplicación Olivia"
|
||||
VALUE "FileVersion", "3.1.7.0"
|
||||
VALUE "FileVersion", "4.0.0.0"
|
||||
VALUE "InternalName", "OliviaTasks"
|
||||
VALUE "LegalCopyright", "OLIVIA (c) VSM 2020. All rights reserved."
|
||||
VALUE "OriginalFilename", "OliviaTasks.exe"
|
||||
VALUE "ProductName", "OliviaTasks"
|
||||
VALUE "ProductVersion", "3.1.7.0"
|
||||
VALUE "ProductVersion", "4.0.0.0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ class UTILES_EXPORT CartoBase: public SetEntities, public SetPtsR, public DataIa
|
|||
friend class CartoBaseInfoBuilder;
|
||||
friend class CartoPto;
|
||||
friend class CartoLine;
|
||||
friend class CartoBaseTopologyManager;
|
||||
private:
|
||||
//info interna-------------------------------
|
||||
int ref;//referencia para el siguiente elemento
|
||||
|
|
@ -56,7 +57,7 @@ public:
|
|||
CartoBaseInfoEntity get(int i);//acceso a entidad iesima (modo lectura)
|
||||
CartoBaseInfoEntity getRef(int r);//acceso a entidad con referencia r (modo lectura)
|
||||
|
||||
|
||||
bool compruebaPts();
|
||||
//añade elementos
|
||||
bool add(CartoEntity& element);
|
||||
bool add(CartoBase& cad);
|
||||
|
|
@ -106,6 +107,8 @@ public:
|
|||
virtual bool IaGetVal( int refEnt, int icol, int* v );
|
||||
virtual bool IaFinW(){return true;}
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
int add(CartoBaseEntity* src);
|
||||
|
|
|
|||
Loading…
Reference in New Issue