| 648 | } |
| 649 | |
| 650 | LuaValue WorldCallbacks::nearestTo(World* world, LuaEngine& engine, Variant<Vec2F, float> const& sourcePositionOrX, Variant<Vec2F, float> const& targetPositionOrX) { |
| 651 | if (targetPositionOrX.is<Vec2F>()) { |
| 652 | Vec2F targetPosition = targetPositionOrX.get<Vec2F>(); |
| 653 | Vec2F sourcePosition; |
| 654 | if (sourcePositionOrX.is<Vec2F>()) |
| 655 | sourcePosition = sourcePositionOrX.get<Vec2F>(); |
| 656 | else |
| 657 | sourcePosition[0] = sourcePositionOrX.get<float>(); |
| 658 | |
| 659 | return engine.luaFrom<Vec2F>(world->geometry().nearestTo(sourcePosition, targetPosition)); |
| 660 | |
| 661 | } else { |
| 662 | float targetX = targetPositionOrX.get<float>(); |
| 663 | float sourceX; |
| 664 | if (sourcePositionOrX.is<Vec2F>()) |
| 665 | sourceX = sourcePositionOrX.get<Vec2F>()[0]; |
| 666 | else |
| 667 | sourceX = sourcePositionOrX.get<float>(); |
| 668 | |
| 669 | return LuaFloat(world->geometry().nearestTo(sourceX, targetX)); |
| 670 | } |
| 671 | } |
| 672 | |
| 673 | bool WorldCallbacks::rectCollision(World* world, RectF const& arg1, Maybe<CollisionSet> const& arg2) { |
| 674 | PolyF body = PolyF(arg1); |
no test coverage detected