www.pudn.com > 3dpipe.zip > PipelineDatabase.h, change:2006-01-21,size:2844b
//PipelineDatabase.h
//
////////////////////////////////////////////////////////////////////////////////////
#ifndef _PIPELINE_DATABASE_H
#define _PIPELINE_DATABASE_H
#include "afxtempl.h"
#include "string.h"
typedef struct tag_Box2d
{
double minX;
double minY; //图幅左下角坐标
double maxX;
double maxY; //图幅右上角坐标
}BOX2D,*LPBOX2D;
/*typedef struct tag_Lines
{
CArray<POINT3D,POINT3D> Line;
}LINES3D,*LPLINES3D;*/
typedef struct tag_PipePoint
{
UINT ID;
float X;
float Y;
float Z;
}PIPEPOINT,*LPPIPEPOINT;
class PIPELINE:public CObject
{
public:
UINT ID;
UINT nPointNUM; //每条管线包含的管点数目
CArray<UINT,UINT> arrPointArray; //每条管线包含的管点
PIPELINE()
{
}
PIPELINE& operator=(const PIPELINE &s)
{
ID = s.ID;
nPointNUM = s.nPointNUM;
for(int i = 0; i s.arrPointArray.GetSize(); i++)
arrPointArray.Add(s.arrPointArray[i]);
return *this;
}
PIPELINE(const PIPELINE &s)
{
ID = s.ID;
nPointNUM = s.nPointNUM;
for(int i = 0; i s.arrPointArray.GetSize(); i++)
arrPointArray.Add(s.arrPointArray[i]);
}
~PIPELINE()
{
arrPointArray.RemoveAll();
}
};
class MAP:public CObject
{
public:
BOX2D boxBoundary; //图幅范围
char pMapName[20]; //图层名
UINT nPipePointSum; //管点总数目
UINT nPipeLineSum; //管线总数目
CArray<PIPEPOINT,PIPEPOINT> arrPointFile;//管点数组
CArray<PIPELINE,PIPELINE> arrLineFile;//管线数组
MAP()
{
}
MAP& operator=(const MAP &s)
{
boxBoundary = s.boxBoundary;
strcpy(pMapName,s.pMapName);
nPipePointSum = s.nPipePointSum;
nPipeLineSum = s.nPipeLineSum;
for(long int i = 0; i s.arrPointFile.GetSize(); i++)
arrPointFile.Add(s.arrPointFile[i]);
for( i = 0; i s.arrLineFile.GetSize(); i++)
arrLineFile.Add(s.arrLineFile[i]);
return *this;
}
MAP(const MAP &s)
{
boxBoundary = s.boxBoundary;
strcpy(pMapName,s.pMapName);
nPipePointSum = s.nPipePointSum;
nPipeLineSum = s.nPipeLineSum;
for(long int i = 0; i s.arrPointFile.GetSize(); i++)
arrPointFile.Add(s.arrPointFile[i]);
for( i = 0; i s.arrLineFile.GetSize(); i++)
arrLineFile.Add(s.arrLineFile[i]);
}
~MAP()
{
arrPointFile.RemoveAll();
arrLineFile.RemoveAll();
}
};
typedef struct tag_Point
{
double x;
double y;
double z;
}POINT3D,*LPPOINT3D;
class LINE3D:public CObject
{
public:
CArray<POINT3D,POINT3D> PointArray; //每条管线包含的管点
LINE3D()
{
}
LINE3D& operator=(const LINE3D &s)
{
for(int i = 0; i s.PointArray.GetSize(); i++)
PointArray.Add(s.PointArray[i]);
return *this;
}
LINE3D(const LINE3D &s)
{
for(int i = 0; i s.PointArray.GetSize(); i++)
PointArray.Add(s.PointArray[i]);
}
~LINE3D()
{
PointArray.RemoveAll();
}
};
#endif