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++

//////////////////////////////////////////////////////////////////////////////
//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