108 lines
2.1 KiB
C++
108 lines
2.1 KiB
C++
#pragma once
|
|
|
|
#include "base_head.h"
|
|
#include "CartoBaseDef.h"
|
|
|
|
class CartoBaseEntity;
|
|
class CartoBasePaintedProps;
|
|
class CartoBaseColor;
|
|
//clases de elmentos de cartobase
|
|
class UTILES_EXPORT CartoEntity : public SetPtsR
|
|
{
|
|
public:
|
|
virtual int getType()//devuelve tipo de entidad
|
|
{
|
|
return CartoBaseTypes::Ndef;
|
|
};
|
|
|
|
virtual int getnLines()
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
virtual CartoEntity* set(CartoBaseInfoEntity *src)
|
|
{
|
|
return 0;
|
|
}
|
|
virtual int CopyInTo(CartoBase *src)
|
|
{
|
|
return -1;
|
|
}
|
|
virtual double* getPto(int i){return 0;}
|
|
|
|
virtual int getNumberPtos(){return 0;}
|
|
virtual double disMedLines(SetPtsR *line2, double *desv=NULL, BOOL usa_z = FALSE);
|
|
|
|
};
|
|
|
|
class UTILES_EXPORT CartoComun: public CartoEntity
|
|
{
|
|
public:
|
|
int flagsUser;
|
|
int color;
|
|
int peso;
|
|
int id;//ide de entidad
|
|
int ia;
|
|
int idPropsP;//ide de propiedades de pintado al que se va a poner
|
|
|
|
CartoComun()
|
|
{
|
|
flagsUser =0;
|
|
color = 0;
|
|
peso = 0;
|
|
id = -1;
|
|
ia=0;
|
|
idPropsP = -1;
|
|
}
|
|
|
|
//auxiliary funcition
|
|
bool setInfo(CartoBaseInfoEntity * info);
|
|
|
|
CartoBaseEntity* get(CartoBaseEntity * dst);
|
|
CartoBasePaintedProps* get(CartoBasePaintedProps * dst);
|
|
CartoBaseColor* get(CartoBaseColor * dst);
|
|
|
|
|
|
};
|
|
|
|
class UTILES_EXPORT CartoPto: public CartoComun
|
|
{
|
|
public:
|
|
|
|
double pt[3];
|
|
CartoPto(){};
|
|
virtual int getType()//devuelve tipo de entidad
|
|
{
|
|
return CartoBaseTypes::Point;
|
|
};
|
|
|
|
virtual CartoEntity* set(CartoBaseInfoEntity *src);
|
|
|
|
virtual int CopyInTo(CartoBase *src);
|
|
virtual double* getPto(int i);
|
|
|
|
virtual int getNumberPtos(){return 1;}
|
|
};
|
|
|
|
class UTILES_EXPORT CartoLine: public CartoComun, public SetPtsW
|
|
{
|
|
public:
|
|
Cgarray<double[3]> pts;
|
|
CartoLine(){};
|
|
|
|
virtual int getType()//devuelve tipo de entidad
|
|
{
|
|
return CartoBaseTypes::Line;
|
|
};
|
|
|
|
virtual CartoEntity* set(CartoBaseInfoEntity *src);
|
|
virtual int CopyInTo(CartoBase *src);
|
|
virtual int getNumberPtos(){return pts.n;}
|
|
virtual double* getPto(int i);
|
|
virtual bool addPto(double* p);
|
|
//funciones de geometria----------------------------------
|
|
void invert();//invierte el sentido de los pts
|
|
double getLong();
|
|
double *GetPtoDis(double dis, double *dst, double *distTot = NULL);
|
|
};
|