OPTPiX SpriteStudio SDK
 All Classes Namespaces Functions Variables Enumerations Enumerator Pages
bind_SSXML.h
1 #ifndef __bind_SSXML__
2 #define __bind_SSXML__
3 
4 #include "package_SpriteStudio.h"
5 #include "bind_AnimePack.h"
6 
7 
8 
9 
10 //ssLoaderにあるクラスのラッパークラスをPythonへの参照渡しを行う関係からラッピングする
11 //データのスクリプト側への受け渡しのため各ポインタはBind_SsProjectにあるm_projectのポインタ参照になる。
12 //SSXMLが解放されたタイミングでこれらの参照が消える仕組みとする。
13 //本来的には消えない方がpythonでの利用上適切ではあるが、解放タイミングのわかりやすさを重視してこのようにする。
14 class Bind_SsProjectSetting : public myPyBinder<SsProjectSetting>
15 {
16 public:
18  virtual ~Bind_SsProjectSetting(){}
19 
20  const char* animeBaseDirectory(){ return BIND_RETURN_PROP(animeBaseDirectory.c_str());}
21  const char* cellMapBaseDirectory(){ return BIND_RETURN_PROP(cellMapBaseDirectory.c_str());}
22  const char* imageBaseDirectory(){ return BIND_RETURN_PROP(imageBaseDirectory.c_str());}
23  const char* exportBaseDirectory(){ return BIND_RETURN_PROP(exportBaseDirectory.c_str());}
24 
25  bool queryExportBaseDirectory(){ return BIND_RETURN_PROP(queryExportBaseDirectory); }
26  int wrapMode(){ return (int)BIND_RETURN_PROP(wrapMode);}
27  int filterMode(){ return (int)BIND_RETURN_PROP(filterMode);}
28 
29 };
30 
31 
32 class Bind_Cellmap;
33 
35 public:
36  std::vector<Bind_SsAnimePack> m_animepacklist;
37 
38  SsProject *m_project;
39  Bind_SsProjectSetting m_setting;
40 
42  bool debug();
43 
44  void createAnimepack();
45 
48  if ( m_project )
49  return m_project->getAnimePackNum();
50  return 0;
51  }
52 
54  int getCellMapNum(){
55  if ( m_project )
56  return m_project->getCellMapNum();
57  return 0;
58  }
59 
60  Bind_Cellmap* getCellMapAt( int at );
61  Bind_Cellmap* getCellMapFromName( const char* name );
62 
63 
64  Bind_SsAnimePack const& AnimePackAt( int at ) { return m_animepacklist[at]; }
65  Bind_SsAnimePack const& AnimePackFromName( const char* name )
66  {
67  for ( size_t i = 0 ; i < m_animepacklist.size() ; ++i )
68  {
69  if ( m_animepacklist[i].m_animepack->name == name )
70  {
71  return m_animepacklist[i];
72  }
73  }
74  return m_animepacklist[0];
75  }
76 
77 // SsProjectSetting& setting(){ return m_project->settings; }
78 
79  Bind_SsProjectSetting& settings()
80  {
81  m_setting.bind(&m_project->settings);
82  return m_setting;
83  }
84 
85 
86 };
87 
88 
89 class SSXML
90 {
91 private:
92  Bind_SsProject* m_bind_project;
93 public:
94  SSXML();
95  bool Load( const char* name );
96 
97  Bind_SsProject const& GetPrj()
98  {
99  return *m_bind_project;
100  }
101 
102 };
103 
104 
105 
106 #endif