SystemContainer.h 2.3 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
#ifndef SYSTEMCONTAINER_H
#define SYSTEMCONTAINER_H

#include <osg/Geode>
#include <QMap>
#include <QVarLengthArray>
#include <QVector4D>

#include "ImageWindowGeode.h"
#include "WaypointGroupNode.h"

#if defined(QGC_PROTOBUF_ENABLED) && defined(QGC_USE_PIXHAWK_MESSAGES)
13
#include "GLOverlayGeode.h"
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
#include "ObstacleGroupNode.h"
#endif

class SystemContainer
{
public:
    SystemContainer();

    QVector4D& target(void);

    QVector< osg::ref_ptr<osg::Node> >& models(void);

    QMap<int, QVector<osg::Vec3d> >& trailMap(void);
    QMap<int, int>& trailIndexMap(void);

    osg::ref_ptr<ImageWindowGeode>& depthImageNode(void);
    osg::ref_ptr<osg::Geode>& localGridNode(void);
    osg::ref_ptr<osg::Node>& modelNode(void);
32
    osg::ref_ptr<osg::Group>& orientationNode(void);
33 34
    osg::ref_ptr<osg::Geode>& pointCloudNode(void);
    osg::ref_ptr<ImageWindowGeode>& rgbImageNode(void);
35
    osg::ref_ptr<osg::Group>& setpointGroupNode(void);
36 37 38 39 40
    osg::ref_ptr<osg::Node>& targetNode(void);
    osg::ref_ptr<osg::Geode>& trailNode(void);
    osg::ref_ptr<WaypointGroupNode>& waypointGroupNode(void);
#if defined(QGC_PROTOBUF_ENABLED) && defined(QGC_USE_PIXHAWK_MESSAGES)
    osg::ref_ptr<ObstacleGroupNode>& obstacleGroupNode(void);
41
    QMap<QString,osg::ref_ptr<GLOverlayGeode> >& overlayNodeMap(void);
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
    osg::ref_ptr<osg::Geode>& plannedPathNode(void);
#endif

private:
    QVector4D mTarget;

    QVector< osg::ref_ptr<osg::Node> > mModels;

    // map component id to component-specific trail
    QMap<int, QVector<osg::Vec3d> > mTrailMap;
    QMap<int, int> mTrailIndexMap;

    // osg structures
    osg::ref_ptr<ImageWindowGeode> mDepthImageNode;
    osg::ref_ptr<osg::Geode> mLocalGridNode;
    osg::ref_ptr<osg::Node> mModelNode;
58
    osg::ref_ptr<osg::Group> mOrientationNode;
59 60
    osg::ref_ptr<osg::Geode> mPointCloudNode;
    osg::ref_ptr<ImageWindowGeode> mRGBImageNode;
61
    osg::ref_ptr<osg::Group> mSetpointGroupNode;
62 63 64 65 66
    osg::ref_ptr<osg::Node> mTargetNode;
    osg::ref_ptr<osg::Geode> mTrailNode;
    osg::ref_ptr<WaypointGroupNode> mWaypointGroupNode;
#if defined(QGC_PROTOBUF_ENABLED) && defined(QGC_USE_PIXHAWK_MESSAGES)
    osg::ref_ptr<ObstacleGroupNode> mObstacleGroupNode;
67
    QMap<QString,osg::ref_ptr<GLOverlayGeode> > mOverlayNodeMap;
68 69 70 71 72
    osg::ref_ptr<osg::Geode> mPlannedPathNode;
#endif
};

#endif // SYSTEMCONTAINER_H