www.pudn.com > 3dpipe.zip > PipeLineObject.h, change:2006-01-21,size:2091b


// PipeLineObject.h: interface for the PipeLineObject class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_PIPELINEOBJECT_H__FD10755E_C105_445E_850C_219AAF4E6051__INCLUDED_) 
#define AFX_PIPELINEOBJECT_H__FD10755E_C105_445E_850C_219AAF4E6051__INCLUDED_ 
 
#ifndef _PIPELINE_DATABASE 
#include "PipelineDatabase.h" 
#endif 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#define PI 3.141592653589793238462643383279 
 
class PipeLineObject : public CObject   
{ 
public: 
	PipeLineObject(); 
	virtual ~PipeLineObject(); 
	 
protected:	 
	float m_dRadius; 
	UINT m_nPointsNum; 
 
public:	 
	CArray<POINT3D,POINT3D> ptCircleCentre3DArray; 
 
	CArray<POINT3D,POINT3D> ptCentre3DArray; 
 
	CArray<POINT3D,POINT3D> ptVertexNormalArray; 
 
	CArray<LINE3D,LINE3D> ptLines3d; 
 
	CArray<LINE3D,LINE3D> ptPipeLinesNormal; 
 
	CArray<LINE3D,LINE3D> ptLinesCurveCentre; 
 
public: 
	POINT3D pMapCenter; 
 
public: 
	void CalNextNodeOnCurve(POINT3D FCentre3D,POINT3D NCentre3D,CArray<POINT3D,POINT3D>& FirstArray3D,CArray<POINT3D,POINT3D>& NextArray3D,POINT3D& ptCurveTangent); 
 
	void CalCurveTangent(POINT3D& ptPlaneNormal,POINT3D& ptCurveCentre,POINT3D& ptPoint3D,POINT3D& ptCurveTangent); 
 
	void CalNextNodeOnBeeline(POINT3D FCentre3D,POINT3D NCentre3D,CArray<POINT3D,POINT3D>& FirstArray3D,CArray<POINT3D,POINT3D>& NextArray3D); 
 
	double CalAzimuth(double Dx,double Dy); 
 
	void DrawPipeSection(); 
 
	double CalculateAngleBetweenTwoLines(POINT3D pt1,POINT3D pt2,POINT3D pt3); 
 
	void CalculateCoordinateOnPipeLine(POINT3D pt3D1, POINT3D pt3D2, POINT3D pt3D3,CArray<POINT3D,POINT3D>&pt3DArray); 
 
	void CalculateRotateParameter(POINT3D ptBottom,POINT3D ptTop,double dCosAngles[][3]); 
 
	void CalVertexesNormal(); 
 
	void CalPlaneNormal(POINT3D &ptTop1,POINT3D &ptIntersect,POINT3D &ptTop2,POINT3D &ptPlaneNormal); 
 
	float RadiusRand(int Max); 
 
	void DrawPipeLine(MAP& aMapFile); 
 
	void GetGraphCenter(POINT3D& pt); 
 
}; 
 
#endif // !defined(AFX_PIPELINEOBJECT_H__FD10755E_C105_445E_850C_219AAF4E6051__INCLUDED_)