13 #if !defined(Q_MOC_RUN)
18 #include <matrix/vlVector.h>
20 #include <QtCore/QAbstractItemModel>
21 #include <QtWidgets/QAction>
23 #include <boost/shared_ptr.hpp>
24 #include <boost/enable_shared_from_this.hpp>
25 #include <boost/ptr_container/ptr_vector.hpp>
27 #if !defined(Q_MOC_RUN)
28 #include <tbb/mutex.h>
29 #include <tbb/atomic.h>
37 class DtDynamicTerrainPageInterface;
43 ,
public boost::enable_shared_from_this<DtDynamicTerrainPageLogic>
48 friend class QueryCallback;
57 static boost::shared_ptr<DtDynamicTerrainPageLogic> create(
64 virtual void setupContextMenu(
QMenu* menu,
const QModelIndex&);
67 virtual void clickedOnMap(
const DtVector& point);
71 virtual QVariant headerData(
int column, Qt::Orientation,
int role)
const;
72 virtual QModelIndex index(
int row,
int column,
const QModelIndex& parent)
const;
73 virtual QModelIndex parent(
const QModelIndex&)
const;
74 virtual int rowCount(
const QModelIndex& index)
const;
75 virtual int columnCount(
const QModelIndex& index)
const;
76 virtual QVariant data(
const QModelIndex& index,
int role)
const;
81 virtual void runQuery();
84 virtual void shutdown();
87 void indexSelected(QModelIndex);
90 void rowChanged(
int i);
91 void rowRemoved(
int i);
94 virtual void addRow(
int i);
95 virtual void changeRow(
int i);
96 virtual void removeRow(
int i);
105 virtual void updateFeature(
108 virtual void pagedOut(
109 std::list< boost::shared_ptr<FeatureRecord> >::iterator i);
111 void ensureValidVector();
129 :
public boost::enable_shared_from_this<DtDynamicTerrainPageLogic::FeatureRecord>
134 explicit FeatureRecord(
137 const boost::shared_ptr<const DtDynamicTerrainFeature>& feature);
139 virtual ~FeatureRecord();
141 boost::shared_ptr<const DtDynamicTerrainFeature>
feature()
const {
return myFeature.lock(); }
143 int index()
const {
return myIndex; }
147 QVariant getData(
unsigned col)
const;
151 void setupContextMenu(
QMenu* menu);
155 void addDisconnector(
const boost::signals2::connection& conn);
158 void clearRequests();
163 void setData(
unsigned col,
const QVariant& value);
167 const boost::weak_ptr<const DtDynamicTerrainFeature>
myFeature;
172 mutable Mutex myMutex;
177 typedef boost::ptr_vector<DtDynamicTerrainChange>
Changes;
194 const boost::shared_ptr<FeatureRecord>& featureRecord,
198 void insertChangeRequest();
199 void clearRequests();
204 boost::scoped_ptr<DtDynamicTerrainChange>
myChange;
int index() const
Definition: DtDynamicTerrainPageLogic.h:143
DtDe & myDe
Definition: DtDynamicTerrainPageLogic.h:118
boost::weak_ptr< FeatureRecord > myFeatureRecord
Definition: DtDynamicTerrainPageLogic.h:202
std::list< boost::signals2::connection > myDisconnectors
Definition: DtDynamicTerrainPageLogic.h:169
Queries.
Definition: DtDynamicTerrainWorld.h:174
void setIndex(int index)
Definition: DtDynamicTerrainPageLogic.h:145
boost::ptr_vector< DtDynamicTerrainChange > Changes
Definition: DtDynamicTerrainPageLogic.h:177
RequestHandles myRequestHandles
Definition: DtDynamicTerrainPageLogic.h:183
#define DT_DLL_VRVOSGQT
Definition: vrvOsgQt.h:22
Interface to a widget that displays the scene graph as a tree.
Definition: DtDynamicTerrainPageInterface.h:28
DtDynamicTerrainWorld::QueryHandle myQueryHandle
Definition: DtDynamicTerrainPageLogic.h:120
Logic for scene graph tree display widget.
Definition: DtDynamicTerrainPageLogic.h:41
Contains DLL export macros.
bool myVectorValid
Definition: DtDynamicTerrainPageLogic.h:123
const boost::weak_ptr< const DtDynamicTerrainFeature > myFeature
Definition: DtDynamicTerrainPageLogic.h:167
tbb::atomic< bool > myShutdownFlag
Definition: DtDynamicTerrainPageLogic.h:113
boost::scoped_ptr< DtDynamicTerrainChange > myChange
Definition: DtDynamicTerrainPageLogic.h:204
std::vector< boost::shared_ptr< FeatureRecord > > FeatureRecordVector
Definition: DtDynamicTerrainPageLogic.h:51
std::vector< DtDynamicTerrainWorld::RequestHandle > RequestHandles
Definition: DtDynamicTerrainPageLogic.h:182
int myIndex
Definition: DtDynamicTerrainPageLogic.h:180
Changes myChanges
Definition: DtDynamicTerrainPageLogic.h:178
Interface which abstracts the concept of a individually identifiable "thing" in the terrain...
Definition: DtDynamicTerrainFeature.h:83
size_t myFeatureCount
Definition: DtDynamicTerrainPageLogic.h:122
tbb::spin_mutex Mutex
Definition: DtDynamicTerrainPageLogic.h:171
Contains makVrv::DtDynamicTerrainFeature class.
Mutex myMutex
Definition: DtDynamicTerrainPageLogic.h:116
std::vector< QVariant > DataContainer
Definition: DtDynamicTerrainPageLogic.h:174
std::list< boost::shared_ptr< FeatureRecord > > FeatureRecordList
Definition: DtDynamicTerrainPageLogic.h:53
FeatureRecordList myFeatureRecordList
Definition: DtDynamicTerrainPageLogic.h:125
Contains makVrv::DtDynamicTerrainWorld class.
Command which can be given to the dynamic terrain system to perform some change.
Definition: DtDynamicTerrainChange.h:42
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DataContainer myData
Definition: DtDynamicTerrainPageLogic.h:175
tbb::mutex Mutex
Definition: DtDynamicTerrainPageLogic.h:115
FeatureRecordVector myFeatureRecordVector
Definition: DtDynamicTerrainPageLogic.h:124
boost::shared_ptr< const DtDynamicTerrainFeature > feature() const
Definition: DtDynamicTerrainPageLogic.h:141