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.

48 lines
1.6 KiB
C

#pragma once
#include "GlobalDefine.h"
#include "DataPoint.h"
#include "LabVecRang.h"
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶εĵ<CEB5>
class CSequentialPoint
{
public:
CSequentialPoint(void);
~CSequentialPoint(void);
void WriteWorkFile(vector<CLab> &LabVec);
void ReadWorkFile(CLabVecRang &LabVecRang);
void Load(CSequentialPoint &rhs);
bool Empty();
void AddDataPoint(CDataPoint pt);
void DelAllPt();//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>
void DelLastDataPoint();//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ڵ<EFBFBD>
bool IsInRect(DbRect rect,bool bNeedAllIn);
DbRect GetRect();
void Draw(CDC* pDC,CPen&Pen);
void DrawLastLine(CDC* pDC,CPen &Pen);
void DrawNode(CDC* pDC);
void GetLineInRect(DbRect &rect,vector<DbLine> &DataPtLineVec);
void GetNodePtLineInRect(DbRect &rect,vector<DbLine> &DataPtLineVec);
void Operate(SObjOperatePar par);
vector<CDataPoint>& GetPtContainer(){return m_PtContainer;};
void SetLastPoint(CDataPoint &pt);
Dbxy GetFirstPt();
Dbxy GetLastPt();
int GetNodePtIdx(Dbxy pt);
void DelNodePtByIdx(int idx);
void SetNodePtByIdx(int idx,Dbxy pt);
void InsertNode(int idx,Dbxy pt);
int GetPtCnt(){return m_PtContainer.size();};
bool HasNodeInRect(DbRect rect);
void GetPtData(vector<vector<Dbxy>> &vec,int PenNum = -1);
bool IntersectWithLine(DbLine &line);
private:
void DrawDataPointVec(CDC* pDC,vector<CDataPoint> &vec);
void Reverse();
void OperateExt(SObjOperatePar par);
private:
vector<CDataPoint> m_PtContainer;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD>
};