+ {
+ dtSelectObject(&this->bc());
+ dtLoadIdentity();
+ dtTranslate(f.x(), f.y(), 0);
+ Quaternion q(Vector(0, 0, 1), f.h());
+ dtRotate(q[X], q[Y], q[Z], q[W]);
+ if (dtTest())
+ return std::make_tuple(true, 0, 0);
+ }
+ for (auto n: this->steered()) {
+ dtSelectObject(&this->bc());
+ dtLoadIdentity();
+ dtTranslate(n.x(), n.y(), 0);
+ Quaternion q(Vector(0, 0, 1), n.h());
+ dtRotate(q[X], q[Y], q[Z], q[W]);
+ if (dtTest())
+ return std::make_tuple(true, 0, 0);
+ }