/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield 
 *
 * This library is open source and may be redistributed and/or modified under  
 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or 
 * (at your option) any later version.  The full license is in LICENSE file
 * included with this distribution, and on the openscenegraph.org website.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 * OpenSceneGraph Public License for more details.
*/
//osgIntrospection - Copyright (C) 2005 Marco Jez

#ifndef OSGINTROSPECTION_REFLECTIONMACROS_
#define OSGINTROSPECTION_REFLECTIONMACROS_

#include <osgIntrospection/Type>
#include <osgIntrospection/Reflector>
#include <osgIntrospection/TypeNameAliasProxy>
#include <osgIntrospection/ConverterProxy>
#include <osgIntrospection/Converter>
#include <osgIntrospection/PublicMemberAccessor>
#include <osgIntrospection/MethodInfo>

namespace osgIntrospection
{

    /** Compile-time polymorphism detector.
        The enumeration constant "value" evaluates
        to true only if T is a polymorphic class,
        false otherwise. T must be a subclassable
        type.
    */
    template<typename T>
    struct is_polymorphic
    {
        struct dummy1: T { dummy1(); ~dummy1(); };
        struct dummy2: T { dummy2(); virtual ~dummy2(); };
        enum { value = sizeof(dummy1) == sizeof(dummy2) };
    };

}

// --------------------------------------------------------------------------
// "private" macros, not to be used outside this file
// --------------------------------------------------------------------------

#define COMMA                            ,
#define OSG_RM_CONCATENATE_MACRO(x, y)   x##y
#define OSG_RM_LINEID1(x, y)             OSG_RM_CONCATENATE_MACRO(x, y)
#define OSG_RM_LINEID(x)                 OSG_RM_LINEID1(x, __LINE__)


// --------------------------------------------------------------------------
// TYPE NAME ALIASES
// --------------------------------------------------------------------------

#define TYPE_NAME_ALIAS(t, n) \
    namespace { osgIntrospection::TypeNameAliasProxy<t > OSG_RM_LINEID(tnalias) (#n); }
    

// --------------------------------------------------------------------------
// TYPE CONVERTERS
// --------------------------------------------------------------------------

#define I_Converter(s, d, c) \
    namespace { osgIntrospection::ConverterProxy OSG_RM_LINEID(cvt) (s, d, new c); }

#define I_StaticConverter(s, d) \
    I_Converter(s, d, osgIntrospection::StaticConverter<s, d>);

#define I_DynamicConverter(s, d) \
    I_Converter(s, d, osgIntrospection::DynamicConverter<s, d>);
    
#define I_ReinterpretConverter(s, d) \
    I_Converter(s, d, osgIntrospection::ReinterpretConverter<s, d>);


// --------------------------------------------------------------------------
// ONE-LINE REFLECTORS
// --------------------------------------------------------------------------

#define ABSTRACT_OBJECT_REFLECTOR(t) \
    namespace { osgIntrospection::AbstractObjectReflector<t > OSG_RM_LINEID(reflector) (#t); }

#define ATOMIC_VALUE_REFLECTOR(t) \
    namespace { osgIntrospection::AtomicValueReflector<t > OSG_RM_LINEID(reflector) (#t); }

#define WATOMIC_VALUE_REFLECTOR(t) \
    namespace { osgIntrospection::WAtomicValueReflector<t > OSG_RM_LINEID(reflector) (#t); }

#define STD_PAIR_REFLECTOR(t) \
    namespace { osgIntrospection::StdPairReflector<t, t::first_type, t::second_type > OSG_RM_LINEID(reflector) (#t); }

#define STD_PAIR_REFLECTOR_WITH_TYPES(t, pt1, pt2) \
    namespace { osgIntrospection::StdPairReflector<t, pt1, pt2 > OSG_RM_LINEID(reflector) (#t); }

#define STD_VECTOR_REFLECTOR(t) \
    namespace { osgIntrospection::StdVectorReflector<t, t::value_type> OSG_RM_LINEID(reflector) (#t); }

#define STD_VECTOR_REFLECTOR_WITH_TYPES(t, vt) \
    namespace { osgIntrospection::StdVectorReflector<t, vt > OSG_RM_LINEID(reflector) (#t); }

#define STD_LIST_REFLECTOR(t) \
    namespace { osgIntrospection::StdListReflector<t, t::value_type> OSG_RM_LINEID(reflector) (#t); }

#define STD_LIST_REFLECTOR_WITH_TYPES(t, vt) \
    namespace { osgIntrospection::StdListReflector<t, vt > OSG_RM_LINEID(reflector) (#t); }

#define STD_SET_REFLECTOR(t) \
    namespace { osgIntrospection::StdSetReflector<t, t::value_type> OSG_RM_LINEID(reflector) (#t); }

#define STD_SET_REFLECTOR_WITH_TYPES(t, vt) \
    namespace { osgIntrospection::StdSetReflector<t, vt > OSG_RM_LINEID(reflector) (#t); }

#define STD_MAP_REFLECTOR(t) \
    namespace { osgIntrospection::StdMapReflector<t, t::key_type, t::mapped_type > OSG_RM_LINEID(reflector) (#t); }

#define STD_MAP_REFLECTOR_WITH_TYPES(t, it, vt) \
    namespace { osgIntrospection::StdMapReflector<t, it, vt > OSG_RM_LINEID(reflector) (#t); }


// --------------------------------------------------------------------------
// DETAILED REFLECTORS
// --------------------------------------------------------------------------

// this dummy function is used to prevent GCC from
// emitting an "unused variable" warning on reflector
// fields that are automatically created by following
// macros, and possibly left unused by the implementor.
// NOTE: the unnamed namespace declaration is commented
// out because it seems to confuse the MSVC++ compiler.
// Anyway, static should be ok.
//namespace 
//{    
    static inline void sink(const osgIntrospection::CustomAttributeProvider *) 
    {
    } 
//}


#define BEGIN_ENUM_REFLECTOR(c)  \
     namespace { \
     struct OSG_RM_LINEID(reflector): osgIntrospection::EnumReflector<c > { OSG_RM_LINEID(reflector)(): inherited(#c) { osgIntrospection::ParameterInfoList params; osgIntrospection::CustomAttributeProvider *cap = getType(); sink(cap);

#define BEGIN_VALUE_REFLECTOR(c)  \
     namespace { \
     struct OSG_RM_LINEID(reflector): osgIntrospection::ValueReflector<c > { OSG_RM_LINEID(reflector)(): inherited(#c) { osgIntrospection::ParameterInfoList params; osgIntrospection::CustomAttributeProvider *cap = getType(); sink(cap);

#define BEGIN_OBJECT_REFLECTOR(c)  \
     namespace { \
     struct OSG_RM_LINEID(reflector): osgIntrospection::ObjectReflector<c > { OSG_RM_LINEID(reflector)(): inherited(#c) { osgIntrospection::ParameterInfoList params; osgIntrospection::CustomAttributeProvider *cap = getType(); sink(cap);

#define BEGIN_ABSTRACT_OBJECT_REFLECTOR(c)  \
     namespace { \
     struct OSG_RM_LINEID(reflector): osgIntrospection::AbstractObjectReflector<c > { OSG_RM_LINEID(reflector)(): inherited(#c) { osgIntrospection::ParameterInfoList params; osgIntrospection::CustomAttributeProvider *cap = getType(); sink(cap);

#define END_REFLECTOR \
    } } OSG_RM_LINEID(reflector_instance); }


// --------------------------------------------------------------------------
// BASIC CONFIGURATION
// --------------------------------------------------------------------------

#define I_DeclaringFile(f)                   setDeclaringFile(f);

#define I_Attribute(c)                       cap->addAttribute(new c);

#define I_ReaderWriter(x)                    setReaderWriter(new x);
#define I_Comparator(x)                      setComparator(new x);

template<typename x, typename reflected_type, bool polymorphic>
struct BaseTypeConverters
{
    BaseTypeConverters()
    {
        const osgIntrospection::Type& st = typeof(reflected_type*); \
        const osgIntrospection::Type& cst = typeof(const reflected_type*); \
        const osgIntrospection::Type& dt = typeof(x*); \
        const osgIntrospection::Type& cdt = typeof(const x*); \
        osgIntrospection::ConverterProxy cp1(st, dt, new osgIntrospection::StaticConverter<reflected_type* , x*>); \
        osgIntrospection::ConverterProxy cp2(cst, cdt, new osgIntrospection::StaticConverter<const reflected_type* , const x*>); \
        osgIntrospection::ConverterProxy cp1c(st, cdt, new osgIntrospection::StaticConverter<reflected_type* , const x*>); \
    }
};

template<typename x, typename reflected_type>
struct BaseTypeConverters<x, reflected_type, true>
{
    BaseTypeConverters()
    {
        const osgIntrospection::Type& st = typeof(reflected_type*); \
        const osgIntrospection::Type& cst = typeof(const reflected_type*); \
        const osgIntrospection::Type& dt = typeof(x*); \
        const osgIntrospection::Type& cdt = typeof(const x*); \
        osgIntrospection::ConverterProxy cp1(st, dt, new osgIntrospection::StaticConverter<reflected_type* , x*>); \
        osgIntrospection::ConverterProxy cp2(cst, cdt, new osgIntrospection::StaticConverter<const reflected_type* , const x*>); \
        osgIntrospection::ConverterProxy cp1c(st, cdt, new osgIntrospection::StaticConverter<reflected_type* , const x*>); \
        osgIntrospection::ConverterProxy cp3(dt, st, new osgIntrospection::DynamicConverter<x*, reflected_type* >); \
        osgIntrospection::ConverterProxy cp4(cdt, cst, new osgIntrospection::DynamicConverter<const x*, const reflected_type* >); \
        osgIntrospection::ConverterProxy cp3c(dt, cst, new osgIntrospection::DynamicConverter<x*, const reflected_type* >); \
    }
};

#define I_BaseType(x) \
    { \
     addBaseType(typeof( x )); \
     BaseTypeConverters< x , reflected_type, osgIntrospection::is_polymorphic <x >::value > btc; \
    }

#define I_VirtualBaseType(x) \
    { \
     addBaseType(typeof( x )); \
     BaseTypeConverters< x, reflected_type, false > btc; \
    }

#define I_EnumLabel(x)                       addEnumLabel(x, #x, true);






// --------------------------------------------------------------------------
// PUBLIC MEMBER PROPERTIES
// --------------------------------------------------------------------------

#define I_PublicMemberProperty(t, n) \
  cap=addProperty(new osgIntrospection::PropertyInfo(osgIntrospection::Reflection::getType(extended_typeid< reflected_type >()), osgIntrospection::Reflection::getType(extended_typeid< t >()), #n, 0, 0)); \
  cap->addAttribute(new osgIntrospection::CustomPropertyGetAttribute(new osgIntrospection::PublicMemberAccessor< reflected_type, t >(&reflected_type::n))); \
  cap->addAttribute(new osgIntrospection::CustomPropertySetAttribute(new osgIntrospection::PublicMemberAccessor< reflected_type, t >(&reflected_type::n)));


// --------------------------------------------------------------------------
// PROPERTIES
// --------------------------------------------------------------------------

#define I_SimpleProperty(t, n, get, set) \
    cap=addProperty(new osgIntrospection::PropertyInfo(osgIntrospection::Reflection::getType(extended_typeid< reflected_type >()), osgIntrospection::Reflection::getType(extended_typeid< t >()), #n, \
      get, \
      set))

#define I_ArrayProperty(t, n, get, set, count, add, insert, remove) \
    cap=addProperty(new osgIntrospection::PropertyInfo(osgIntrospection::Reflection::getType(extended_typeid< reflected_type >()), osgIntrospection::Reflection::getType(extended_typeid< t >()), #n, \
      get, \
      set, \
      count, \
      add, \
      insert, \
      remove))

#define I_IndexedProperty(t, n, get, set, remove) \
    cap=addProperty(new osgIntrospection::PropertyInfo(osgIntrospection::Reflection::getType(extended_typeid< reflected_type >()), osgIntrospection::Reflection::getType(extended_typeid< t >()), #n, \
      get, \
      set, \
      remove))
// --------------------------------------------------------------------------
// CONSTRUCTORS
// --------------------------------------------------------------------------

#define I_Constructor             I_Constructor0
#define I_ConstructorWithDefaults I_ConstructorWithDefaults0

#define D_ConstructorInfoType osgIntrospection::ConstructorInfo*
#define D_ConstructorInfoType osgIntrospection::ConstructorInfo*

namespace Properties
{
    const bool NON_EXPLICIT     = false;
    const bool EXPLICIT         = true;
}

#define I_Constructor0(signature, briefHelp, detailedHelp)    \
  params.clear(); \
  D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo0< reflected_type, instance_creator_type >(params, briefHelp, detailedHelp)); sink(signature)

#define I_Constructor1(A0, P0, N0, isExplicit, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo1< reflected_type, instance_creator_type, P0 >(params, isExplicit, briefHelp, detailedHelp)); sink(signature)

#define I_Constructor2(A0, P0, N0, A1, P1, N1, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo2< reflected_type, instance_creator_type, P0, P1 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_Constructor3(A0, P0, N0, A1, P1, N1, A2, P2, N2, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo3< reflected_type, instance_creator_type, P0, P1, P2 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_Constructor4(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo4< reflected_type, instance_creator_type, P0, P1, P2, P3 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_Constructor5(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo5< reflected_type, instance_creator_type, P0, P1, P2, P3, P4 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_Constructor6(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo6< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_Constructor7(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo7< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_Constructor8(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo8< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_Constructor9(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo9< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_Constructor10(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo10< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_Constructor11(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo11< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_Constructor12(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo12< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_Constructor13(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo13< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_Constructor14(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo14< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_Constructor15(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, A14, P14, N14, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14)); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo15< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_Constructor16(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, A14, P14, N14, A15, P15, N15, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N15, osgIntrospection::Reflection::getType(extended_typeid< P15 >()), osgIntrospection::ParameterInfo::A15)); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo16< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults0(signature, briefHelp, detailedHelp) \
    params.clear(); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo0< reflected_type, instance_creator_type>(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults1(A0, P0, N0, D0, isExplicit, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo1< reflected_type, instance_creator_type, P0 >(params, isExplicit, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults2(A0, P0, N0, D0, A1, P1, N1, D1, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo2< reflected_type, instance_creator_type, P0, P1 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults3(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo3< reflected_type, instance_creator_type, P0, P1, P2 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults4(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo4< reflected_type, instance_creator_type, P0, P1, P2, P3 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults5(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo5< reflected_type, instance_creator_type, P0, P1, P2, P3, P4 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults6(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo6< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults7(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo7< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults8(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo8< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults9(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo9< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults10(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo10< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults11(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo11< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults12(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo12< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults13(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo13< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults14(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo14< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults15(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, A14, P14, N14, D14, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14, osgIntrospection::Value(D14))); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo15< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ConstructorWithDefaults16(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, A14, P14, N14, D14, A15, P15, N15, D15, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14, osgIntrospection::Value(D14))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N15, osgIntrospection::Reflection::getType(extended_typeid< P15 >()), osgIntrospection::ParameterInfo::A15, osgIntrospection::Value(D15))); \
    D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo16< reflected_type, instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructor0(signature, briefHelp, detailedHelp)    \
  params.clear(); \
  D_ConstructorInfoType signature = addConstructor(new osgIntrospection::TypedConstructorInfo0< reflected_type, invalid_instance_creator_type>(params, briefHelp, detailedHelp)); sink(signature)

#define I_ProtectedConstructor1(A0, P0, N0, isExplicit, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo1< reflected_type, invalid_instance_creator_type, P0 >(params, isExplicit, briefHelp, detailedHelp)); sink(signature)

#define I_ProtectedConstructor2(A0, P0, N0, A1, P1, N1, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo2< reflected_type, invalid_instance_creator_type, P0, P1 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructor3(A0, P0, N0, A1, P1, N1, A2, P2, N2, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo3< reflected_type, invalid_instance_creator_type, P0, P1, P2 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructor4(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo4< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructor5(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo5< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructor6(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo6< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructor7(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo7< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructor8(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo8< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructor9(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo9< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructor10(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo10< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructor11(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo11< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructor12(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo12< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructor13(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo13< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructor14(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo14< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructor15(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, A14, P14, N14, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14)); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo15< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructor16(A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, A14, P14, N14, A15, P15, N15, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N15, osgIntrospection::Reflection::getType(extended_typeid< P15 >()), osgIntrospection::ParameterInfo::A15)); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo16< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults0(signature, briefHelp, detailedHelp) \
    params.clear(); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo0< reflected_type, invalid_instance_creator_type>(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults1(A0, P0, N0, D0, isExplicit, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo1< reflected_type, invalid_instance_creator_type, P0 >(params, isExplicit, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults2(A0, P0, N0, D0, A1, P1, N1, D1, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo2< reflected_type, invalid_instance_creator_type, P0, P1 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults3(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo3< reflected_type, invalid_instance_creator_type, P0, P1, P2 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults4(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo4< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults5(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo5< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults6(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo6< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults7(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo7< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults8(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo8< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults9(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo9< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults10(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo10< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults11(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo11< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults12(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo12< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults13(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo13< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults14(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo14< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults15(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, A14, P14, N14, D14, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14, osgIntrospection::Value(D14))); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo15< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 >(params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedConstructorWithDefaults16(A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, A14, P14, N14, D14, A15, P15, N15, D15, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14, osgIntrospection::Value(D14))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N15, osgIntrospection::Reflection::getType(extended_typeid< P15 >()), osgIntrospection::ParameterInfo::A15, osgIntrospection::Value(D15))); \
    D_ConstructorInfoType signature = addProtectedConstructor(new osgIntrospection::TypedConstructorInfo16< reflected_type, invalid_instance_creator_type, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 >(params, briefHelp, detailedHelp)); sink(signature) 


// --------------------------------------------------------------------------
// METHODS
// --------------------------------------------------------------------------

#define I_Method                    I_Method0
#define I_StaticMethod              I_StaticMethod0
#define I_MethodWithDefaults        I_MethodWithDefaults0
#define I_StaticMethodWithDefaults  I_StaticMethodWithDefaults0

#define D_MethodInfoType osgIntrospection::MethodInfo*

namespace Properties
{
    const osgIntrospection::MethodInfo::VirtualState NON_VIRTUAL        = osgIntrospection::MethodInfo::NON_VIRTUAL;
    const osgIntrospection::MethodInfo::VirtualState VIRTUAL            = osgIntrospection::MethodInfo::VIRTUAL;
    const osgIntrospection::MethodInfo::VirtualState PURE_VIRTUAL       = osgIntrospection::MethodInfo::PURE_VIRTUAL;

    const bool CONST            = true;
    const bool NON_CONST        = false;
}

#define I_Method0(ret, fn, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo0< reflected_type, ret >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_Method1(ret, fn, A0, P0, N0, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo1< reflected_type, ret, P0 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_Method2(ret, fn, A0, P0, N0, A1, P1, N1, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo2< reflected_type, ret, P0, P1 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_Method3(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo3< reflected_type, ret, P0, P1, P2 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_Method4(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo4< reflected_type, ret, P0, P1, P2, P3 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_Method5(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo5< reflected_type, ret, P0, P1, P2, P3, P4 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_Method6(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo6< reflected_type, ret, P0, P1, P2, P3, P4, P5 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_Method7(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo7< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_Method8(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo8< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_Method9(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo9< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_Method10(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo10< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_Method11(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo11< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_Method12(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo12< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_Method13(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo13< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_Method14(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo14< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_Method15(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, A14, P14, N14, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo15< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_Method16(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, A14, P14, N14, A15, P15, N15, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N15, osgIntrospection::Reflection::getType(extended_typeid< P15 >()), osgIntrospection::ParameterInfo::A15)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo16< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults0(ret, fn, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo0< reflected_type, ret >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults1(ret, fn, A0, P0, N0, D0, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo1< reflected_type, ret, P0 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults2(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo2< reflected_type, ret, P0, P1 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults3(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo3< reflected_type, ret, P0, P1, P2 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults4(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo4< reflected_type, ret, P0, P1, P2, P3 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults5(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo5< reflected_type, ret, P0, P1, P2, P3, P4 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults6(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo6< reflected_type, ret, P0, P1, P2, P3, P4, P5 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults7(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo7< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults8(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo8< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults9(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo9< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults10(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo10< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults11(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo11< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults12(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo12< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults13(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo13< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults14(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo14< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults15(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, A14, P14, N14, D14, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14, osgIntrospection::Value(D14))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo15< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_MethodWithDefaults16(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, A14, P14, N14, D14, A15, P15, N15, D15, virtualState, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14, osgIntrospection::Value(D14))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N15, osgIntrospection::Reflection::getType(extended_typeid< P15 >()), osgIntrospection::ParameterInfo::A15, osgIntrospection::Value(D15))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::TypedMethodInfo16< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 >(qualifyName(#fn), &reflected_type::fn, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod0(ret, fn, signature, briefHelp, detailedHelp) \
    params.clear(); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo0< reflected_type, ret >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod1(ret, fn, A0, P0, N0, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo1< reflected_type, ret, P0 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod2(ret, fn, A0, P0, N0, A1, P1, N1, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo2< reflected_type, ret, P0, P1 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod3(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo3< reflected_type, ret, P0, P1, P2 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod4(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo4< reflected_type, ret, P0, P1, P2, P3 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod5(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo5< reflected_type, ret, P0, P1, P2, P3, P4 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod6(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo6< reflected_type, ret, P0, P1, P2, P3, P4, P5 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod7(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo7< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod8(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo8< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod9(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo9< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod10(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo10< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod11(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo11< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod12(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo12< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod13(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo13< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod14(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo14< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod15(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, A14, P14, N14, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo15< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethod16(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, A14, P14, N14, A15, P15, N15, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N15, osgIntrospection::Reflection::getType(extended_typeid< P15 >()), osgIntrospection::ParameterInfo::A15)); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo16< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults0(ret, fn, signature, briefHelp, detailedHelp) \
    params.clear(); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo0< reflected_type, ret >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults1(ret, fn, A0, P0, N0, D0, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo1< reflected_type, ret, P0 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults2(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo2< reflected_type, ret, P0, P1 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults3(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo3< reflected_type, ret, P0, P1, P2 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults4(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo4< reflected_type, ret, P0, P1, P2, P3 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults5(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo5< reflected_type, ret, P0, P1, P2, P3, P4 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults6(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo6< reflected_type, ret, P0, P1, P2, P3, P4, P5 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults7(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo7< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults8(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo8< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults9(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo9< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults10(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo10< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults11(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo11< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults12(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo12< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults13(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo13< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults14(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo14< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults15(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, A14, P14, N14, D14, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14, osgIntrospection::Value(D14))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo15< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_StaticMethodWithDefaults16(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, A14, P14, N14, D14, A15, P15, N15, D15, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14, osgIntrospection::Value(D14))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N15, osgIntrospection::Reflection::getType(extended_typeid< P15 >()), osgIntrospection::ParameterInfo::A15, osgIntrospection::Value(D15))); \
    D_MethodInfoType signature = addMethod(new osgIntrospection::StaticMethodInfo16< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 >(qualifyName(#fn), &reflected_type::fn, params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod0(ret, fn, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo0< reflected_type, ret >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod1(ret, fn, A0, P0, N0, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo1< reflected_type, ret, P0 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod2(ret, fn, A0, P0, N0, A1, P1, N1, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType( extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType( extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo2< reflected_type, ret, P0, P1 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod3(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo3< reflected_type, ret, P0, P1, P2 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod4(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo4< reflected_type, ret, P0, P1, P2, P3 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod5(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo5< reflected_type, ret, P0, P1, P2, P3, P4 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod6(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo6< reflected_type, ret, P0, P1, P2, P3, P4, P5 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod7(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo7< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod8(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo8< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod9(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo9< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod10(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo10< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod11(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo11< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod12(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo12< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod13(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo13< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod14(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo14< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod15(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, A14, P14, N14, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo15< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethod16(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, A14, P14, N14, A15, P15, N15, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N15, osgIntrospection::Reflection::getType(extended_typeid< P15 >()), osgIntrospection::ParameterInfo::A15)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo16< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults0(ret, fn, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo0< reflected_type, ret >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults1(ret, fn, A0, P0, N0, D0, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo1< reflected_type, ret, P0 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults2(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo2< reflected_type, ret, P0, P1 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults3(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo3< reflected_type, ret, P0, P1, P2 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults4(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo4< reflected_type, ret, P0, P1, P2, P3 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults5(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo5< reflected_type, ret, P0, P1, P2, P3, P4 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults6(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo6< reflected_type, ret, P0, P1, P2, P3, P4, P5 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults7(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo7< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults8(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo8< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults9(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo9< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults10(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo10< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults11(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo11< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults12(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo12< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults13(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo13< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults14(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo14< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults15(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, A14, P14, N14, D14, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14, osgIntrospection::Value(D14))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo15< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedMethodWithDefaults16(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, A14, P14, N14, D14, A15, P15, N15, D15, virtualState, isConst, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14, osgIntrospection::Value(D14))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N15, osgIntrospection::Reflection::getType(extended_typeid< P15 >()), osgIntrospection::ParameterInfo::A15, osgIntrospection::Value(D15))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::TypedProtectedMethodInfo16< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 >(qualifyName(#fn), isConst, params, virtualState, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod0(ret, fn, signature, briefHelp, detailedHelp) \
    params.clear(); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo0< reflected_type, ret>(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod1(ret, fn, A0, P0, N0, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo1< reflected_type, ret, P0 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod2(ret, fn, A0, P0, N0, A1, P1, N1, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo2< reflected_type, ret, P0, P1 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod3(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo3< reflected_type, ret, P0, P1, P2 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod4(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo4< reflected_type, ret, P0, P1, P2, P3 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod5(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo5< reflected_type, ret, P0, P1, P2, P3, P4 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod6(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo6< reflected_type, ret, P0, P1, P2, P3, P4, P5 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod7(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo7< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod8(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo8< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod9(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo9< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod10(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo10< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod11(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo11< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod12(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo12< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod13(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo13< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod14(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo14< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod15(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, A14, P14, N14, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo15< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethod16(ret, fn, A0, P0, N0, A1, P1, N1, A2, P2, N2, A3, P3, N3, A4, P4, N4, A5, P5, N5, A6, P6, N6, A7, P7, N7, A8, P8, N8, A9, P9, N9, A10, P10, N10, A11, P11, N11, A12, P12, N12, A13, P13, N13, A14, P14, N14, A15, P15, N15, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14)); \
    params.push_back(new osgIntrospection::ParameterInfo(#N15, osgIntrospection::Reflection::getType(extended_typeid< P15 >()), osgIntrospection::ParameterInfo::A15)); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo16< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults0(ret, fn, signature, briefHelp, detailedHelp) \
    params.clear(); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo0< reflected_type, ret>(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults1(ret, fn, A0, P0, N0, D0, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo1< reflected_type, ret, P0 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults2(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo2< reflected_type, ret, P0, P1 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults3(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo3< reflected_type, ret, P0, P1, P2 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults4(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo4< reflected_type, ret, P0, P1, P2, P3 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults5(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo5< reflected_type, ret, P0, P1, P2, P3, P4 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults6(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo6< reflected_type, ret, P0, P1, P2, P3, P4, P5 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults7(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo7< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults8(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo8< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults9(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo9< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults10(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo10< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults11(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo11< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults12(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo12< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults13(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo13< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults14(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo14< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults15(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, A14, P14, N14, D14, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14, osgIntrospection::Value(D14))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo15< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#define I_ProtectedStaticMethodWithDefaults16(ret, fn, A0, P0, N0, D0, A1, P1, N1, D1, A2, P2, N2, D2, A3, P3, N3, D3, A4, P4, N4, D4, A5, P5, N5, D5, A6, P6, N6, D6, A7, P7, N7, D7, A8, P8, N8, D8, A9, P9, N9, D9, A10, P10, N10, D10, A11, P11, N11, D11, A12, P12, N12, D12, A13, P13, N13, D13, A14, P14, N14, D14, A15, P15, N15, D15, signature, briefHelp, detailedHelp) \
    params.clear(); \
    params.push_back(new osgIntrospection::ParameterInfo(#N0, osgIntrospection::Reflection::getType(extended_typeid< P0 >()), osgIntrospection::ParameterInfo::A0, osgIntrospection::Value(D0))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N1, osgIntrospection::Reflection::getType(extended_typeid< P1 >()), osgIntrospection::ParameterInfo::A1, osgIntrospection::Value(D1))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N2, osgIntrospection::Reflection::getType(extended_typeid< P2 >()), osgIntrospection::ParameterInfo::A2, osgIntrospection::Value(D2))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N3, osgIntrospection::Reflection::getType(extended_typeid< P3 >()), osgIntrospection::ParameterInfo::A3, osgIntrospection::Value(D3))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N4, osgIntrospection::Reflection::getType(extended_typeid< P4 >()), osgIntrospection::ParameterInfo::A4, osgIntrospection::Value(D4))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N5, osgIntrospection::Reflection::getType(extended_typeid< P5 >()), osgIntrospection::ParameterInfo::A5, osgIntrospection::Value(D5))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N6, osgIntrospection::Reflection::getType(extended_typeid< P6 >()), osgIntrospection::ParameterInfo::A6, osgIntrospection::Value(D6))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N7, osgIntrospection::Reflection::getType(extended_typeid< P7 >()), osgIntrospection::ParameterInfo::A7, osgIntrospection::Value(D7))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N8, osgIntrospection::Reflection::getType(extended_typeid< P8 >()), osgIntrospection::ParameterInfo::A8, osgIntrospection::Value(D8))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N9, osgIntrospection::Reflection::getType(extended_typeid< P9 >()), osgIntrospection::ParameterInfo::A9, osgIntrospection::Value(D9))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N10, osgIntrospection::Reflection::getType(extended_typeid< P10 >()), osgIntrospection::ParameterInfo::A10, osgIntrospection::Value(D10))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N11, osgIntrospection::Reflection::getType(extended_typeid< P11 >()), osgIntrospection::ParameterInfo::A11, osgIntrospection::Value(D11))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N12, osgIntrospection::Reflection::getType(extended_typeid< P12 >()), osgIntrospection::ParameterInfo::A12, osgIntrospection::Value(D12))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N13, osgIntrospection::Reflection::getType(extended_typeid< P13 >()), osgIntrospection::ParameterInfo::A13, osgIntrospection::Value(D13))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N14, osgIntrospection::Reflection::getType(extended_typeid< P14 >()), osgIntrospection::ParameterInfo::A14, osgIntrospection::Value(D14))); \
    params.push_back(new osgIntrospection::ParameterInfo(#N15, osgIntrospection::Reflection::getType(extended_typeid< P15 >()), osgIntrospection::ParameterInfo::A15, osgIntrospection::Value(D15))); \
    D_MethodInfoType signature = addProtectedMethod(new osgIntrospection::StaticProtectedMethodInfo16< reflected_type, ret, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15 >(qualifyName(#fn), params, briefHelp, detailedHelp)); sink(signature) 

#endif


