#pragma once #include "ROSMessageType.h" #include "ROSMessageGroups.h" #include "QmlObjectListModel.h" #include #include typedef ROSMessageType ROSMsg; template class ContainerType = QVector, typename GroupType = EmptyGroup> class WimaPolygonArray : public ROSMsg { public: typedef GroupType Group; WimaPolygonArray() {} WimaPolygonArray(const WimaPolygonArray &other) : ROSMsg() , _polygons(other._polygons), _dirty(true) {} virtual ROSMessageType * Clone() const override{ return new WimaPolygonArray(*this); } class QmlObjectListModel *QmlObjectListModel(){ if (_dirty) _updateObjects(); _dirty = false; return &_objs; } const ContainerType &polygons() const { return _polygons; } ContainerType &polygons(){ _dirty = true; return _polygons; } private: void _updateObjects(void){ _objs.clear(); for (long i=0; i<_polygons.size(); ++i){ _objs.append(&_polygons[i]); } } ContainerType _polygons; class QmlObjectListModel _objs; bool _dirty; };