Walls And Holes  1
m2mtilemesher.h
Go to the documentation of this file.
1 #ifndef M2MTILEMESHER_H
2 #define M2MTILEMESHER_H
3 
4 #include <QVector2D>
5 #include <QSharedPointer>
6 
7 #include "tilemap.h"
8 #include "simpletexturedobject.h"
9 
10 namespace M2M {
11 
12 class AbstractTileMesher;
13 
15 {
16 public:
17  TileNeighborhoodInfo(const TileMap *tileMap, QPoint centerTilePos);
18 
19  const Tile *operator ()(int x, int y) const;
20  const Tile *operator ()(QPoint pt) const;
21 
22  const Tile *centerTile() const;
23 
24  QSharedPointer<AbstractTileMesher> makeMesher() const;
25 
26 private:
27  const TileMap *mTileMap;
28 
29  QPoint mCenterTilePos;
30 };
31 
32 
37 {
38 public:
39 
40  virtual ~AbstractTileMesher() {}
41 
46  static QSharedPointer<AbstractTileMesher> getMesherForTile(const TileMap *tileMap, QPoint tilePoint);
47 
48 
53  virtual QVector<QSharedPointer<SimpleTexturedObject>> makeMesh(QVector2D offset) = 0;
54 
55 
56 protected:
58 
63 };
64 
65 }
66 
67 #endif // M2MTILEMESHER_H
QSharedPointer< AbstractTileMesher > makeMesher() const
Definition: m2mtilemesher.cpp:45
Definition: m2mtilemesher.h:14
AbstractTileMesher(TileNeighborhoodInfo nbhd)
Definition: m2mtilemesher.cpp:58
virtual ~AbstractTileMesher()
Definition: m2mtilemesher.h:40
static QSharedPointer< AbstractTileMesher > getMesherForTile(const TileMap *tileMap, QPoint tilePoint)
Returns a TileMesher instance that will create the mesh for the given tile, or, if the tile has not c...
Definition: m2mtilemesher.cpp:53
Definition: abstractpolygontilemesher.h:8
Class to represent each tile on the tileMap.
Definition: tile.h:13
TileNeighborhoodInfo(const TileMap *tileMap, QPoint centerTilePos)
Definition: m2mtilemesher.cpp:10
virtual QVector< QSharedPointer< SimpleTexturedObject > > makeMesh(QVector2D offset)=0
makeMesh Creates the mesh for this tile.
const Tile * centerTile() const
Definition: m2mtilemesher.cpp:37
const Tile * operator()(int x, int y) const
Definition: m2mtilemesher.cpp:17
TileNeighborhoodInfo mTileNeighborhood
Information for each tile in the 3x3 neighborhood of the tile to which this mesher is associated...
Definition: m2mtilemesher.h:62
A collection of methods for generating tile mesh data.
Definition: m2mtilemesher.h:36
Definition: tilemap.h:14