// %flair:license{ // This file is part of the Flair framework distributed under the // CECILL-C License, Version 1.0. // %flair:license} // created: 2021/12/22 // filename: Plane.h // // author: Armando Alatorre Sevilla, Guillaume Sanahuja // Copyright Heudiasyc UMR UTC/CNRS 7253 // // version: $Id: $ // // purpose: classe definissant un avion // /*********************************************************************/ #ifndef PLANE_H #define PLANE_H #include namespace flair { namespace core { class Mutex; } namespace gui { class DoubleSpinBox; class SpinBox; } namespace actuator { class SimuBldc; } } #ifdef GL namespace irr { namespace scene { class IMesh; } } #endif namespace flair { namespace simulator { class Blade; class MeshSceneNode; class Plane : public Model { public: Plane(std::string name, uint32_t modelId); ~Plane(); #ifdef GL virtual void Draw(void); virtual void ExtraDraw(void){}; #endif private: void CalcModel(void); #ifdef GL void AnimateModel(void); size_t dbtSize(void) const; void WritedbtBuf(char *dbtbuf); void ReaddbtBuf(char *dbtbuf); core::Mutex *motor_speed_mutex; Blade *f_blade; MeshSceneNode *l_aileron,*r_aileron; #endif actuator::SimuBldc *motor; float motor_speed; gui::DoubleSpinBox *m; gui::SpinBox *motorTimeout; }; } // end namespace simulator } // end namespace flair #endif // PLANE_H