sensorfw
|
00001 00027 #ifndef XYZ_H 00028 #define XYZ_H 00029 00030 #include <QDBusArgument> 00031 #include <datatypes/orientationdata.h> 00032 00036 class XYZ : public QObject 00037 { 00038 Q_OBJECT 00039 00040 Q_PROPERTY(int x READ x) 00041 Q_PROPERTY(int y READ y) 00042 Q_PROPERTY(int z READ z) 00043 00044 public: 00045 00049 XYZ() {} 00050 00056 XYZ(const TimedXyzData& xyzData); 00057 00063 XYZ(const XYZ& xyz); 00064 00069 const TimedXyzData& XYZData() const { return data_; } 00070 00075 int x() const { return data_.x_; } 00076 00081 int y() const { return data_.y_; } 00082 00087 int z() const { return data_.z_; } 00088 00094 XYZ& operator=(const XYZ& origin) 00095 { 00096 data_ = origin.XYZData(); 00097 return *this; 00098 } 00099 00106 bool operator==(const XYZ& right) const 00107 { 00108 TimedXyzData rdata = right.XYZData(); 00109 return (data_.x_ == rdata.x_ && 00110 data_.y_ == rdata.y_ && 00111 data_.z_ == rdata.z_ && 00112 data_.timestamp_ == rdata.timestamp_); 00113 } 00114 00115 private: 00116 TimedXyzData data_; 00118 friend const QDBusArgument &operator>>(const QDBusArgument &argument, XYZ& xyz); 00119 }; 00120 00121 Q_DECLARE_METATYPE( XYZ ) 00122 00123 00130 inline QDBusArgument &operator<<(QDBusArgument &argument, const XYZ &xyz) 00131 { 00132 argument.beginStructure(); 00133 argument << xyz.XYZData().timestamp_ << xyz.XYZData().x_ << xyz.XYZData().y_ << xyz.XYZData().z_; 00134 argument.endStructure(); 00135 return argument; 00136 } 00137 00145 inline const QDBusArgument &operator>>(const QDBusArgument &argument, XYZ &xyz) 00146 { 00147 argument.beginStructure(); 00148 argument >> xyz.data_.timestamp_ >> xyz.data_.x_ >> xyz.data_.y_ >> xyz.data_.z_; 00149 argument.endStructure(); 00150 return argument; 00151 } 00152 00153 #endif // XYZ_H