// %flair:license{ // This file is part of the Flair framework distributed under the // CECILL-C License, Version 1.0. // %flair:license} // created: 2013/04/03 // filename: VrpnObject_impl.h // // author: César Richard, Guillaume Sanahuja // Copyright Heudiasyc UMR UTC/CNRS 7253 // // version: $Id: $ // // purpose: objet vrpn // // /*********************************************************************/ #ifndef VRPNOBJECT_IMPL_H #define VRPNOBJECT_IMPL_H #include #include #include #include #include "Quaternion.h" #include "Vector3D.h" namespace flair { namespace core { class Matrix; } namespace gui { class TabWidget; class Tab; class DataPlot1D; } namespace sensor { class VrpnClient; class VrpnObject; } } class VrpnObject_impl { friend class VrpnClient_impl; public: VrpnObject_impl(flair::sensor::VrpnObject *self, std::string name, int id, const flair::gui::TabWidget *tab,flair::sensor::VrpnClient *client); ~VrpnObject_impl(void); void GetQuaternion(flair::core::Quaternion &quaternion); void GetPosition(flair::core::Vector3Df &point); bool IsTracked(unsigned int timeout_ms); flair::gui::Tab *plot_tab; flair::gui::DataPlot1D *x_plot; flair::gui::DataPlot1D *y_plot; flair::gui::DataPlot1D *z_plot; flair::core::Matrix *output, *state; static void VRPN_CALLBACK handle_pos(void *userdata, const vrpn_TRACKERCB t); private: flair::sensor::VrpnObject *self; const flair::sensor::VrpnClient *parent; vrpn_Tracker_Remote *tracker; void Update(void); flair::core::Time previousTime; }; #endif // VRPNOBJECT_IMPL_H