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