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.

24 lines
909 B
C++

#pragma once
#include "SequentialPoint.h"
#include "SFillPar.h"
class CObjFill
{
public:
CObjFill(vector<CSequentialPoint> &Vec);
virtual ~CObjFill(void);
void CreatFill(vector<vector<Dbxy>> &PtVec,DbRect rect);
void SetPar(SFillPar Par){m_FillPar = Par;};
private:
void FillCloseArea(vector<Dbxy> &PtVec,Dbxy pt1,Dbxy pt2,Dbxy Offset,int ScanTimes,DbRect rect);
void GetScanLine(DbRect rect,Dbxy &Pt1,Dbxy &Pt2,Dbxy &Offset,int &ScanTimes);
void SortIntersection(vector<Dbxy> &IntersectionVec);
void SaveScanResult(vector<Dbxy> &IntersectionVec);
bool GetIntersection(vector<vector<Dbxy>> &LinesVec,Dbxy pt1,Dbxy pt2,vector<Dbxy> &IntersectionVec,DbRect rect);
private:
vector<CSequentialPoint> &m_SequentialPointVec;//一组线段的容器
SFillPar m_FillPar;//填充参数
};