4 #ifndef tools_sg_action
5 #define tools_sg_action
11 #include "../S_STRING"
23 virtual void*
cast(
const std::string& a_class)
const {
24 if(
void* p = cmp_cast<action>(
this,a_class))
return p;
27 virtual const std::string&
s_cls()
const = 0;
33 mem::increment(s_class().c_str());
38 mem::decrement(s_class().c_str());
46 mem::increment(s_class().c_str());
60 #define TOOLS_ACTION(a__class,a__sclass,a__parent)\
61 TOOLS_HEADER(a__class,a__sclass,a__parent)\
62 virtual tools::sg::action* copy() const {return new a__class(*this);}
64 #define TOOLS_ACTION_NO_COPY(a__class,a__sclass,a__parent)\
65 TOOLS_HEADER(a__class,a__sclass,a__parent)