Я хочу сохранить все точки / координаты, которые мой путь охватывает, к векторному объекту.
Прямо сейчас, результат довольно случайный, я еще не выяснил, что влияет на количество очков, которые я получаю. Большую часть времени сохраняется только начальная точка, иногда ее 4 балла, затем 11, но никогда не все точки, которые покрыты моим путем.
Это то, что я делаю сейчас:
std::vector<glm::vec2> getPointsInCurve(Path2d path) {
Rectf bb = path.calcPreciseBoundingBox();
vec2 upperLeft = bb.getUpperLeft();
vec2 lowerLeft = bb.getLowerLeft();
vec2 upperRight = bb.getUpperRight();
vector<vec2> pathPoints;
for (int y = upperLeft.y; y <= lowerLeft.y; y++) {
for (int x = upperLeft.x; x < upperRight.x; x++){
if (path.contains(vec2(x, y))) {
pathPoints.emplace_back(vec2(x, y));
}
}
}
return pathPoints;
}
Я в основном получаю ограничивающий путь путь, а затем перебираю каждую координату в этом поле и проверяю, лежит ли он на пути, и если да, я сохраняю это
Я чувствую, что функция has () не подходит для этого, но у меня нет идей, как этого добиться.
Заранее спасибо за помощь.