From 119e82f32ecd2cd7feedbc47df31684ee59b282a Mon Sep 17 00:00:00 2001 From: Lucas De Marchi Date: Mon, 18 Sep 2017 18:39:00 -0700 Subject: [PATCH] ArduPlane: add static create method for AP_Avoidance_* --- ArduPlane/avoidance_adsb.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/ArduPlane/avoidance_adsb.h b/ArduPlane/avoidance_adsb.h index c5127771af..61081198c8 100644 --- a/ArduPlane/avoidance_adsb.h +++ b/ArduPlane/avoidance_adsb.h @@ -7,13 +7,22 @@ // AP_Avoidance, this class allows Plane to override base // functionality - for example, not doing anything while landed. class AP_Avoidance_Plane : public AP_Avoidance { - public: + static AP_Avoidance_Plane create(AP_AHRS &ahrs, class AP_ADSB &adsb) { + return AP_Avoidance_Plane{ahrs, adsb}; + } - AP_Avoidance_Plane(AP_AHRS &ahrs, class AP_ADSB &adsb) : - AP_Avoidance(ahrs, adsb) { } + constexpr AP_Avoidance_Plane(AP_Avoidance_Plane &&other) = default; + + /* Do not allow copies */ + AP_Avoidance_Plane(const AP_Avoidance_Plane &other) = delete; + AP_Avoidance_Plane &operator=(const AP_Avoidance_Plane&) = delete; protected: + AP_Avoidance_Plane(AP_AHRS &ahrs, class AP_ADSB &adsb) + : AP_Avoidance(ahrs, adsb) + { + } // override avoidance handler MAV_COLLISION_ACTION handle_avoidance(const AP_Avoidance::Obstacle *obstacle, MAV_COLLISION_ACTION requested_action) override;