You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
2.8 KiB
C

1 month ago
#pragma once
#include "CommonDefines.h"
class CPointSeriesManager;
class CGDFSegment;
//<2F>ǹ<EFBFBD><C7B9><EFBFBD>CElementLine<6E><65>CElementFill<6C>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>λ
class CPointSeries : public CObject
{
public:
DECLARE_SERIAL(CPointSeries)
CPointSeries(CPointSeriesManager* pSeriesManager=NULL);
~CPointSeries();
//Attributes
private:
POINTSERIESID m_id;
/*ʱ<><CAB1><EFBFBD><EFBFBD>*/
ULONGLONG m_ullTimeStamp;
CPointSeriesManager* m_pSeriesManager;
/*ԭʼ<D4AD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>*/
CArray<FACIESPOINT,FACIESPOINT> m_pointarray;
/* <20><>ֵƽ<D6B5><C6BD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><><C8AB>ת<EFBFBD><D7AA>Ϊͼ<CEAA><CDBC><EFBFBD><EFBFBD>*/
CArray<CPoint2D,CPoint2D> m_mappointarray;
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô˵<C3B4><CBB5><EFBFBD><EFBFBD>е<EFBFBD>CGDFSegment */
CTypedPtrArray<CPtrArray,CGDFSegment*> m_referencearray;
//Operations
public:
void BuildMapPointArray();
void Clear();
void CreateID(POINTSERIESID& id);
void IncreaseReference(CGDFSegment* pSegment);
void DecreaseReference(CGDFSegment* pSegment);
POINTSERIESID* GetID();
CPoint2D* GetMapPointArray();
FACIESPOINT* GetPointArray();
int GetPointCount();
void Initialize();
void InsertPoint(int index,CPoint2D point,BYTE smooth);
void InsertPoint(int index,CPoint2D* pointarray,int count,BYTE smooth);
void InsertPoint(int index,FACIESPOINT point);
void InsertPoint(int index,FACIESPOINT* pointarray,int count);
CPoint2D FPtoMP(FACIESPOINT yapoint);
FACIESPOINT MPtoFP(CPoint2D point);
CSize8 FPtoMP(CSize8 ysize);
CSize8 MPtoFP(CSize8 fsize);
BOOL SendInitializedMessage();
BOOL SendInvalidateMessage(int index0,int index1);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>йص<D0B9>Segment<6E><74>Relative<76><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
BOOL SendMovePointMessage(int index0,int index1);
BOOL SendInsertPointMessage(int index0,int index1);
void SetPoint(CPoint2D point);
void SetPoint(CPoint2D point,BYTE smooth);
void SetPoint(int index,CPoint2D point);
void SetPoint(int index,CPoint2D point,BYTE smooth);
void SetPoint(FACIESPOINT point);
void SetPoint(int index,FACIESPOINT point);
void SetPoint(int index,double x,double y);
//void GetPoint(int index,FACIESPOINT& point);
void GetPoint(int index,double& x,double& y);
BOOL GetPoint(int index,CPoint2D& point);
//<2F><><EFBFBD>º<EFBFBD><C2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊͼ<CEAA><CDBC><EFBFBD><EFBFBD>
void SetPointArray(CPoint2D* pointarray,int count,BYTE smooth);
//<2F><><EFBFBD>º<EFBFBD><C2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
void SetPointArray(FACIESPOINT* pointarray,int count);
void SetPointAttribute(int index,BYTE byteValue,BYTE byteMask);
BYTE GetPointAttribute(int index,BYTE byteMask);
void SetPointAttribute(int index0,int index1,BYTE byteValue,BYTE byteMask);
void SetSeriesManager(CPointSeriesManager* pSeriesManager);
void Smooth();
void SmoothOneNode(int indexl,int index0,int index1,int index2,int indexr);
void SmoothOneNode(int index);
void SmoothThreeNode(int index);
void UpdateTimeStamp();
friend class CGDFSegment;
friend class CPointSeriesManager;
friend class CPointSeriesCreator;
};