//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //PointSegment.h #pragma once #include "CommonDefines.h" class CSegmentDrawPoint {//一段Bezier曲线 public: CSegmentDrawPoint(POINT* point=NULL,int count=0,FACIESSEGMENTDIRECTION direction=segmentforward); ~CSegmentDrawPoint(); int m_count; POINT* m_point; //m_index0m_index1表示为反向 FACIESSEGMENTDIRECTION m_direction; int m_iType; void SetParameter(POINT* point=NULL,int count=0,FACIESSEGMENTDIRECTION direction=segmentforward); BOOL GetPoint(int index,POINT& point); void Reverse(); }; class CSegmentDrawPointArray { public: CSegmentDrawPointArray(); ~CSegmentDrawPointArray(); BOOL m_bClose; int m_iPointCount; CArray m_segmentarray; public: BOOL GetClose(); void SetClose(BOOL bValue); void AddSegment(POINT* point,int count,FACIESSEGMENTDIRECTION direction); void AddSegment(CSegmentDrawPoint& segment); void AddSegment(CSegmentDrawPointArray& segmentarray); void InsertSegment(int index,POINT* point,int count,FACIESSEGMENTDIRECTION direction); void DeleteSegment(int index); void SetSegment(int index,POINT* point,int count,FACIESSEGMENTDIRECTION direction); int GetSegmentCount(); CSegmentDrawPoint* GetSegmentArray(); CSegmentDrawPoint* GetSegment(int index); BOOL GetPoint(int index,POINT& point); void Clear(); int GetPointCount(); void operator=(CSegmentDrawPointArray& segmentarray); void GetPointArray(CArray& pointarray); void SetSize(int iValue); void Reverse(); }; class CSegmentMapPoint {//一段Bezier曲线 public: CSegmentMapPoint(CPoint2D* point=NULL,int count=0,FACIESSEGMENTDIRECTION direction=segmentforward); ~CSegmentMapPoint(); int m_count; CPoint2D* m_point; FACIESSEGMENTDIRECTION m_direction; int m_index1; int m_iType; void SetParameter(CPoint2D* point=NULL,int count=0,FACIESSEGMENTDIRECTION direction=segmentforward); BOOL GetPoint(int index,CPoint2D& point); void Reverse(); }; class CSegmentMapPointArray { public: CSegmentMapPointArray(); ~CSegmentMapPointArray(); BOOL m_bClose; int m_iPointCount; CArray m_segmentarray; public: BOOL GetClose(); void SetClose(BOOL bValue); void AddSegment(CPoint2D* point,int count,FACIESSEGMENTDIRECTION direction); void AddSegment(CSegmentMapPoint& segment); void AddSegment(CSegmentMapPointArray& segmentarray); void InsertSegment(int index,CPoint2D* point,int count,FACIESSEGMENTDIRECTION direction); void DeleteSegment(int index); void SetSegment(int index,CPoint2D* point,int count,FACIESSEGMENTDIRECTION direction); int GetSegmentCount(); CSegmentMapPoint* GetSegmentArray(); CSegmentMapPoint* GetSegment(int index); BOOL GetPoint(int index,CPoint2D& point); void Clear(); int GetPointCount(); void operator=(CSegmentMapPointArray& segmentarray); void GetPointArray(CArray& pointarray); void GetPointArray(CArray& pointarray,double dZoomFactor); void SetSize(int iValue); void Reverse(); };