13 #if !defined(Q_MOC_RUN)
18 #include <matrix/vlVector.h>
20 #include <QtCore/QAbstractItemModel>
21 #include <QtWidgets/QAction>
23 #include <boost/ptr_container/ptr_vector.hpp>
25 #if !defined(Q_MOC_RUN)
26 #include <tbb/mutex.h>
35 class DtDynamicTerrainPageInterface;
41 ,
public std::enable_shared_from_this<DtDynamicTerrainPageLogic>
46 friend class QueryCallback;
55 static std::shared_ptr<DtDynamicTerrainPageLogic> create(
62 virtual void setupContextMenu(
QMenu* menu,
const QModelIndex&);
65 virtual void clickedOnMap(
const DtVector& point);
69 virtual QVariant headerData(
int column, Qt::Orientation,
int role)
const;
70 virtual QModelIndex index(
int row,
int column,
const QModelIndex& parent)
const;
71 virtual QModelIndex parent(
const QModelIndex&)
const;
72 virtual int rowCount(
const QModelIndex& index)
const;
73 virtual int columnCount(
const QModelIndex& index)
const;
74 virtual QVariant data(
const QModelIndex& index,
int role)
const;
79 virtual void runQuery();
82 virtual void shutdown();
85 void indexSelected(QModelIndex);
88 void rowChanged(
int i);
89 void rowRemoved(
int i);
92 virtual void addRow(
int i);
93 virtual void changeRow(
int i);
94 virtual void removeRow(
int i);
103 virtual void updateFeature(
106 virtual void pagedOut(
107 std::list< std::shared_ptr<FeatureRecord> >::iterator i);
109 void ensureValidVector();
127 :
public std::enable_shared_from_this<DtDynamicTerrainPageLogic::FeatureRecord>
132 explicit FeatureRecord(
135 const std::shared_ptr<const DtDynamicTerrainFeature>& feature);
137 virtual ~FeatureRecord();
139 std::shared_ptr<const DtDynamicTerrainFeature>
feature()
const {
return myFeature.lock(); }
141 int index()
const {
return myIndex; }
145 QVariant getData(
unsigned col)
const;
149 void setupContextMenu(
QMenu* menu);
153 void addDisconnector(
const boost::signalslib::connection& conn);
156 void clearRequests();
161 void setData(
unsigned col,
const QVariant& value);
165 const std::weak_ptr<const DtDynamicTerrainFeature>
myFeature;
170 mutable Mutex myMutex;
175 typedef boost::ptr_vector<DtDynamicTerrainChange>
Changes;
192 const std::shared_ptr<FeatureRecord>& featureRecord,
196 void insertChangeRequest();
197 void clearRequests();
202 const std::unique_ptr<DtDynamicTerrainChange>
myChange;
std::list< boost::signalslib::connection > myDisconnectors
Definition: DtDynamicTerrainPageLogic.h:167
int index() const
Definition: DtDynamicTerrainPageLogic.h:141
DtDe & myDe
Definition: DtDynamicTerrainPageLogic.h:116
std::atomic< bool > myShutdownFlag
Definition: DtDynamicTerrainPageLogic.h:111
Queries. Queries work very much like change requests except instead of changing the state of the feat...
Definition: DtDynamicTerrainWorld.h:172
void setIndex(int index)
Definition: DtDynamicTerrainPageLogic.h:143
boost::ptr_vector< DtDynamicTerrainChange > Changes
Definition: DtDynamicTerrainPageLogic.h:175
RequestHandles myRequestHandles
Definition: DtDynamicTerrainPageLogic.h:181
#define DT_DLL_VRVOSGQT
Definition: vrvOsgQt.h:22
Interface to a widget that displays the scene graph as a tree.
Definition: DtDynamicTerrainPageInterface.h:25
DtDynamicTerrainWorld::QueryHandle myQueryHandle
Definition: DtDynamicTerrainPageLogic.h:118
Logic for scene graph tree display widget.
Definition: DtDynamicTerrainPageLogic.h:39
const std::unique_ptr< DtDynamicTerrainChange > myChange
Definition: DtDynamicTerrainPageLogic.h:202
Contains DLL export macros.
bool myVectorValid
Definition: DtDynamicTerrainPageLogic.h:121
std::vector< DtDynamicTerrainWorld::RequestHandle > RequestHandles
Definition: DtDynamicTerrainPageLogic.h:180
int myIndex
Definition: DtDynamicTerrainPageLogic.h:178
Changes myChanges
Definition: DtDynamicTerrainPageLogic.h:176
std::list< std::shared_ptr< FeatureRecord > > FeatureRecordList
Definition: DtDynamicTerrainPageLogic.h:51
Interface which abstracts the concept of a individually identifiable "thing" in the terrain...
Definition: DtDynamicTerrainFeature.h:83
size_t myFeatureCount
Definition: DtDynamicTerrainPageLogic.h:120
tbb::spin_mutex Mutex
Definition: DtDynamicTerrainPageLogic.h:169
std::weak_ptr< FeatureRecord > myFeatureRecord
Definition: DtDynamicTerrainPageLogic.h:200
Contains makVrv::DtDynamicTerrainFeature class.
Mutex myMutex
Definition: DtDynamicTerrainPageLogic.h:114
std::vector< QVariant > DataContainer
Definition: DtDynamicTerrainPageLogic.h:172
FeatureRecordList myFeatureRecordList
Definition: DtDynamicTerrainPageLogic.h:123
Contains makVrv::DtDynamicTerrainWorld class.
Command which can be given to the dynamic terrain system to perform some change. This class is a simp...
Definition: DtDynamicTerrainChange.h:42
std::vector< std::shared_ptr< FeatureRecord > > FeatureRecordVector
Definition: DtDynamicTerrainPageLogic.h:49
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
DataContainer myData
Definition: DtDynamicTerrainPageLogic.h:173
const std::weak_ptr< const DtDynamicTerrainFeature > myFeature
Definition: DtDynamicTerrainPageLogic.h:165
tbb::mutex Mutex
Definition: DtDynamicTerrainPageLogic.h:113
FeatureRecordVector myFeatureRecordVector
Definition: DtDynamicTerrainPageLogic.h:122
std::shared_ptr< const DtDynamicTerrainFeature > feature() const
Definition: DtDynamicTerrainPageLogic.h:139