OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
terraintexturemode.hpp
Go to the documentation of this file.
1 #ifndef CSV_RENDER_TERRAINTEXTUREMODE_H
2 #define CSV_RENDER_TERRAINTEXTUREMODE_H
3 
4 #include "editmode.hpp"
5 
6 #include <string>
7 
8 #include <QWidget>
9 #include <QEvent>
10 
11 #include "../../model/world/data.hpp"
12 #include "../../model/world/land.hpp"
13 
14 #include "../../model/doc/document.hpp"
15 #include "../../model/world/commands.hpp"
16 #include "../../model/world/idtable.hpp"
17 #include "../../model/world/landtexture.hpp"
18 
19 namespace CSVWidget
20 {
21  class SceneToolTextureBrush;
22 }
23 
24 namespace CSVRender
25 {
26 
28  {
29  Q_OBJECT
30 
31  public:
32 
34  TerrainTextureMode(WorldspaceWidget*, QWidget* parent = nullptr);
35 
37  void primaryEditPressed (const WorldspaceHitResult& hit);
38 
41 
43 
46 
48  virtual bool primaryEditStartDrag (const QPoint& pos);
49 
50  virtual bool secondaryEditStartDrag (const QPoint& pos);
51  virtual bool primarySelectStartDrag (const QPoint& pos);
52  virtual bool secondarySelectStartDrag (const QPoint& pos);
53 
55  virtual void drag (const QPoint& pos, int diffX, int diffY, double speedFactor);
56 
58  virtual void dragCompleted(const QPoint& pos);
59 
60  virtual void dragAborted();
61  virtual void dragWheel (int diff, double speedFactor);
62  virtual void dragMoveEvent (QDragMoveEvent *event);
63 
66 
69  CSMWorld::IdTable& landTable, std::string cellId);
70 
72  void createTexture(std::string textureFileName);
73 
75  bool allowLandTextureEditing(std::string textureFileName);
76 
77  private:
78  std::string mCellId;
79  std::string mBrushTexture;
83 
87 
88  signals:
89  void passBrushTexture(std::string brushTexture);
90 
91  public slots:
92  void handleDropEvent(QDropEvent *event);
93  void setBrushSize(int brushSize);
94  void setBrushShape(int brushShape);
95  void setBrushTexture(std::string brushShape);
96  };
97 }
98 
99 
100 #endif
Definition: worldspacewidget.hpp:46
const int landSize
Definition: terraintexturemode.hpp:85
virtual bool primarySelectStartDrag(const QPoint &pos)
Definition: terraintexturemode.cpp:149
Definition: idtable.hpp:15
void activate(CSVWidget::SceneToolbar *)
Default-Implementation: do nothing.
Definition: terraintexturemode.cpp:48
std::string mBrushTexture
Definition: terraintexturemode.hpp:79
static const struct @8 signals[]
int mBrushSize
Definition: terraintexturemode.hpp:80
std::string mCellId
Definition: terraintexturemode.hpp:78
virtual void dragMoveEvent(QDragMoveEvent *event)
Default-implementation: ignored.
Definition: terraintexturemode.cpp:526
void passBrushTexture(std::string brushTexture)
virtual void dragCompleted(const QPoint &pos)
End texture editing command macro.
Definition: terraintexturemode.cpp:173
void setBrushTexture(std::string brushShape)
Definition: terraintexturemode.cpp:539
virtual void dragAborted()
Definition: terraintexturemode.cpp:186
void setBrushSize(int brushSize)
Definition: terraintexturemode.cpp:529
Definition: scenetooltexturebrush.hpp:93
Definition: worldspacewidget.hpp:38
static const int LAND_TEXTURE_SIZE
Definition: loadland.hpp:66
QVector< uint16_t > DataType
Definition: columnimp.hpp:2510
Definition: terraintexturemode.hpp:27
bool allowLandTextureEditing(std::string textureFileName)
Create new cell and land if needed.
Definition: terraintexturemode.cpp:451
virtual void dragWheel(int diff, double speedFactor)
Default-implementation: ignored.
Definition: terraintexturemode.cpp:189
void primarySelectPressed(const WorldspaceHitResult &)
Open brush settings window.
Definition: terraintexturemode.cpp:106
static const int LAND_SIZE
Definition: loadland.hpp:55
CSVWidget::SceneToolTextureBrush * mTextureBrushScenetool
Definition: terraintexturemode.hpp:82
void secondarySelectPressed(const WorldspaceHitResult &)
Default-implementation: Ignored.
Definition: terraintexturemode.cpp:110
Definition: document.hpp:57
const int cellSize
Definition: terraintexturemode.hpp:84
int mBrushShape
Definition: terraintexturemode.hpp:81
virtual void drag(const QPoint &pos, int diffX, int diffY, double speedFactor)
Handle texture edit behavior during dragging.
Definition: terraintexturemode.cpp:159
void pushEditToCommand(CSMWorld::LandTexturesColumn::DataType &newLandGrid, CSMDoc::Document &document, CSMWorld::IdTable &landTable, std::string cellId)
Push texture edits to command macro.
Definition: terraintexturemode.cpp:392
static const int REAL_SIZE
Definition: loadland.hpp:58
virtual bool secondaryEditStartDrag(const QPoint &pos)
Definition: terraintexturemode.cpp:144
const int landTextureSize
Definition: terraintexturemode.hpp:86
Definition: scenetoolbar.hpp:12
virtual bool primaryEditStartDrag(const QPoint &pos)
Start texture editing command macro.
Definition: terraintexturemode.cpp:114
void deactivate(CSVWidget::SceneToolbar *)
Default-Implementation: do nothing.
Definition: terraintexturemode.cpp:69
void handleDropEvent(QDropEvent *event)
Definition: terraintexturemode.cpp:191
TerrainTextureMode(WorldspaceWidget *, QWidget *parent=nullptr)
Editmode for terrain texture grid.
Definition: terraintexturemode.cpp:39
void createTexture(std::string textureFileName)
Create new land texture record from texture asset.
Definition: terraintexturemode.cpp:408
virtual bool secondarySelectStartDrag(const QPoint &pos)
Definition: terraintexturemode.cpp:154
void editTerrainTextureGrid(const WorldspaceHitResult &hit)
Handle brush mechanics, maths regarding worldspace hit etc.
Definition: terraintexturemode.cpp:220
Definition: editmode.hpp:19
void primaryEditPressed(const WorldspaceHitResult &hit)
Create single command for one-click texture editing.
Definition: terraintexturemode.cpp:80
void setBrushShape(int brushShape)
Definition: terraintexturemode.cpp:534