// // Created by bastian on 26.03.22. // #ifndef BUILD_GENERATEXYPOSE_H #define BUILD_GENERATEXYPOSE_H #include #include "../Area.h" #include #include namespace BT { // This class cannot guarantee valid results with every polygon, triangles are assumed to be a valid triangle-strip. class GenerateXYPose : public SyncActionNode { private: double getArea(const std::shared_ptr &area, unsigned long id); Position2D getRandomPosInTriangle(const std::shared_ptr &area, unsigned long id); std::default_random_engine re = std::default_random_engine(random()); std::uniform_real_distribution dist = std::uniform_real_distribution(0.0, 1.0); public: GenerateXYPose(const std::string &name, const NodeConfiguration &config); static PortsList providedPorts(); NodeStatus tick() override; }; } #endif //BUILD_GENERATEXYPOSE_H