|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "SmartPtr.h"
|
|
|
|
|
#include "ObjBase.h"
|
|
|
|
|
#include "GlobalDefine.h"
|
|
|
|
|
#include "ObjContainer.h"
|
|
|
|
|
|
|
|
|
|
//ƫ<><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
class COffsetRect
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
DbRect m_Rect;
|
|
|
|
|
Dbxy m_Offset;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class CLayer
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
~CLayer(void);
|
|
|
|
|
static CLayer &Instance();//<2F><><EFBFBD><EFBFBD>ģʽ
|
|
|
|
|
|
|
|
|
|
void Serialize(CArchive& ar);
|
|
|
|
|
void Draw(CDC* pDC);
|
|
|
|
|
void XorRedrawObj(CDC* pDC,bool bNeedSel = true);
|
|
|
|
|
void AddObject(CObjBase *pMarkObject);
|
|
|
|
|
void AddObject(Sptr<CObjBase> p);
|
|
|
|
|
void AddObject(CObjContainer &ObjContainer);
|
|
|
|
|
void AddTmpObject(Sptr<CObjBase> p);
|
|
|
|
|
void DelSelObj();
|
|
|
|
|
void DelObj(Sptr<CObjBase> p);
|
|
|
|
|
void DelObj(CObjContainer &ObjContainer);
|
|
|
|
|
|
|
|
|
|
void ClearTmpObj();
|
|
|
|
|
bool SelObjectInRect(DbRect rect,bool bNeedAllIn);
|
|
|
|
|
void SelAllObj();
|
|
|
|
|
void DelAllObj();
|
|
|
|
|
void NotSelAllObj();
|
|
|
|
|
void RevSelAllObj();
|
|
|
|
|
bool HasSelObjectInRect(DbRect rect);
|
|
|
|
|
bool HasObjSel();
|
|
|
|
|
MOUSE_TOOL JudgeMouseToolType(Dbxy pt);
|
|
|
|
|
void OperateObj(SObjOperatePar &par,bool bAll);
|
|
|
|
|
DbRect GetSelObjRect();
|
|
|
|
|
void OnRotato(double Angle);
|
|
|
|
|
void OnMirror(X_OR_Y xy);
|
|
|
|
|
void OnMove(double MoveX,double MoveY,bool bAddUndo = true);
|
|
|
|
|
void GetLineInRect(DbRect &rect,vector<DbLine> &DataPtLineVec,bool bCatchTemp);
|
|
|
|
|
void CloneObj(CObjContainer &ObjContainer,bool bNeedSel);
|
|
|
|
|
Sptr<CObjBase> GetFirstObjInRect(DbRect &rect);
|
|
|
|
|
Sptr<CObjBase> GetFirstNodeObjInRect(DbRect &rect);
|
|
|
|
|
bool HasObjectInRect(DbRect rect);
|
|
|
|
|
void GetIntersectPoint(DbLine &line,vector<Dbxy> &PointVec);
|
|
|
|
|
bool HasObjIntersectWithLine(DbLine &line);
|
|
|
|
|
void OnReverseSelObj();
|
|
|
|
|
bool OnJoin();
|
|
|
|
|
void OnExplode();
|
|
|
|
|
bool HasSelNodeInRect(DbRect rect);
|
|
|
|
|
void BindingSelObjToDlg();
|
|
|
|
|
CObjContainer &GetObjContainer(){return *m_ObjContainer;};
|
|
|
|
|
void FillObj(SFillPar FillPar,bool bNeedSel = true);
|
|
|
|
|
CMFCPropertyGridProperty *CreatSpecialGridProperty(CModule *pModule);
|
|
|
|
|
void OnSpecialPropertyChanged();
|
|
|
|
|
void BindObjContainer(CObjContainer &Container);
|
|
|
|
|
void GetAllPointObjPt(vector<Dbxy> &PtVec);
|
|
|
|
|
bool IsOffsetRect(DbRect rect);
|
|
|
|
|
void UpdateRectObjOffset();
|
|
|
|
|
private:
|
|
|
|
|
CLayer(void);
|
|
|
|
|
void DrawAllObj(CDC* pDC);
|
|
|
|
|
private:
|
|
|
|
|
static CLayer m_Instance;//<2F><><EFBFBD><EFBFBD>ģʽ
|
|
|
|
|
|
|
|
|
|
CObjContainer *m_ObjContainer;//obj <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CObjContainer m_TmpObjContainer;//<2F><>ʱobj <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>Ҫ<EFBFBD><D2AA><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>ʱ<EFBFBD><CAB1>)
|
|
|
|
|
};
|
|
|
|
|
|