SystemContainer.h 1.75 KB
Newer Older
1 2 3 4 5 6
#ifndef SYSTEMCONTAINER_H
#define SYSTEMCONTAINER_H

#include <osg/Geode>
#include <QMap>
#include <QVarLengthArray>
7
#include <QVector3D>
8 9 10 11 12 13 14 15 16 17
#include <QVector4D>

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

class SystemContainer
{
public:
    SystemContainer();

18 19
    QVector3D& gpsLocalOrigin(void);

20 21 22 23 24 25 26 27 28 29
    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);
30
    osg::ref_ptr<osg::Group>& orientationNode(void);
31 32
    osg::ref_ptr<osg::Geode>& pointCloudNode(void);
    osg::ref_ptr<ImageWindowGeode>& rgbImageNode(void);
33
    osg::ref_ptr<osg::Group>& setpointGroupNode(void);
34 35 36 37 38
    osg::ref_ptr<osg::Node>& targetNode(void);
    osg::ref_ptr<osg::Geode>& trailNode(void);
    osg::ref_ptr<WaypointGroupNode>& waypointGroupNode(void);

private:
39
    QVector3D mGPSLocalOrigin;
40 41 42 43 44 45 46 47 48 49 50 51
    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;
52
    osg::ref_ptr<osg::Group> mOrientationNode;
53 54
    osg::ref_ptr<osg::Geode> mPointCloudNode;
    osg::ref_ptr<ImageWindowGeode> mRGBImageNode;
55
    osg::ref_ptr<osg::Group> mSetpointGroupNode;
56 57 58 59 60 61
    osg::ref_ptr<osg::Node> mTargetNode;
    osg::ref_ptr<osg::Geode> mTrailNode;
    osg::ref_ptr<WaypointGroupNode> mWaypointGroupNode;
};

#endif // SYSTEMCONTAINER_H