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.
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include <list>
|
|
|
|
|
|
#include <map>
|
|
|
|
|
|
#include <string>
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
using std::string;
|
|
|
|
|
|
//<2F><>ȡ<EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>dfdͼ<64><CDBC>
|
|
|
|
|
|
class GBaseObj;
|
|
|
|
|
|
class AFX_EXT_CLASS GDfdMap
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
GDfdMap();
|
|
|
|
|
|
virtual ~GDfdMap();
|
|
|
|
|
|
void ClearAll(void);
|
|
|
|
|
|
int ReadFile(const char* fname);
|
|
|
|
|
|
//<2F><>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA>
|
|
|
|
|
|
int GetElements(std::list<GBaseObj*>& dstObjs, string layername, bool bIncludingSublayers = true);
|
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA>
|
|
|
|
|
|
std::list<GBaseObj*>& GetElements();
|
|
|
|
|
|
int GetLayers(std::vector<string>& layers);
|
|
|
|
|
|
void InsertObj(GBaseObj* pobj, const string& strLayer, COLORREF color);
|
|
|
|
|
|
string InsertLayer(string layername);
|
|
|
|
|
|
//implementations
|
|
|
|
|
|
protected:
|
|
|
|
|
|
string GetParentLayer(string curLayer);
|
|
|
|
|
|
int GetSubLayers(string parentLayer ,std::list<string>& sublayers);
|
|
|
|
|
|
void InsertObj(GBaseObj* pobj);
|
|
|
|
|
|
//layerdst<73>Ƿ<EFBFBD>Ϊscr<63><72><EFBFBD>Ӳ<EFBFBD>
|
|
|
|
|
|
bool IsSubLayer(string layerscr, string layerdst);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
typedef std::list<GBaseObj*>::iterator OBJITER;
|
|
|
|
|
|
std::list<GBaseObj*> m_elements;
|
|
|
|
|
|
|
|
|
|
|
|
std::string m_tmpLayer;
|
|
|
|
|
|
COLORREF m_tmpColor;
|
|
|
|
|
|
std::map<string, std::list<GBaseObj*> > m_mapLayerObjs; //<2F><>λ<EFBFBD>Ͷ<EFBFBD>ӦԪ<D3A6><D4AA>
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|