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.
78 lines
1.5 KiB
C++
78 lines
1.5 KiB
C++
//////////////////////////////////////////////////////////////////////////////
|
|
//YAMap.h
|
|
|
|
#ifndef __YAMAP_H__
|
|
#define __YAMAP_H__
|
|
|
|
#include <list>
|
|
using namespace std;
|
|
|
|
#include "CommonDefines.h"
|
|
#include "PointSeriesManager.h"
|
|
|
|
class CGDFLayer;
|
|
class CPointSeriesManager;
|
|
class CGDFObject;
|
|
|
|
class CGDFMap : public CObject
|
|
{
|
|
public:
|
|
DECLARE_SERIAL(CGDFMap)
|
|
|
|
CGDFMap();
|
|
~CGDFMap();
|
|
|
|
enum EDITMODE
|
|
{
|
|
modeNone,
|
|
modeCoordinateCorrect,//坐标校准
|
|
modeCreateRelative,//建立相对点
|
|
};
|
|
//Attributes
|
|
private:
|
|
CTypedPtrArray<CPtrArray,CGDFLayer*> m_layerarray;
|
|
CPointSeriesManager m_seriesmanager;
|
|
|
|
CGDFLayer* m_pSelectedLayer;
|
|
BOOL m_bLockSelectedLayer;
|
|
|
|
EDITMODE m_editmode;
|
|
|
|
CString m_strName;
|
|
CString m_strTypeName;
|
|
|
|
double m_dXFactor;//x方向拉伸系数
|
|
double m_dYFactor;//y方向拉伸系数
|
|
|
|
double m_dZoomFactor;
|
|
CRect m_drawrect;//here m_rect.bottom<m_rect.top
|
|
CRect8 m_maprect;
|
|
|
|
CPoint2D m_basepoint;//逻辑坐标的零点对应的图坐标的位置
|
|
|
|
CGDFLayer* m_pMouseLayer;
|
|
CGDFObject* m_pMouseObject;
|
|
CPoint2D m_mousepointbymap;//图坐标的鼠标位置
|
|
FACIESPOINT m_mousepointbyuser;//用户坐标的鼠标位置
|
|
double m_dMouseDistance;//鼠标距离
|
|
|
|
BOOL m_bModifyFlag;
|
|
BOOL m_bMoveInterrelatedObject;//如果两个对象有公共点,当移动了一个对象,时是否移动其它的对象
|
|
BOOL m_bEditable;
|
|
ULONGLONG m_ullTimeStamp;
|
|
double m_dAngle; //整张图旋转角度
|
|
|
|
//Operations
|
|
public:
|
|
void Clear();
|
|
|
|
CPointSeriesManager* GetSeriesManager();
|
|
CGDFLayer* GetLayer(int index);
|
|
CGDFLayer* GetLayer(LPCTSTR strName);
|
|
CGDFLayer* NewLayer(LPCTSTR strName);
|
|
|
|
};
|
|
|
|
#endif
|
|
|