⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 painted.cpp

📁 这是书上的代码
💻 CPP
字号:
// painted.cpp : implementation of the CPainted class
//

#include "stdafx.h"
#include "const.h"
#include "painted.h"
//#include "paintdoc.h"
//#include "line.h"
#include "Pnt.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CPainted

//IMPLEMENT_DYNAMIC(CPainted, CObject)

CPainted::CPainted()
{
	m_rgbPrimary = RGB(0, 0, 0);// blue
	m_nWidth = 1;
	m_bhitarc=FALSE;		//TRUE表示正圆弧被选中
	m_pointPrimary = CPnt(0,0);
	m_uPathId=120;			//路径ID	
	m_fPathLimit=120.0f;	//速度限制
	m_uPathGuideType=2;	//导航方式
	m_uPathExtType=120;		//路径扩展类型
	m_uFigureType=0;		//路径类型
	m_uPathObstacle=120;	//路径障碍物模式
	m_uPathHeading=0;		//路径车头方向
	m_uStartNodeId=120;		//起点ID
	m_uStartNodeType=1;	//起点类型
	m_uStartNodeExtType=120;//起点扩展类型
	m_uEndNodeId=120;		//终点ID
	m_uEndNodeType=1;		//终点类型
	m_uEndNodeExtType=120;	//终点扩展类型
	m_bSelect=FALSE;		//TRUE表示图形元素被选中
	m_uEndNodeState=0;//终点状态0=相切点1=非相切点2=断点
	m_uStartNodeState=0;//起点状态0=相切点1=非相切点2=断点
	m_bReferencePoint=FALSE;//参考点FALSE表示终点为参考点
	m_fStartHeading=0;//起点车头方向角(度)
	m_fEndHeading=0;//终点车头方向角(度)
	m_bFirstMove=TRUE;		//TRUE表示第一次移动
	m_bSelectStartNode=FALSE;	//TRUE表示图形元素起点被选中
	m_bSelectEndNode=FALSE;	//TRUE表示图形元素终点被选中
	m_StartPostureAngle=0;//路段起点的姿态角(外射角)
	m_EndPostureAngle=0;//路段终点的姿态角(外射角)
	m_nDeviceId=0;//设备编号
	m_nSomeStatus=0;//图形所处的状态
	m_nStatusNumber=0;//设备的状态数量
}


void CPainted::Serialize(CArchive& ar)
{
	if (ar.IsStoring())
	{
		ar << m_nWidth;
		ar << m_rgbPrimary;
		ar << m_pointPrimary;

		ar << m_uStartNodeId;//起点ID
		ar << m_uStartNodeType;//起点类型
		ar << m_uStartNodeExtType;//起点扩展类型
		ar << m_uEndNodeId;//终点ID
		ar << m_uEndNodeType;//终点类型
		ar << m_uEndNodeExtType;//终点扩展类型
		ar << m_uFigureType;		//路径类型
		ar << m_uPathId;		//路径ID
		ar << m_fPathLimit;	//速度限制
		ar << m_uPathGuideType;	//导航方式
		ar << m_uPathExtType;	//路径扩展类型		
		ar << m_uPathObstacle;//路径障碍物模式
		ar << m_uPathHeading;//路径车头方向
		ar << m_fStartHeading;//起点车头方向角(度)
		ar << m_fEndHeading;//终点车头方向角(度)
		ar << m_StartPostureAngle;//路段起点的姿态角(外射角)
		ar << m_EndPostureAngle;
		ar << m_uObjectType;//地图对象的类型0=路径1=建筑2=设备
		ar << m_nDeviceId;//设备编号
		ar << m_nSomeStatus;//图形所处的状态
		ar << m_nStatusNumber;//设备的状态数量
	}
	else
	{
		ar >>m_nWidth;
		ar >> m_rgbPrimary;
		ar >> m_pointPrimary;

		ar >> m_uStartNodeId;//起点ID
		ar >> m_uStartNodeType;//起点类型
		ar >> m_uStartNodeExtType;//起点扩展类型
		ar >> m_uEndNodeId;//终点ID
		ar >> m_uEndNodeType;//终点类型
		ar >> m_uEndNodeExtType;//终点扩展类型
		ar >> m_uFigureType;		//路径类型
		ar >> m_uPathId;		//路径ID
		ar >> m_fPathLimit;	//速度限制
		ar >> m_uPathGuideType;	//导航方式
		ar >> m_uPathExtType;	//路径扩展类型		
		ar >> m_uPathObstacle;//路径障碍物模式
		ar >> m_uPathHeading;//路径车头方向
		ar >> m_fStartHeading;//起点车头方向角(度)
		ar >> m_fEndHeading;//终点车头方向角(度)
		ar >> m_StartPostureAngle;//路段起点的姿态角(外射角)
		ar >> m_EndPostureAngle;
		ar >> m_uObjectType;//地图对象的类型0=路径1=建筑2=设备
		ar >> m_nDeviceId;//设备编号
		ar >> m_nSomeStatus;//图形所处的状态
		ar >> m_nStatusNumber;//设备的状态数量
	}
}

void CPainted::NormalizePoints(CPnt& pointTopLeft, CPnt& pointBottomRight)
{
	if (pointTopLeft.x >= pointBottomRight.x &&
		pointTopLeft.y >= pointBottomRight.y)
	{
		double swap;

		swap = pointBottomRight.y;
		pointBottomRight.y = pointTopLeft.y;
		pointTopLeft.y = swap;

		swap = pointBottomRight.x;
		pointBottomRight.x = pointTopLeft.x;
		pointTopLeft.x = swap;
 	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -