void pathFinding::findNeighboringCell(node c_node, bool diagonal = false) { addCell(getCellIdFromPoint(c_node.getX(), c_node.getY() + 1), c_node); addCell(getCellIdFromPoint(c_node.getX() - 1, c_node.getY()), c_node); addCell(getCellIdFromPoint(c_node.getX() + 1, c_node.getY()), c_node); addCell(getCellIdFromPoint(c_node.getX(), c_node.getY() - 1), c_node); if (diagonal) { addCell(getCellIdFromPoint(c_node.getX() - 1, c_node.getY() + 1), c_node); addCell(getCellIdFromPoint(c_node.getX() + 1, c_node.getY() + 1), c_node); addCell(getCellIdFromPoint(c_node.getX() + 1, c_node.getY() - 1), c_node); addCell(getCellIdFromPoint(c_node.getX() - 1, c_node.getY() - 1), c_node); } sortOpenList(); }
float angle(node d1){ float dx = d1.getX()-x; float dy = d1.getY()-y; return atan2(dy,dx); }
float dist(node d1){ return pow(pow(x-d1.getX(),2) + pow(y-d1.getY(),2),0.5); }
void node::calculH(node endNode) { h = 10 * (fabs(endNode.getX() - m_x) + fabs(endNode.getY() - m_y)); }