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

📄 area.cpp

📁 robot fira SimuroSot 5vs5 (仿真)
💻 CPP
字号:
/****************************************************************************************************
area.cpp 艾数机器人区域源文件

Purpose:
	球场区域管理

author:
	yy_cn

Created Time:
	2006-5-11
****************************************************************************************************/

#include "area.h"

////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 区域管理
//

// public
AreaManager::AreaManager (void)
	: _areas ()
{
	//
	// 创建区域信息
	//
	/*
		1. 6.8118, 77.2392, 17.6934, 66.3961
		2. 17.6934, 77.2392, 37.2016, 66.3961
		3. 37.2016, 77.2392, 60.2706, 66.3961
		4. 60.2706, 77.2392, 82.5443, 66.3961
		5. 82.5443, 77.2392, 93.4259, 66.3961
		6. 6.8118, 66.3916, 17.6934, 43.0032
		7. 17.6934, 66.3916, 37.2016, 43.0032
		8. 37.2016, 66.3916, 60.2706, 43.0032
		9. 60.2706, 66.3916, 82.5443, 43.0032
		10. 82.5443, 66.3916, 93.4259 , 43.0032
		11. 6.8118, 43.0032, 17.6934, 19.9442
		12. 17.6934, 43.0032, 37.2016, 19.9442
		13. 37.2016, 43.0032, 60.2706, 19.9442
		14. 60.2706, 43.0032, 82.5443, 19.9442
		15. 82.5443, 43.0032, 93.4259, 19.9442
		16. 6.8118, 19.9442, 17.6934, 6.3730
		17. 17.6934, 19.9442, 37.2016, 6.3730
		18. 37.2016, 19.9442, 60.2706, 6.3730
		19. 60.2706, 19.9442, 82.5443, 6.3730
		20. 82.5443, 19.9442, 93.4259, 6.3730
	*/
	addArea (6.8118, 77.2392, 17.6934, 66.3961, BA_1);
	addArea (17.6934, 77.2392, 37.2016, 66.3961, BA_2);
	addArea (37.2016, 77.2392, 60.2706, 66.3961, BA_3);
	addArea (60.2706, 77.2392, 82.5443, 66.3961, BA_4);
	addArea (82.5443, 77.2392, 93.4259, 66.3961, BA_5);
	addArea (6.8118, 66.3916, 17.6934, 43.0032, BA_6);
	addArea (17.6934, 66.3916, 37.2016, 43.0032, BA_7);
	addArea (37.2016, 66.3916, 60.2706, 43.0032, BA_8);
	addArea (60.2706, 66.3916, 82.5443, 43.0032, BA_9);
	addArea (82.5443, 66.3916, 93.4259 , 43.0032, BA_10);
	addArea (6.8118, 43.0032, 17.6934, 19.9442, BA_11);
	addArea (17.6934, 43.0032, 37.2016, 19.9442, BA_12);
	addArea (37.2016, 43.0032, 60.2706, 19.9442, BA_13);
	addArea (60.2706, 43.0032, 82.5443, 19.9442, BA_14);
	addArea (82.5443, 43.0032, 93.4259, 19.9442, BA_15);
	addArea (6.8118, 19.9442, 17.6934, 6.3730, BA_16);
	addArea (17.6934, 19.9442, 37.2016, 6.3730, BA_17);
	addArea (37.2016, 19.9442, 60.2706, 6.3730, BA_18);
	addArea (60.2706, 19.9442, 82.5443, 6.3730, BA_19);
	addArea (82.5443, 19.9442, 93.4259, 6.3730, BA_20);
}

// public
AreaManager::~AreaManager (void)
{
	for_each (_areas.begin (), _areas.end (), delete_t <AreaInfo> ());
}

// pubic
void
AreaManager::addArea (double x1, double y1, double x2, double y2, BallArea area)
{
	AreaInfo *areaInfo = new AreaInfo (x1, y1, x2, y2, area);
	_areas.push_back (areaInfo);
}

// public	
const AreaInfo *
AreaManager::getArea (double x, double y)
{
	size_t size = _areas.size ();
	for (size_t i = 0; i < size; ++i) {
		if (_areas[i]->isInside (x, y) == true)
			return _areas[i];
	}
	return _areas[0];
}

⌨️ 快捷键说明

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