////////////////////////////////////////////////////////////////////////////////////// //Segment.h #pragma once #include "PointSegment.h" #include "BezierPointSegment.h" class CPointSeries; class CPointSeriesManager; class CGDFObject; class CGDFSegment { public: CGDFSegment(CPointSeriesManager* pSeriesManager,CPointSeries* pSeries=NULL,int index0=-1,int index1=-1,FACIESSEGMENTDIRECTION direction=segmentforward); CGDFSegment(CPointSeriesManager* pSeriesManager,POINTSERIESID id,int index0=-1,int index1=-1,FACIESSEGMENTDIRECTION direction=segmentforward); CGDFSegment(); ~CGDFSegment(); //Attribute private: CPointSeriesManager* m_pSeriesManager; CPointSeries* m_pSeries; POINTSERIESID m_id; int m_index0; int m_index1; FACIESSEGMENTDIRECTION m_direction;//0--forward 1--backward int m_pointcount; BOOL m_bRelationWithPointSeries; CGDFObject* m_pObject; //Operations public: void Clear(); int ConvertLocalIndexToSeriesIndex(int localindex); void SetDirection(FACIESSEGMENTDIRECTION direction); FACIESSEGMENTDIRECTION GetDirection(); void SetIndex0(int index); int GetIndex0(); void SetIndex1(int index); int GetIndex1(); void GetPointArray(CArray& pointarray); void GetIndexArray(CArray& indexarray); void GetMapPointSegmentArray(CBezierStyleMapPointSegmentArray& segmentarray); BYTE GetPointAttribute(int localindex,BYTE byteMask); int GetPointCount(); CPointSeriesManager* GetSeriesManager(); CPointSeries* GetSeries(); void Initialize(CPointSeriesManager* pSeriesManager,CPoint2D point,BYTE smooth); void Initialize(CPointSeriesManager* pSeriesManager,FACIESPOINT* pointarray,int count); BOOL InsertPoint(int localindex,CPoint2D point,BYTE smooth); BOOL IsWholePointSeries(); void SmoothPoint(int localindex); void NoSmoothPoint(int localindex); void SmoothPoint(int localindex,int count); BOOL OnInitialized(); BOOL OnInsertPoint(int index0,int index1); BOOL OnMovePoint(int index0,int index1); void operator=(CGDFSegment& segment); void ReverseDirection(); void SetObject(CGDFObject* pObject); CGDFObject* GetObjectG(); void SetParameter(CPointSeriesManager* pSeriesManager,CPointSeries* pSeries=NULL,int index0=-1,int index1=-1,FACIESSEGMENTDIRECTION direction= segmentforward); void SetParameter(CPointSeriesManager* pSeriesManager,POINTSERIESID id,int index0=-1,int index1=-1,FACIESSEGMENTDIRECTION direction= segmentforward); void SetParameter(int index0,int index1,FACIESSEGMENTDIRECTION direction); private: int CalculatePointCount(); };