Fission FSN
Loading...
Searching...
No Matches
fsCView.h
Go to the documentation of this file.
1/********************************************************************
2*
3* Created: 20/6/2014 9:13
4*
5* Purpose: Tiled implementation of the current map view
6*
7*********************************************************************/
8
9#ifndef fsCTileMapViewhdr
10#define fsCTileMapViewhdr
11
12#include <vector>
13
15
16#include "../fsTileMapForward.h"
17
18#define TILED_EDITOR // http://www.mapeditor.org/
19
20
21namespace fsNTileMap
22{
23 class fsIScroller;
24 class fsITileMap;
25 class fsITileSet;
26
27 class fsCView : public fsCEntity
28 {
29 public:
36
38 std::vector<fsCView::STrigger*>const & triggersGet();
39
40 fsS32 pixelWidtheGet() const;
41 fsS32 pixelHeightGet() const;
42
43 fsPoint screenToMap(fsPoint pPos) const;
44 fsPoint mapToView(fsPoint pPos) const;
45
51 fsPoint mapPixelToLocal(const fsPoint& pMapPixel) const;
52
53 fsBool check(fsPoint const& pPos);
54
55 void scroll(fsS32& pAttemptedX, fsS32& pAttemptedY);
56 void jumpTo(const fsPoint& pPos);
57
63 fsBool tileHide(fsS32 pLayerId, fsS32 pCol, fsS32 pRow);
64
65 static fsCView* const create(fsITileMap* const pMap, fsIScroller* const pScroller, fsS32 pViewWidth, fsS32 pViewHeight, fsF32 pScale = 1.0f);
66 ~fsCView();
67
69
70 protected:
71
72 fsCView(fsITileMap* const pMap, fsIScroller* const pScroller, fsS32 pViewWidth, fsS32 pViewHeight, fsF32 pScale);
73
74 private:
75
76 struct STiledLayer
77 {
78 STiledLayer(fsCEntity* const pRootEnt, std::vector< fsCEntity* >& pTiles, fsS32 pId) :
79 mRootEntity(pRootEnt), mTiles(pTiles), mId(pId), mLayerType(eTILE_MAP) {}
80 STiledLayer(std::vector<fsIObjectRef> pSourceObjects, fsS32 pId);
81
82 enum eLAYER_TYPE
83 {
84 eTILE_MAP,
85 eTRIGGERS
86 } mLayerType;
87
88 fsCEntity* mRootEntity;
89 std::vector< fsCEntity* > mTiles;
90 std::vector< STrigger* > mTriggers;
91 fsS32 mId;
92 };
93
94 void scrollMap(fsS32 pX, fsS32 pY, fsBool pTileWrap);
95
96 void triggerLayerCreate(fsS32 pLayer);
97 fsITileRef tileGet(fsS32 pLayer, fsS32 pCol, fsS32 pRow) const;
98
99 void tileBrushSet(fsCEntity* const pEnt, fsS32 pLayer, fsS32 pCol, fsS32 pRow);
100
101 fsCEntity* const tileEntityCreate(fsS32 pLayer, fsS32 pCol, fsS32 pRow);
102 void tileLayerCreate(const fsS32 pLayer);
103 void imageLayerCreate(const fsS32 pLayer);
104
105 fsF32 mScale;
106
107 fsPoint mPixelStride;
108 fsPoint mOrigin;
109 fsS32 mViewTileWidth;
110 fsS32 mViewTileHeight;
111 fsPoint mScrollOffset;
112
113 std::vector< STiledLayer > mLayers;
114
115 fsIScroller* mScroller;
116
117 };
118}
119
120#endif
121
Definition fsCEntity.h:39
fsCEntity(const fsStr &pName)
Definition fsCEntity.cpp:335
friend class fsCEntity
Definition fsINode.h:31
fsBool check(fsPoint const &pPos)
Definition fsCView.cpp:63
fsCView(fsITileMap *const pMap, fsIScroller *const pScroller, fsS32 pViewWidth, fsS32 pViewHeight, fsF32 pScale)
Definition fsCView.cpp:421
fsPoint mapToView(fsPoint pPos) const
Definition fsCView.cpp:44
std::vector< fsCView::STrigger * > const & triggersGet()
Definition fsCView.cpp:391
fsPoint & scrollOffsetGet()
Definition fsCView.cpp:19
void scroll(fsS32 &pAttemptedX, fsS32 &pAttemptedY)
Definition fsCView.cpp:152
fsPoint screenToMap(fsPoint pPos) const
Definition fsCView.cpp:34
fsITileMap * mMap
Definition fsCView.h:68
fsBool tileHide(fsS32 pLayerId, fsS32 pCol, fsS32 pRow)
Definition fsCView.cpp:251
void jumpTo(const fsPoint &pPos)
Definition fsCView.cpp:129
fsS32 pixelHeightGet() const
Definition fsCView.cpp:29
fsS32 pixelWidtheGet() const
Definition fsCView.cpp:24
static fsCView *const create(fsITileMap *const pMap, fsIScroller *const pScroller, fsS32 pViewWidth, fsS32 pViewHeight, fsF32 pScale=1.0f)
Definition fsCView.cpp:396
fsPoint mapPixelToLocal(const fsPoint &pMapPixel) const
Definition fsCView.cpp:52
~fsCView()
Definition fsCView.cpp:433
Definition fsIScroller.h:21
Definition fsITileMap.h:29
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
float fsF32
Definition fsBaseTypes.h:28
Definition fsILayer.h:21
std::shared_ptr< fsITile > fsITileRef
Definition fsTileMapForward.h:21
std::shared_ptr< fsIObject > fsIObjectRef
Definition fsTileMapForward.h:24
STrigger(fsIObjectRef pSrc)
Definition fsCView.h:32
fsIObjectRef mSource
Definition fsCView.h:33
fsCEntity * mEntity
Definition fsCView.h:34
Definition fsPoint.h:17