maxscript/macros/local_class.h File Reference
 
 
 
maxscript/macros/local_class.h File Reference
#include "ClassCfg.h"

Defines

#define  local_visible_class(_cls)
#define  local_applyable_class(_cls)
#define  local_visible_class_instance(_cls, _name)   _cls##Class _cls##_class (_M(_name));
#define  cat0(_a)   _a
#define  cat1(_a)   cat0(_a)
#define  cat2(_a, _b)   cat0(_a)##cat0(_b)
#define  str0(_c)   #_c
#define  str1(_c)   str0(_c)
#define  MS_LOCAL_ROOT_CLASS_TAG   &CONCATENATE(MS_LOCAL_ROOT_CLASS, _class)
#define  MS_LOCAL_GENERIC_CLASS_TAG   &CONCATENATE(MS_LOCAL_GENERIC_CLASS, _class)
#define  MS_LOCAL_GENERIC_CLASS_CLASS   CONCATENATE(MS_LOCAL_GENERIC_CLASS, Class)
#define  MS_LOCAL_GENERIC_CLASS_class   CONCATENATE(MS_LOCAL_GENERIC_CLASS, _class)
#define  CONCATENATE_HELPER(x, y)   x##y
  Concatenation Macros For details on the token pasting operator and joining two strings together in the preprocessor see:
#define  CONCATENATE(x, y)   CONCATENATE_HELPER(x,y)
  Joins two strings together in the preprocessor before the code is compiled.

Typedefs

typedef Value
*(MS_LOCAL_ROOT_CLASS::* 
local_value_vf )(Value **, int)

Define Documentation

#define local_visible_class (   _cls )
Value:
class _cls##Class : public ValueMetaClass                                                       \
        {                                                                                                                       \
        public:                                                                                                         \
                _cls##Class(const MCHAR* name) : ValueMetaClass (name) { }                              \
                void    collect() { delete this; }                                                              \
        };                                                                                                                      \
        extern _cls##Class _cls##_class;
#define local_applyable_class (   _cls )
Value:
class _cls##Class : public ValueMetaClass                                                       \
        {                                                                                                                       \
        public:                                                                                                         \
                _cls##Class(const MCHAR* name) : ValueMetaClass (name) { }                              \
                void    collect() { delete this; }                                                              \
                Value* apply(Value** arglist, int count, CallContext* cc = NULL);       \
        };                                                                                                                      \
        extern _cls##Class _cls##_class;
#define local_visible_class_instance (   _cls,
  _name 
)    _cls##Class _cls##_class (_M(_name));
#define cat0 (   _a )    _a
#define cat1 (   _a )    cat0(_a)
#define cat2 (   _a,
  _b 
)    cat0(_a)##cat0(_b)
#define str0 (   _c )    #_c
#define str1 (   _c )    str0(_c)
#define CONCATENATE_HELPER (   x,
 
)    x##y

Concatenation Macros For details on the token pasting operator and joining two strings together in the preprocessor see:

  • ISO/IEC 14882:2003(E) 16.3.3 The ## operator
  • ISO/IEC 9899:1999 (E) 6.10.3.3 The ## operator Helper macro used in concatenating two strings.
#define CONCATENATE (   x,
 
)    CONCATENATE_HELPER(x,y)

Joins two strings together in the preprocessor before the code is compiled.

#define MS_LOCAL_ROOT_CLASS_TAG   &CONCATENATE(MS_LOCAL_ROOT_CLASS, _class)
#define MS_LOCAL_GENERIC_CLASS_TAG   &CONCATENATE(MS_LOCAL_GENERIC_CLASS, _class)
#define MS_LOCAL_GENERIC_CLASS_CLASS   CONCATENATE(MS_LOCAL_GENERIC_CLASS, Class)
#define MS_LOCAL_GENERIC_CLASS_class   CONCATENATE(MS_LOCAL_GENERIC_CLASS, _class)

Typedef Documentation

typedef Value*(MS_LOCAL_ROOT_CLASS::* local_value_vf)(Value **, int)