return nn.nn;
}
+#define EDIST(a, b) ({ __typeof__ (a) _a = (a); \
+ __typeof__ (b) _b = (b); \
+ pow(pow((_b)->x() - (_a)->x(), 2) + \
+ pow((_b)->y() - (_a)->y(), 2), 0.5); })
+
RRTNode *nn4(
std::vector<RRTNode *> (&nodes)[IYSIZE],
RRTNode *node,
for (i = 0; i < nodes[iyj].size(); i++) {
oh = node->h();
node->h(nodes[iyj][i]->h());
- if ((*cost)(nodes[iyj][i], node) < nn.mc) {
- nn.mc = (*cost)(nodes[iyj][i], node);
+ if (EDIST(nodes[iyj][i], node) < nn.mc) {
+ nn.mc = EDIST(nodes[iyj][i], node);
nn.nn = nodes[iyj][i];
}
node->h(oh);
for (i = 0; i < nodes[iyj].size(); i++) {
oh = node->h();
node->h(nodes[iyj][i]->h());
- if ((*cost)(nodes[iyj][i], node) < nn.mc) {
- nn.mc = (*cost)(nodes[iyj][i], node);
+ if (EDIST(nodes[iyj][i], node) < nn.mc) {
+ nn.mc = EDIST(nodes[iyj][i], node);
nn.nn = nodes[iyj][i];
}
node->h(oh);