| 59 | bindMovable["getPosition"] = &obe::Transform::Movable::getPosition; |
| 60 | } |
| 61 | void LoadClassPolygon(sol::state_view state) |
| 62 | { |
| 63 | sol::table TransformNamespace = state["obe"]["Transform"].get<sol::table>(); |
| 64 | sol::usertype<obe::Transform::Polygon> bindPolygon |
| 65 | = TransformNamespace.new_usertype<obe::Transform::Polygon>("Polygon", |
| 66 | sol::call_constructor, sol::default_constructor, sol::base_classes, |
| 67 | sol::bases<obe::Transform::UnitBasedObject, obe::Transform::Movable>()); |
| 68 | bindPolygon["addPoint"] = sol::overload( |
| 69 | [](obe::Transform::Polygon* self, const obe::Transform::UnitVector& position) |
| 70 | -> void { return self->addPoint(position); }, |
| 71 | [](obe::Transform::Polygon* self, const obe::Transform::UnitVector& position, |
| 72 | int pointIndex) -> void { return self->addPoint(position, pointIndex); }); |
| 73 | bindPolygon["findClosestSegment"] = &obe::Transform::Polygon::findClosestSegment; |
| 74 | bindPolygon["findClosestPoint"] = sol::overload( |
| 75 | [](obe::Transform::Polygon* self, const obe::Transform::UnitVector& position) |
| 76 | -> obe::Transform::PolygonPoint& { |
| 77 | return self->findClosestPoint(position); |
| 78 | }, |
| 79 | [](obe::Transform::Polygon* self, const obe::Transform::UnitVector& position, |
| 80 | bool neighbor) -> obe::Transform::PolygonPoint& { |
| 81 | return self->findClosestPoint(position, neighbor); |
| 82 | }, |
| 83 | [](obe::Transform::Polygon* self, const obe::Transform::UnitVector& position, |
| 84 | bool neighbor, |
| 85 | const std::vector<obe::Transform::point_index_t>& excludedPoints) |
| 86 | -> obe::Transform::PolygonPoint& { |
| 87 | return self->findClosestPoint(position, neighbor, excludedPoints); |
| 88 | }); |
| 89 | bindPolygon["getAllPoints"] = &obe::Transform::Polygon::getAllPoints; |
| 90 | bindPolygon["getCentroid"] = &obe::Transform::Polygon::getCentroid; |
| 91 | bindPolygon["getPointsAmount"] = &obe::Transform::Polygon::getPointsAmount; |
| 92 | bindPolygon["getPosition"] = &obe::Transform::Polygon::getPosition; |
| 93 | bindPolygon["getRotation"] = &obe::Transform::Polygon::getRotation; |
| 94 | bindPolygon["getSegment"] = &obe::Transform::Polygon::getSegment; |
| 95 | bindPolygon["getSegmentContainingPoint"] = sol::overload( |
| 96 | [](obe::Transform::Polygon* self, const obe::Transform::UnitVector& position) |
| 97 | -> std::optional<obe::Transform::PolygonSegment> { |
| 98 | return self->getSegmentContainingPoint(position); |
| 99 | }, |
| 100 | [](obe::Transform::Polygon* self, const obe::Transform::UnitVector& position, |
| 101 | double tolerance) -> std::optional<obe::Transform::PolygonSegment> { |
| 102 | return self->getSegmentContainingPoint(position, tolerance); |
| 103 | }); |
| 104 | bindPolygon["isCentroidAroundPosition"] |
| 105 | = &obe::Transform::Polygon::isCentroidAroundPosition; |
| 106 | bindPolygon["getPointAroundPosition"] |
| 107 | = &obe::Transform::Polygon::getPointAroundPosition; |
| 108 | bindPolygon["move"] = &obe::Transform::Polygon::move; |
| 109 | bindPolygon["rotate"] = &obe::Transform::Polygon::rotate; |
| 110 | bindPolygon["setPosition"] = &obe::Transform::Polygon::setPosition; |
| 111 | bindPolygon["setRotation"] = &obe::Transform::Polygon::setRotation; |
| 112 | bindPolygon["setPositionFromCentroid"] |
| 113 | = &obe::Transform::Polygon::setPositionFromCentroid; |
| 114 | bindPolygon[sol::meta_function::index] = &obe::Transform::Polygon::operator[]; |
| 115 | bindPolygon["get"] = &obe::Transform::Polygon::get; |
| 116 | bindPolygon["getBoundingBox"] = &obe::Transform::Polygon::getBoundingBox; |
| 117 | bindPolygon["DefaultTolerance"] |
| 118 | = sol::var(obe::Transform::Polygon::DefaultTolerance); |
nothing calls this directly
no test coverage detected