#include <omp.h>
#include <vector>
+#include "cost.h"
#include "nn.h"
#include "rrtbase.h"
unsigned int i = 0; // vector step
unsigned int j = 0; // array step
int iyj = 0;
+ float oh = node->h();
while (nn.mc > j * IYSTEP) {
iyj = (int) (iy + j);
if (iyj >= IYSIZE)
iyj = IYSIZE - 1;
#pragma omp parallel for reduction(minn: nn)
for (i = 0; i < nodes[iyj].size(); i++) {
- if ((*cost)(nodes[iyj][i], node) < nn.mc) {
- nn.mc = (*cost)(nodes[iyj][i], node);
+ node->h(nodes[iyj][i]->h());
+ if (co2(nodes[iyj][i], node) < nn.mc) {
+ nn.mc = co2(nodes[iyj][i], node);
nn.nn = nodes[iyj][i];
}
}
iyj = 0;
#pragma omp parallel for reduction(minn: nn)
for (i = 0; i < nodes[iyj].size(); i++) {
- if ((*cost)(nodes[iyj][i], node) < nn.mc) {
- nn.mc = (*cost)(nodes[iyj][i], node);
+ node->h(nodes[iyj][i]->h());
+ if (co2(nodes[iyj][i], node) < nn.mc) {
+ nn.mc = co2(nodes[iyj][i], node);
nn.nn = nodes[iyj][i];
}
}
}
j++;
}
+ node->h(oh);
return nn.nn;
}