OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
pagedworldspacewidget.hpp
Go to the documentation of this file.
1 #ifndef OPENCS_VIEW_PAGEDWORLDSPACEWIDGET_H
2 #define OPENCS_VIEW_PAGEDWORLDSPACEWIDGET_H
3 
4 #include <map>
5 
6 #include "../../model/world/cellselection.hpp"
7 
8 #include "worldspacewidget.hpp"
9 #include "cell.hpp"
10 
11 namespace CSVWidget
12 {
13  class SceneToolToggle;
14  class SceneToolToggle2;
15 }
16 
17 namespace CSVRender
18 {
19  class TextOverlay;
20  class OverlayMask;
21 
23  {
24  Q_OBJECT
25 
28  std::map<CSMWorld::CellCoordinates, Cell *> mCells;
29  std::string mWorldspace;
32 
33  private:
34 
35  std::pair<int, int> getCoordinatesFromId(const std::string& record) const;
36 
40  bool adjustCells();
41 
42  virtual void referenceableDataChanged (const QModelIndex& topLeft,
43  const QModelIndex& bottomRight);
44 
45  virtual void referenceableAboutToBeRemoved (const QModelIndex& parent, int start, int end);
46 
47  virtual void referenceableAdded (const QModelIndex& index, int start, int end);
48 
49  virtual void referenceDataChanged (const QModelIndex& topLeft, const QModelIndex& bottomRight);
50 
51  virtual void referenceAboutToBeRemoved (const QModelIndex& parent, int start, int end);
52 
53  virtual void referenceAdded (const QModelIndex& index, int start, int end);
54 
55  virtual void pathgridDataChanged (const QModelIndex& topLeft, const QModelIndex& bottomRight);
56 
57  virtual void pathgridAboutToBeRemoved (const QModelIndex& parent, int start, int end);
58 
59  virtual void pathgridAdded (const QModelIndex& parent, int start, int end);
60 
61  virtual std::string getStartupInstruction();
62 
64  void addCellToScene (const CSMWorld::CellCoordinates& coordinates);
65 
69  void removeCellFromScene (const CSMWorld::CellCoordinates& coordinates);
70 
72  void addCellSelection (int x, int y);
73 
75  void moveCellSelection (int x, int y);
76 
77  void addCellToSceneFromCamera (int offsetX, int offsetY);
78 
79  public:
80 
81  PagedWorldspaceWidget (QWidget *parent, CSMDoc::Document& document);
85 
86  virtual ~PagedWorldspaceWidget();
87 
89  void useViewHint (const std::string& hint);
90 
91  void setCellSelection(const CSMWorld::CellSelection& selection);
92 
94 
96  virtual bool handleDrop (const std::vector<CSMWorld::UniversalId>& data,
97  DropType type);
98 
99  virtual dropRequirments getDropRequirements(DropType type) const;
100 
104  CSVWidget::SceneToolbar *parent);
105 
106  virtual unsigned int getVisibilityMask() const;
107 
109  virtual void clearSelection (int elementMask);
110 
112  virtual void invertSelection (int elementMask);
113 
115  virtual void selectAll (int elementMask);
116 
117  // Select everything that references the same ID as at least one of the elements
118  // already selected
119  //
121  virtual void selectAllWithSameParentId (int elementMask);
122 
123  virtual std::string getCellId (const osg::Vec3f& point) const;
124 
125  virtual Cell* getCell(const osg::Vec3d& point) const;
126 
127  virtual std::vector<osg::ref_ptr<TagBase> > getSelection (unsigned int elementMask)
128  const;
129 
130  virtual std::vector<osg::ref_ptr<TagBase> > getEdited (unsigned int elementMask)
131  const;
132 
133  virtual void setSubMode (int subMode, unsigned int elementMask);
134 
136  virtual void reset (unsigned int elementMask);
137 
138  protected:
139 
141 
143 
144  virtual void handleInteractionPress (const WorldspaceHitResult& hit, InteractionType type);
145 
146  signals:
147 
148  void cellSelectionChanged (const CSMWorld::CellSelection& selection);
149 
150  private slots:
151 
152  virtual void cellDataChanged (const QModelIndex& topLeft, const QModelIndex& bottomRight);
153 
154  virtual void cellRemoved (const QModelIndex& parent, int start, int end);
155 
156  virtual void cellAdded (const QModelIndex& index, int start, int end);
157 
158  virtual void landDataChanged (const QModelIndex& topLeft, const QModelIndex& botomRight);
159  virtual void landAboutToBeRemoved (const QModelIndex& parent, int start, int end);
160  virtual void landAdded (const QModelIndex& parent, int start, int end);
161 
162  virtual void landTextureDataChanged (const QModelIndex& topLeft, const QModelIndex& botomRight);
163  virtual void landTextureAboutToBeRemoved (const QModelIndex& parent, int start, int end);
164  virtual void landTextureAdded (const QModelIndex& parent, int start, int end);
165 
166  void assetTablesChanged ();
167 
168  void loadCameraCell();
169 
170  void loadEastCell();
171 
172  void loadNorthCell();
173 
174  void loadWestCell();
175 
176  void loadSouthCell();
177 
178  };
179 }
180 
181 #endif
std::string mWorldspace
Definition: pagedworldspacewidget.hpp:29
virtual void selectAllWithSameParentId(int elementMask)
Definition: pagedworldspacewidget.cpp:730
Definition: worldspacewidget.hpp:46
void assetTablesChanged()
Definition: pagedworldspacewidget.cpp:850
virtual void landDataChanged(const QModelIndex &topLeft, const QModelIndex &botomRight)
Definition: pagedworldspacewidget.cpp:357
InteractionType
Definition: worldspacewidget.hpp:88
void addCellSelection(int x, int y)
Definition: pagedworldspacewidget.cpp:471
virtual std::vector< osg::ref_ptr< TagBase > > getSelection(unsigned int elementMask) const
Definition: pagedworldspacewidget.cpp:761
Selection of cells in a paged worldspace.
Definition: cellselection.hpp:15
Mode selector tool.
Definition: scenetoolmode.hpp:18
virtual void landAdded(const QModelIndex &parent, int start, int end)
Definition: pagedworldspacewidget.cpp:387
void loadEastCell()
Definition: pagedworldspacewidget.cpp:864
static const struct @8 signals[]
virtual void addVisibilitySelectorButtons(CSVWidget::SceneToolToggle2 *tool)
Definition: pagedworldspacewidget.cpp:124
virtual dropRequirments getDropRequirements(DropType type) const
Definition: pagedworldspacewidget.cpp:678
CSVWidget::SceneToolToggle2 * mControlElements
Definition: pagedworldspacewidget.hpp:30
virtual void cellDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)
Definition: pagedworldspacewidget.cpp:827
virtual void landTextureAboutToBeRemoved(const QModelIndex &parent, int start, int end)
Definition: pagedworldspacewidget.cpp:409
void loadWestCell()
Definition: pagedworldspacewidget.cpp:874
virtual std::string getStartupInstruction()
Definition: pagedworldspacewidget.cpp:424
virtual void landTextureDataChanged(const QModelIndex &topLeft, const QModelIndex &botomRight)
Definition: pagedworldspacewidget.cpp:402
virtual void invertSelection(int elementMask)
Definition: pagedworldspacewidget.cpp:712
void moveCellSelection(int x, int y)
Definition: pagedworldspacewidget.cpp:487
virtual unsigned int getVisibilityMask() const
Definition: pagedworldspacewidget.cpp:698
virtual bool handleDrop(const std::vector< CSMWorld::UniversalId > &data, DropType type)
Definition: pagedworldspacewidget.cpp:649
PagedWorldspaceWidget(QWidget *parent, CSMDoc::Document &document)
Definition: pagedworldspacewidget.cpp:528
void cellSelectionChanged(const CSMWorld::CellSelection &selection)
bool adjustCells()
Definition: pagedworldspacewidget.cpp:28
virtual void referenceAboutToBeRemoved(const QModelIndex &parent, int start, int end)
Definition: pagedworldspacewidget.cpp:264
virtual void addEditModeSelectorButtons(CSVWidget::SceneToolMode *tool)
Definition: pagedworldspacewidget.cpp:132
void loadSouthCell()
Definition: pagedworldspacewidget.cpp:879
Definition: worldspacewidget.hpp:38
virtual void referenceableDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)
Definition: pagedworldspacewidget.cpp:219
void addCellToSceneFromCamera(int offsetX, int offsetY)
Definition: pagedworldspacewidget.cpp:509
virtual void pathgridDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)
Definition: pagedworldspacewidget.cpp:282
void removeCellFromScene(const CSMWorld::CellCoordinates &coordinates)
Definition: pagedworldspacewidget.cpp:459
virtual Cell * getCell(const osg::Vec3d &point) const
Definition: pagedworldspacewidget.cpp:748
virtual void cellRemoved(const QModelIndex &parent, int start, int end)
Definition: pagedworldspacewidget.cpp:835
CSMWorld::CellSelection mSelection
Definition: pagedworldspacewidget.hpp:27
virtual void pathgridAboutToBeRemoved(const QModelIndex &parent, int start, int end)
Definition: pagedworldspacewidget.cpp:314
Definition: pagedworldspacewidget.hpp:22
virtual void pathgridAdded(const QModelIndex &parent, int start, int end)
Definition: pagedworldspacewidget.cpp:336
virtual std::string getCellId(const osg::Vec3f &point) const
Definition: pagedworldspacewidget.cpp:739
const CSMWorld::CellSelection & getCellSelection() const
Definition: pagedworldspacewidget.cpp:635
virtual void landTextureAdded(const QModelIndex &parent, int start, int end)
Definition: pagedworldspacewidget.cpp:416
void addCellToScene(const CSMWorld::CellCoordinates &coordinates)
Definition: pagedworldspacewidget.cpp:440
virtual void setSubMode(int subMode, unsigned int elementMask)
Definition: pagedworldspacewidget.cpp:795
Definition: cellcoordinates.hpp:12
void setCellSelection(const CSMWorld::CellSelection &selection)
Definition: pagedworldspacewidget.cpp:625
virtual void referenceableAdded(const QModelIndex &index, int start, int end)
Definition: pagedworldspacewidget.cpp:237
Definition: document.hpp:57
Multi-Toggle tool.
Definition: scenetooltoggle2.hpp:19
virtual void referenceAdded(const QModelIndex &index, int start, int end)
Definition: pagedworldspacewidget.cpp:273
DropType
Definition: worldspacewidget.hpp:72
void loadNorthCell()
Definition: pagedworldspacewidget.cpp:869
Definition: cell.hpp:44
virtual void landAboutToBeRemoved(const QModelIndex &parent, int start, int end)
Definition: pagedworldspacewidget.cpp:372
virtual void referenceDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)
Definition: pagedworldspacewidget.cpp:255
dropRequirments
Definition: worldspacewidget.hpp:80
virtual void reset(unsigned int elementMask)
Erase all overrides and restore the visual representation to its true state.
Definition: pagedworldspacewidget.cpp:802
std::map< CSMWorld::CellCoordinates, Cell * > mCells
Definition: pagedworldspacewidget.hpp:28
virtual void referenceableAboutToBeRemoved(const QModelIndex &parent, int start, int end)
Definition: pagedworldspacewidget.cpp:228
virtual void cellAdded(const QModelIndex &index, int start, int end)
Definition: pagedworldspacewidget.cpp:842
Definition: scenetoolbar.hpp:12
void loadCameraCell()
Definition: pagedworldspacewidget.cpp:859
virtual void clearSelection(int elementMask)
Definition: pagedworldspacewidget.cpp:703
CSMDoc::Document & mDocument
Definition: pagedworldspacewidget.hpp:26
virtual CSVWidget::SceneToolToggle2 * makeControlVisibilitySelector(CSVWidget::SceneToolbar *parent)
Definition: pagedworldspacewidget.cpp:809
void useViewHint(const std::string &hint)
Decodes the the hint string to set of cell that are rendered.
Definition: pagedworldspacewidget.cpp:589
bool mDisplayCellCoord
Definition: pagedworldspacewidget.hpp:31
virtual ~PagedWorldspaceWidget()
Definition: pagedworldspacewidget.cpp:580
std::pair< int, int > getCoordinatesFromId(const std::string &record) const
Definition: pagedworldspacewidget.cpp:640
virtual void handleInteractionPress(const WorldspaceHitResult &hit, InteractionType type)
Definition: pagedworldspacewidget.cpp:152
virtual std::vector< osg::ref_ptr< TagBase > > getEdited(unsigned int elementMask) const
Definition: pagedworldspacewidget.cpp:778
virtual void selectAll(int elementMask)
Definition: pagedworldspacewidget.cpp:721