g4tools  5.4.0
Classes | Namespaces | Macros
node File Reference
#include "field"
#include "search_action"
#include "write_action"
#include "read_action"
#include "get_matrix_action"
#include "node_desc"
#include "../forit"
#include "../HEADER"
Include dependency graph for node:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  tools::sg::node
 

Namespaces

 tools
 inlined C code : ///////////////////////////////////
 
 tools::sg
 

Macros

#define tools_sg_node
 
#define TOOLS_NODE(a__class, a__sclass, a__parent)
 
#define TOOLS_NODE_NO_CAST(a__class, a__sclass, a__parent)
 
#define TOOLS_NODE_T(a__T, a__class, a__sclass, a__parent)
 
#define TOOLS_NODE_VT2(a__T1, a__T2, a__class, a__sclass, a__parent)
 

Macro Definition Documentation

◆ TOOLS_NODE

#define TOOLS_NODE (   a__class,
  a__sclass,
  a__parent 
)
Value:
TOOLS_HEADER(a__class,a__sclass,a__parent)\
virtual tools::sg::node* copy() const {return new a__class(*this);}

Definition at line 324 of file node.

◆ TOOLS_NODE_NO_CAST

#define TOOLS_NODE_NO_CAST (   a__class,
  a__sclass,
  a__parent 
)
Value:
private:\
typedef a__parent parent;\
public:\
TOOLS_SCLASS(a__sclass)\
public:\
virtual const std::string& s_cls() const {return s_class();}\
virtual tools::sg::node* copy() const {return new a__class(*this);}

Definition at line 328 of file node.

◆ TOOLS_NODE_T

#define TOOLS_NODE_T (   a__T,
  a__class,
  a__sclass,
  a__parent 
)
Value:
private:\
typedef a__parent parent;\
public:\
static const std::string& s_class() {\
static const std::string s_v(std::string(#a__class)+"<"+a__T::s_class()+">");\
return s_v;\
}\
static void check_class_name() {a__class<a__T>::s_class();}\
public:\
virtual const std::string& s_cls() const {return s_class();}\
virtual tools::sg::node* copy() const {return new a__class(*this);}\
public:\
virtual void* cast(const std::string& a_class) const {\
if(void* p = tools::cmp_cast<a__class>(this,a_class)) return p;\
return parent::cast(a_class);\
}

Definition at line 337 of file node.

◆ TOOLS_NODE_VT2

#define TOOLS_NODE_VT2 (   a__T1,
  a__T2,
  a__class,
  a__sclass,
  a__parent 
)
Value:
private:\
typedef a__parent parent;\
public:\
static const std::string& s_class() {\
static const std::string s_v(std::string(#a__class)+"<"+a__T1::s_class()+","+a__T2::s_class()+">");\
return s_v;\
}\
static void check_class_name() {a__class<a__T1,a__T2>::s_class();}\
public:\
virtual const std::string& s_cls() const {return s_class();}\
/*virtual tools::sg::node* copy() const {return new a__class(*this);}*/\
public:\
virtual void* cast(const std::string& a_class) const {\
if(void* p = tools::cmp_cast<a__class>(this,a_class)) return p;\
return parent::cast(a_class);\
}

Definition at line 355 of file node.

◆ tools_sg_node

#define tools_sg_node

Definition at line 5 of file node.

tools::sg::node
Definition: node:28
tools::copy
bool copy(T *&a_v, I a_n, const T *a_from)
Definition: carray:30
TOOLS_HEADER
#define TOOLS_HEADER(a__class, a__sclass, a__parent)
Definition: HEADER:10