4#include "./tinyxml2/tinyxml2.h"
17namespace libXML = tinyxml2;
49 libXML::XMLElement* m_xml;
59 libXML::XMLElement*
getxml(){
return m_xml;}
63 m_xml = ar->
getxml()->FirstChildElement( element_name );
66 void setDocumet( libXML::XMLDocument* doc ,
const char* element_name)
68 m_xml = doc->FirstChildElement(element_name);
76 virtual bool dc(
const char*
name ,
int& member ) = 0;
77 virtual bool dc(
const char*
name ,
float& member ) = 0;
78 virtual bool dc(
const char*
name ,
bool& member ) = 0;
79 virtual bool dc(
const char*
name , std::vector<SsString>& list ) = 0;
86 virtual bool dc(
const char*
name, std::vector<SsPoint2>& list) = 0;
87 virtual bool dc(
const char*
name, std::vector<SsTriangle>& list) = 0;
88 virtual bool dc(
const char*
name, std::map<SsString, int>& _map) = 0;
99inline static int GetTextToInt(libXML::XMLElement* e ,
int default_value )
101 int ret =default_value;
102 const char*
v = e->GetText();
136 virtual bool dc(
const char*
name ,
int& member );
137 virtual bool dc(
const char*
name ,
float& member );
139 virtual bool dc(
const char*
name ,
bool& member );
140 virtual bool dc(
const char*
name , std::vector<SsString>& list );
148 libXML::XMLElement* e =
getxml()->FirstChildElement(
name );
155 _ar.
dc_attr(
"subvalue" , str2 );
160 virtual bool dc(
const char*
name, std::vector<SsPoint2>& list);
161 virtual bool dc(
const char*
name, std::vector<SsTriangle>& list);
163 virtual bool dc(
const char*
name, std::map<SsString,int>& _map);
167 virtual bool dc_attr(
const char*
name ,
int& member );
172 template<
class my
class>
bool dc(
const char*
name , std::vector<myclass*>& list ,
const std::string key =
"value" )
175 libXML::XMLElement* e =
getxml()->FirstChildElement(
name );
176 if (e == 0)
return false;
178 e = e->FirstChildElement( key.c_str() );
182 myclass* _temp =
new myclass();
184 _temp->__Serialize( &_ar );
185 list.push_back( _temp );
186 e = e->NextSiblingElement();
192 template<
class my
class>
bool dc(
const char*
name , myclass&
type )
213#define SPRITESTUDIO6SDK_SERIALIZE_BLOCK void __Serialize(ISsXmlArchiver* ar)
215#define SPRITESTUDIO6SDK_SSAR_DECLARE(t) ar->dc(#t,t)
216#define SPRITESTUDIO6SDK_SSAR_DECLARE_ATTRIBUTE(t) ar->dc_attr(#t,t)
218#define SPRITESTUDIO6SDK_SSAR_STRUCT_DECLARE(t) {SsXmlIArchiver _ar( ar , #t );\
219t.__Serialize( &_ar );}\
221template<
class my
class>
237#define SPRITESTUDIO6SDK_SSAR_DECLARE_LIST(t) spritestudio6::__SSAR_DECLARE_LIST__( ar , t , #t)
238#define SPRITESTUDIO6SDK_SSAR_DECLARE_LIST2(t,s) spritestudio6::__SSAR_DECLARE_LIST__( ar , t , s)
239#define SPRITESTUDIO6SDK_SSAR_DECLARE_LISTEX(t,key) spritestudio6::__SSAR_DECLARE_LIST__( ar , t , #t , key )
241template<
class my
class>
255template<
class my
class>
271#define SPRITESTUDIO6SDK_SSAR_DECLARE_ENUM(t) spritestudio6::__SSAR_DECLARE_ENUM__( ar , t , #t)
272#define SPRITESTUDIO6SDK_SSAR_DECLARE_ATTRIBUTE_ENUM(t) spritestudio6::__SSAR_DECLARE_ATTRIBUTE_ENUM__( ar , t , #t)
284#define SPRITESTUDIO6SDK_AR_SELF_CHECK() if ( this->getxml() == 0 ) return false;
アーカイバクラスのインターフェース
Definition ssarchiver.h:47
virtual bool dc(const char *name, SsCurve &member)=0
void firstChild(ISsXmlArchiver *ar, const char *element_name)
Definition ssarchiver.h:61
virtual bool dc_attr(const char *name, SsString &member)=0
virtual bool dc(const char *name, SsXmlRangeValueConverter &member)=0
virtual bool dc(const char *name, float &member)=0
virtual bool dc(const char *name, std::vector< SsPoint2 > &list)=0
void setDocumet(libXML::XMLDocument *doc, const char *element_name)
Definition ssarchiver.h:66
virtual bool dc(const char *name, SsPoint2 &member)=0
virtual bool dc(const char *name, SsString &member)=0
ISsXmlArchiver()
Definition ssarchiver.h:56
virtual bool dc(const char *name, std::vector< SsString > &list)=0
virtual bool dc(const char *name, std::map< SsString, int > &_map)=0
virtual bool dc(const char *name, bool &member)=0
virtual bool dc(const char *name, std::vector< SsTriangle > &list)=0
virtual ~ISsXmlArchiver()
Definition ssarchiver.h:57
void setElement(libXML::XMLElement *e)
Definition ssarchiver.h:71
libXML::XMLElement * getxml()
Definition ssarchiver.h:59
virtual bool dc(const char *name, int &member)=0
virtual bool dc_attr(const char *name, int &member)=0
virtual EnumSsArchiver::Type getType()
Definition ssarchiver.h:53
曲線補間計算用パラメータ
Definition sstypes.h:355
アーカイバクラス インプットクラス
Definition ssarchiver.h:113
virtual bool dc(const char *name, SsXmlRangeValueConverter &member)
Definition ssarchiver.h:146
bool dc(const char *name, std::vector< myclass * > &list, const std::string key="value")
Definition ssarchiver.h:172
bool dc_attr(const char *name, myclass &type)
Definition ssarchiver.h:201
virtual bool dc_attr(const char *name, SsString &member)
Definition ssarchiver.cpp:8
virtual ~SsXmlIArchiver()
Definition ssarchiver.h:133
bool dc(const char *name, myclass &type)
Definition ssarchiver.h:192
virtual EnumSsArchiver::Type getType()
Definition ssarchiver.h:115
SsXmlIArchiver(libXML::XMLDocument *doc, const char *element_name)
Definition ssarchiver.h:122
SsXmlIArchiver(ISsXmlArchiver *ar, const char *element_name)
Definition ssarchiver.h:118
virtual bool dc(const char *name, int &member)
Definition ssarchiver.cpp:30
SsXmlIArchiver(libXML::XMLElement *e)
Definition ssarchiver.h:127
Definition ssarchiver.h:36
virtual bool inputString(SsString value, SsString subvalue)=0
virtual ~SsXmlRangeValueConverter()
Definition ssarchiver.h:39
SsXmlRangeValueConverter()
Definition ssarchiver.h:38
GLfloat value
Definition glad.h:2667
GLdouble v
Definition glad.h:2712
GLint GLint GLsizei GLint GLenum GLenum type
Definition glad.h:1980
GLuint const GLchar * name
Definition glad.h:3345
シリアライズクラスのInput/Outputの状態
Definition ssarchiver.h:23
Type
Definition ssarchiver.h:25
@ unkown
Definition ssarchiver.h:26
@ in
Definition ssarchiver.h:27
@ out
Definition ssarchiver.h:28
Definition ISsEffectRender.h:5
void __StringToEnum_(SsString n, SsPartType::_enum &out)
Definition sstypes.cpp:30
bool __SSAR_DECLARE_LIST__(ISsXmlArchiver *ar, std::vector< myclass * > &list, const char *name, const std::string key="value")
Definition ssarchiver.h:222
bool StringToTriangle(const std::string &str, SsTriangle &tri)
Definition ssarchiver.cpp:269
bool StringToIRect(const std::string &str, SsIRect &rect)
Definition ssarchiver.cpp:307
void SsArchiverInit()
SpriteStudio XMLデータ読み書きの初期化
Definition ssarchiver.cpp:328
SsTRect< int > SsIRect
Definition sstypes.h:223
bool __SSAR_DECLARE_ATTRIBUTE_ENUM__(ISsXmlArchiver *ar, myclass &type, const char *name)
Definition ssarchiver.h:256
bool StringToPoint2(const std::string &str, SsPoint2 &point)
Definition ssarchiver.cpp:289
bool __SSAR_DECLARE_ENUM__(ISsXmlArchiver *ar, myclass &type, const char *name)
Definition ssarchiver.h:242
std::string SsString
Definition sstypes.h:30
2次元座標を表現するためのクラスです。
Definition sstypes.h:36