You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
1.9 KiB
C

#ifndef SCENELAYERSVIEW_H
#define SCENELAYERSVIEW_H
#include <QTreeWidget>
#include <QTreeWidgetItem>
#include "sceneControl.h"
#include "Scene/UGLayer3DGroup.h"
#include "Layer3DDataset/UGLayer3DDatasetImage.h"
#include "Layer3DDatasetModel/UGLayer3DDatasetModelPro.h"
#include "Layer3DDataset/UGLayer3DDatasetVector.h"
#include "Layer3DDataset/UGLayer3DDatasetVectorLR.h"
#include "Layer3DDataset/UGLayer3DDatasetVectorPoint.h"
#include "Layer3DDataset/UGLayer3DDatasetVolume.h"
#include "Icons.h"
class SceneLayersView : public QTreeWidget
{
Q_OBJECT
public:
enum ItemType {
TypeTerrainLayers,
TypeLayerTerrain,
TypeDatasetLayers,
TypeLayerGroup,
TypeLayer,
TypeLayerPoint,
TypeLayerLine,
TypeLayerRegion,
TypeLayerText,
TypeLayerCAD,
TypeLayerNetwork,
TypeLayerGrid,
TypeLayerDEM,
TypeLayerPoint3D,
TypeLayerLine3D,
TypeLayerRegion3D,
TypeLayerModel,
TypeLayerOSGB,
TypeLayerImage,
TypeLayerOverlay,
TypeLayerTin,
};
int ItemDataType; // QTreeWidgetItem存放数据类型自定义类型
public:
explicit SceneLayersView(QWidget *parent = nullptr);
private:
QTreeWidgetItem* pTreeNormalLayers; // 普通层组,关联数据集或三维缓存数据,可保存到工作空间
QTreeWidgetItem* pTreeTerrianLayers; // 地形图层组,可保存到工作空间
const int typeIconCol = 0;
private:
void addDefaultTree();
void clearItems(QTreeWidgetItem* pItem);
void updateLayer(UGLayer3D* pLayer, QTreeWidgetItem* parent, bool isTop = false);
ItemType updateItemByDataset(UGDataset* pDataset, QTreeWidgetItem* pItem);
public:
void updateLayers(SceneControl* sceneControl);
void addLayer(UGLayer3D* pLayer, bool isTop = true);
void clear();
signals:
public slots:
};
#endif // SCENELAYERSVIEW_H