}
}
if (entries.size() == 0) {
- return PoseRange();
+ return PoseRange(Pose(0.0, 0.0, 0.0), Pose(0.0, 0.0, 0.0));
}
if (entries.size() == 1) {
- PoseRange pr;
- pr.x(entries.front().front().x());
- pr.y(entries.front().front().y());
- pr.b(entries.front().front().h());
- pr.e(entries.front().front().h());
- return pr;
+ auto f = entries.front().front();
+ return PoseRange(f, f);
}
auto& c1 = entries.front().front();
auto& c2 = entries.back().front();
- double b = std::min(c1.h(), c2.h());
- double e = std::max(c1.h(), c2.h());
- clen = c.len();
- Point b1(c1.x() - clen * cos(c1.h()), c1.y() - clen * sin(c1.h()));
- Point b2(c2.x() - clen * cos(c2.h()), c2.y() - clen * sin(c2.h()));
- Point e1(c1.x() + clen * cos(c1.h()), c1.y() + clen * sin(c1.h()));
- Point e2(c2.x() + clen * cos(c2.h()), c2.y() + clen * sin(c2.h()));
- Line li1(b1, e1);
- Line li2(b2, e2);
- li1.intersects_with(li2);
- PoseRange pr;
- pr.x(li1.i1().x());
- pr.y(li1.i1().y());
- pr.b(b);
- pr.e(e);
- return pr;
+ return PoseRange(c1, c2);
}
PoseRange