OPTPiX SpriteStudio SDK
Loading...
Searching...
No Matches
ssplayer_cellmap.h
Go to the documentation of this file.
1#ifndef __SSPLAYER_CELLMAP__
2#define __SSPLAYER_CELLMAP__
3
4#include "../Loader/sstypes.h"
5
6#include <memory>
7
8namespace spritestudio6
9{
10
11class SsAnimeDecoder;
12class SsCelMapLinker;
13
28
30{
31public:
34
35 std::map<SsString,SsCell*> CellDic;
36
37public:
39 : cellMap(0) , tex(0)
40 {}
41
42 SsCelMapLinker(SsCellMap* cellmap, SsString filePath);
43
45 {
46 CellDic.clear();
47
48 if (tex)
49 {
51 //delete tex;
52 tex = 0;
53 }
54 }
55
56 SsCell* findCell( const SsString& name ){ return CellDic[name]; }
57
58};
59
60//プロジェクト全体で保持しているセルマップ
61//現在はprojectのセルマップの列挙とssaeの列挙は同一
63{
64private:
65 //同名セルマップは上書き
66 std::map<SsString, std::unique_ptr<SsCelMapLinker>> CellMapDic;
67 typedef std::map<SsString,std::unique_ptr<SsCelMapLinker>>::iterator CellMapDicItr;
68
69 std::vector<std::unique_ptr<SsCelMapLinker>> CellMapList;//添え字参照用
70
71 SsString CellMapPath;
72
73private:
74
75public:
78 {
79 for ( CellMapDicItr itr = CellMapDic.begin() ; itr != CellMapDic.end() ; itr ++)
80 {
81 itr->second.reset();
82 }
83
84 for ( size_t i = 0 ; i < CellMapList.size(); i++ )
85 {
86 CellMapList[i].reset();
87 }
88 CellMapList.clear();
89 CellMapDic.clear();
90 }
91
92 void clear();
93 size_t size(){ return CellMapList.size(); }
94
95 void setCellMapPath( const SsString& filepath );
96
97 //projectとanimepackからアニメーションの再生に必要なセルマップのリストを作成する
98 //アニメパックのセルリストに登載されている順にセルマップを読み込みインデックス化する
99 //SsProjectを介してセルを検索しているのはセルがそこにアレイで確保されているから
100 //もし既に読み込み済みだったりする場合は、アニメパックのセルID順にセルマップを登録すればいい
101 void set(SsProject* proj , SsAnimePack* animepack );
102
105 {
106 if (CellMapList.size() <= index) return 0;
107 return CellMapList[index].get();
108 }
109
110 bool preloadTexture(SsProject* proj);
111 bool unloadTexture(SsProject* proj = 0);
112
113 //インデックスで参照するために登録する
114 void addIndex(SsCellMap* cellmap);
115
116 //辞書で検索するために登録する関数
117 void addMap(SsCellMap* cellmap);
118
119};
120
121
122
123//void getCellValue( int cellMapid , SsString& cellName , SsCellValue& v );
124void getCellValue( SsCellMapList* cellList, int cellMapid , SsString& cellName , SsCellValue& v );
125void getCellValue( SsCellMapList* cellList, SsString& cellMapName , SsString& cellName , SsCellValue& v );
126
127void calcUvs( SsCellValue* cellv );
128
129
130} // namespace spritestudio6
131
132#endif
Definition IsshTexture.h:49
static void releaseTexture(ISSTexture *tex)
Definition IsshTexture.cpp:161
Definition ssplayer_animedecode.h:44
パーツを組み合わせた構造とその構造を使用するアニメーションを格納するデータです。 パーツの組み合わせ構造をSsModel、Modelを使用するアニメデータをSsAnimationで定義しています。
Definition ssloader_ssae.h:371
Definition ssplayer_cellmap.h:30
virtual ~SsCelMapLinker()
Definition ssplayer_cellmap.h:44
SsCellMap * cellMap
Definition ssplayer_cellmap.h:32
ISSTexture * tex
Definition ssplayer_cellmap.h:33
SsCelMapLinker()
Definition ssplayer_cellmap.h:38
std::map< SsString, SsCell * > CellDic
Definition ssplayer_cellmap.h:35
SsCell * findCell(const SsString &name)
Definition ssplayer_cellmap.h:56
パーツに使用される画素の矩形範囲を示した構造です。
Definition ssloader_ssce.h:14
セルマップデータを表現するためのクラスです。
Definition ssloader_ssce.h:89
virtual ~SsCellMapList()
Definition ssplayer_cellmap.h:77
SsCelMapLinker * getCellMapLink(int index)
Definition ssplayer_cellmap.h:104
void set(SsProject *proj, SsAnimePack *animepack)
Definition ssplayer_cellmap.cpp:108
size_t size()
Definition ssplayer_cellmap.h:93
void clear()
Definition ssplayer_cellmap.cpp:83
void addIndex(SsCellMap *cellmap)
Definition ssplayer_cellmap.cpp:142
void addMap(SsCellMap *cellmap)
Definition ssplayer_cellmap.cpp:137
SsCellMapList()
Definition ssplayer_cellmap.h:76
bool preloadTexture(SsProject *proj)
Definition ssplayer_cellmap.cpp:21
void setCellMapPath(const SsString &filepath)
Definition ssplayer_cellmap.cpp:103
bool unloadTexture(SsProject *proj=0)
Definition ssplayer_cellmap.cpp:33
SsCelMapLinker * getCellMapLink(const SsString &name)
Definition ssplayer_cellmap.cpp:148
Definition ssloader_sspj.h:97
GLdouble v
Definition glad.h:2712
GLuint const GLchar * name
Definition glad.h:3345
GLuint index
Definition glad.h:3345
_enum
Definition sstypes.h:518
_enum
Definition sstypes.h:503
Definition ISsEffectRender.h:5
void calcUvs(SsCellValue *cellv)
Definition ssplayer_cellmap.cpp:206
void getCellValue(SsCelMapLinker *l, SsString &cellName, SsCellValue &v)
Definition ssplayer_cellmap.cpp:168
SsPoint2 SsVector2
Definition sstypes.h:198
std::string SsString
Definition sstypes.h:30
SsCellValue()
Definition ssplayer_cellmap.h:23
SsVector2 uvs[5]
テクスチャ
Definition ssplayer_cellmap.h:19
SsTexFilterMode::_enum filterMode
テクスチャのフィルタモード
Definition ssplayer_cellmap.h:21
SsTexWrapMode::_enum wrapMode
使用するUV座標
Definition ssplayer_cellmap.h:20
SsCell * cell
Definition ssplayer_cellmap.h:17
ISSTexture * texture
参照しているセル
Definition ssplayer_cellmap.h:18