Ejemplo n.º 1
0
bool AStar::judgeSurround(const ASCOORD& coord,const ASCOORD& parentCoord,int G)
{
	if(!isInList(m_closeList,coord) && !m_mark.isMask(coord._y,coord._x))
	{
		StepData* pSD = findFromList(m_openList,coord);
		if (pSD && pSD->_g > G)
		{
			pSD->_g = G;
			pSD->_parentCoord = parentCoord;
		}
		else if(!pSD)
		{
			StepData newSD(coord);
			newSD._g = G;
			newSD._h = computeH(coord);
			newSD._parentCoord = parentCoord;

			m_openList.push_back(newSD);

			if(newSD._coord == m_start)
				return true;
		}
	}

	return false;
}
Ejemplo n.º 2
0
bool AStar::GetRoute(std::vector<ASCOORD>* list)
{
	list->clear();

	StepData* sd = findFromList(m_openList,m_start);
	int size = m_openList.size();
	if(sd!=NULL)
	{
		list->push_back(sd->_coord);

		sd = findFromList(m_closeList,sd->_parentCoord);
		while(sd->_coord!=m_target)
		{
			list->push_back(sd->_coord);
			sd = findFromList(m_closeList,sd->_parentCoord);
		}
		list->push_back(sd->_coord);
		return true;
	}

	return false;
}
Ejemplo n.º 3
0
void DataSetVOC::loadBox(const FileNode &fn, vector<Vec4i> &boxes, vecI &clsIdx){
	string isDifficult;
	fn["difficult"]>>isDifficult;
	if (isDifficult == "1")
		return; 

	string strXmin, strYmin, strXmax, strYmax;
	fn["bndbox"]["xmin"] >> strXmin;
	fn["bndbox"]["ymin"] >> strYmin;
	fn["bndbox"]["xmax"] >> strXmax;
	fn["bndbox"]["ymax"] >> strYmax;
	boxes.push_back(Vec4i(atoi(_S(strXmin)), atoi(_S(strYmin)), atoi(_S(strXmax)), atoi(_S(strYmax))));

	string clsName;
	fn["name"]>>clsName;
	clsIdx.push_back(findFromList(clsName, classNames));	
	CV_Assert_(clsIdx[clsIdx.size() - 1] >= 0, ("Invalidate class name\n"));
}