|
|
|
|
|
#pragma once
|
|
|
|
|
|
#ifndef AFX_EXT_CLASS
|
|
|
|
|
|
#define AFX_EXT_CLASS Q_DECL_IMPORT
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
#include <set>
|
|
|
|
|
|
#include "InterfaceElements.h"
|
|
|
|
|
|
#include "GObjects/mycurve.h"
|
|
|
|
|
|
#include "GObjects/Con2Pgn.h"
|
|
|
|
|
|
|
|
|
|
|
|
using std::vector;
|
|
|
|
|
|
using std::set;
|
|
|
|
|
|
//using namespace GObjects;
|
|
|
|
|
|
/*@file: PolygonTree.h
|
|
|
|
|
|
* @desc: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>״ͼ,<EFBFBD>˽ӿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>opencv<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* @date: 2023.3.11
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>β㼶<CEB2><E3BCB6>ϵ<EFBFBD><CFB5> vector<int><3E><><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>Ԫ<EFBFBD><D4AA> <20><>ʾ 0<><30><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>ǰһ<C7B0><D2BB><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
using MyHierarchy = vector< vector<int> >;
|
|
|
|
|
|
|
|
|
|
|
|
//class GObjects::CMyCurve;
|
|
|
|
|
|
//class GObjects::CPolygonTree;
|
|
|
|
|
|
class AFX_EXT_CLASS CPolygonTreeInterface
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CPolygonTreeInterface(void);
|
|
|
|
|
|
~CPolygonTreeInterface(void);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//vector<CPolyline*>& GetPolygons(void);
|
|
|
|
|
|
//MyHierarchy& GetHierarchy(void);
|
|
|
|
|
|
|
|
|
|
|
|
void Create(float filterArea = -1);
|
|
|
|
|
|
|
|
|
|
|
|
void AddPolygon(CPolyline* pc);
|
|
|
|
|
|
void SetPolygons(vector<CPolyline*>& pgns);
|
|
|
|
|
|
//<2F><><EFBFBD>ò㼶<C3B2><E3BCB6>ϵ
|
|
|
|
|
|
void SetHierarchy(MyHierarchy& hier);
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD> m_polygons <20><>m_hierarchy
|
|
|
|
|
|
void Clear(void);
|
|
|
|
|
|
|
|
|
|
|
|
vector<CPolyline*>& GetResultPolygons(void);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߺϲ<DFBA><CFB2><EFBFBD>һ<EFBFBD><D2BB>
|
|
|
|
|
|
CPolyline* CombineResultContoursToOne(void);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
//<2F>ɲ㼶<C9B2><E3BCB6>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>,<2C><><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>
|
|
|
|
|
|
int CreateWithHierarchy(float filterArea);
|
|
|
|
|
|
|
|
|
|
|
|
//m_pgnTree<65><65><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߺϳ<DFBA>һ<EFBFBD><D2BB>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CMyCurve* m_virtualRoot; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
|
|
|
|
|
|
vector<CMyCurve*> m_srcPolygons; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
MyHierarchy m_hierarchy; //<2F>㼶<EFBFBD><E3BCB6>ϵ
|
|
|
|
|
|
|
|
|
|
|
|
//CPolyline m_combinedPolygon; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κϲ<CEBA><CFB2><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
vector<CPolyline*> m_rstPolygons; //<2F><><EFBFBD>ɵĽ<C9B5><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
CPolygonTree* m_pgnTree;
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|