📄 area.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 + -