format 73
"objectmodel" // sofa::core::objectmodel
  revision 3
  modified_by 48 "allardj"
  // class settings
  //class diagram settings
  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
  //use case diagram settings
  package_name_in_tab default show_context default auto_label_position default draw_all_relations default class_drawing_mode default shadow default show_stereotype_properties default
  //sequence diagram settings
  show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default
  //collaboration diagram settings
  show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default draw_all_relations default shadow default show_stereotype_properties default
  //object diagram settings
   write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
  //component diagram settings
  package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default
  draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
  //deployment diagram settings
  package_name_in_tab default show_context default write_horizontally default auto_label_position default draw_all_relations default shadow default
  draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
  //state diagram settings
  package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
  show_activities default region_horizontally default drawing_language default show_stereotype_properties default
  //activity diagram settings
  package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
  show_infonote default drawing_language default show_stereotype_properties default
  
  cpp_h_dir "/home/allardj/work/Sofa/framework/sofa/core/objectmodel/"
  cpp_src_dir "/home/allardj/work/Sofa/framework/sofa/core/objectmodel/"
  cpp_namespace "sofa::core::objectmodel"
  classview 128176 "objectmodel"
    //class diagram settings
    draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
    //collaboration diagram settings
    show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default draw_all_relations default shadow default show_stereotype_properties default
    //object diagram settings
     write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
    //sequence diagram settings
    show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default
    //state diagram settings
    package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
    show_activities default region_horizontally default drawing_language default show_stereotype_properties default
    //class settings
    //activity diagram settings
    package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
    show_infonote default drawing_language default show_stereotype_properties default
    class 128304 "BaseObject"
      abstract visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 *  \\brief Base class for simulation objects.
 *
 *  An object defines a part of the functionnality in the simulation
 *  (stores state data, specify topology, compute forces, etc).
 *  Each simulation object is related to a context, which gives access to all available external data.
 *  It is able to process events, if listening enabled (default is false).
 *"
      classrelation 163504 // <generalisation>
	relation 163504 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 163504 // <generalisation>
	  b parent class_ref 180784 // typedef13
      end

      classrelation 163632 // <generalisation>
	relation 163632 ---|>
	  a private
	    cpp default "${type}"
	    classrelation_ref 163632 // <generalisation>
	  b parent class_ref 179376 // Base
      end

      classrelation 163760 // <generalisation>
	relation 163760 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 163760 // <generalisation>
	  b parent class_ref 182448 // BaseObjectTasks
      end

      operation 290864 "BaseObject"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}
	: Base()
	, f_listening(initData( &f_listening, false, \"listening\", \"if true, handle the events, otherwise ignore the events\"))
	, context_(NULL)
#ifdef SOFA_SMP
	,partition_(NULL)
#endif
	/*        , m_isListening(false)
	, m_printLog(false)*/
${throw}{
  ${body}}
"
	
	
	
	
      end

      operation 290992 "~BaseObject"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
      end

      operation 291120 "setContext"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param inout name "n" type class_ref 141104 // BaseContext
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ @name Context accessors
/ @{"
      end

      operation 291248 "getContext"
	preserve_cpp_body_indent const public return_type class_ref 141104 // BaseContext
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}const ${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 291376 "getContext"
	preserve_cpp_body_indent public return_type class_ref 141104 // BaseContext
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 291504 "setPartition"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param inout name "p" explicit_type "Iterative::IterativePartition"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 291632 "getPartition"
	preserve_cpp_body_indent public explicit_return_type "Iterative::IterativePartition"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 291760 "prepareTask"
	preserve_cpp_body_indent public explicit_return_type "Iterative::IterativePartition"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 291888 "canCreate"
	stereotype "template"
	class_operation cpp_inline public explicit_return_type "bool"
	nparams 3
	  param inout name "" explicit_type "T"
	  param inout name "" type class_ref 141104 // BaseContext
	  param inout name "" type class_ref 141232 // BaseObjectDescription
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * & ${p0}${v0}, ${t1} * ${p1}${v1}, ${t2} * ${p2}${v2}${)}${const}${volatile}${throw}${abstract} {
        return true;
    };
"
	
	
	
	
	comment "/ @}
/ @name control
/   Basic state control
/ @{
/ Pre-construction check method called by ObjectFactory."
      end

      operation 292016 "create"
	stereotype "template"
	class_operation cpp_inline public explicit_return_type "void"
	nparams 3
	  param inout name "obj" explicit_type "T"
	  param inout name "context" type class_ref 141104 // BaseContext
	  param inout name "arg" type class_ref 141232 // BaseObjectDescription
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * & ${p0}${v0}, ${t1} * ${p1}${v1}, ${t2} * ${p2}${v2}${)}${const}${volatile}${throw}${abstract} {
        obj = new T;
        
        if (context) context->addObject(obj);
        if (arg) obj->parse(arg);
    };
"
	
	
	
	
	comment "/ Construction method called by ObjectFactory."
      end

      operation 292144 "parse"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param inout name "arg" type class_ref 141232 // BaseObjectDescription
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Parse the given description to assign values to this object's fields and potentially other parameters"
      end

      operation 292272 "init"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Initialization method called at graph creation and modification, during top-down traversal."
      end

      operation 292400 "bwdInit"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Initialization method called at graph creation and modification, during bottom-up traversal."
      end

      operation 292528 "reinit"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Update method called when variables used in precomputation are modified."
      end

      operation 292656 "storeResetState"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Save the initial state for later uses in reset()"
      end

      operation 292784 "reset"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Reset to initial state"
      end

      operation 292912 "cleanup"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Called just before deleting this object
/ Any object in the tree bellow this object that are to be removed will be removed only after this call,
/ so any references this object holds should still be valid."
      end

      attribute 156848 "f_listening"
	public explicit_type "bool"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      operation 293040 "handleEvent"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param inout name "" type class_ref 182064 // Event
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Handle an event"
      end

      operation 293168 "handleTopologyChange"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {};
"
	
	
	
	
	comment "/ Handle topological Changes
/ @deprecated topological changes now rely on TopologyEngine"
      end

      operation 293296 "handleTopologyChange"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param inout name "t" type class_ref 152496 // Topology
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Handle topological Changes from a given Topology

${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Handle topological Changes from a given Topology
/ @deprecated topological changes now rely on TopologyEngine"
      end

      operation 293424 "draw"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {};
"
	
	
	
	
	comment "/@}
*
     *  \\brief Render internal data of this object, for debugging purposes."
      end

      operation 293552 "getTime"
	preserve_cpp_body_indent const public explicit_return_type "double"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "// void BaseObject::setListening( bool b )
// {
//     m_isListening = b;
// }
//
// bool BaseObject::isListening() const
// {
//     return m_isListening;
// }
//
// BaseObject* BaseObject::setPrintLog( bool b )
// {
//     m_printLog = b;
//     return this;
// }
//
// bool BaseObject::printLog() const
// {
//     return m_printLog;
// }

${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/@}
/ @name data access
/   Access to external data
/ @{
/ Current time"
      end

      operation 293680 "canPrefetch"
	const cpp_virtual cpp_inline public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { return false; };
"
	
	
	
	
	comment "/ @}"
      end

      operation 293808 "setPrefetching"
	class_operation preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param in name "b" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 293936 "isPrefetching"
	class_operation preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      classrelation 163888 // context_ (<unidirectional association>)
	relation 163888 --->
	  a role_name "context_" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	    classrelation_ref 163888 // context_ (<unidirectional association>)
	  b parent class_ref 141104 // BaseContext
      end

      attribute 156976 "partition_"
	protected explicit_type "Iterative::IterativePartition"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end
    end

    class 133552 "DDGNode"
      abstract visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 *  \\brief Abstract base to manage data dependencies. BaseData and DataEngine inherites from this class
 *"
      operation 324400 "DDGNode"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}
: dirtyValue(false)
, dirtyOutputs(false)
${throw}{
  ${body}}
"
	
	
	
	
	comment "/ Constructor"
      end

      operation 324528 "~DDGNode"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
	comment "/ Destructor. Automatically remove remaining links"
      end

      operation 324656 "addInput"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param inout name "n" type class_ref 133552 // DDGNode
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Add a new input to this node"
      end

      operation 324784 "delInput"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param inout name "n" type class_ref 133552 // DDGNode
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Remove an input from this node"
      end

      operation 324912 "addOutput"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param inout name "n" type class_ref 133552 // DDGNode
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Add a new output to this node"
      end

      operation 325040 "delOutput"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param inout name "n" type class_ref 133552 // DDGNode
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Remove an output from this node"
      end

      operation 325168 "getInputs"
	preserve_cpp_body_indent public explicit_return_type "std::list<DDGNode*>"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Get the list of inputs for this DDGNode"
      end

      operation 325296 "getOutputs"
	preserve_cpp_body_indent public explicit_return_type "std::list<DDGNode*>"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Get the list of outputs for this DDGNode"
      end

      operation 325424 "update"
	abstract cpp_virtual public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Update this value"
      end

      operation 325552 "isDirty"
	const cpp_inline public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        return dirtyValue;
    };
"
	
	
	
	
	comment "/ Returns true if the DDGNode needs to be updated"
      end

      operation 325680 "setDirtyValue"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Indicate the value needs to be updated"
      end

      operation 325808 "setDirtyOutputs"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Indicate the outputs needs to be updated. This method must be called after changing the value of this node."
      end

      operation 325936 "cleanDirty"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Set dirty flag to false"
      end

      operation 326064 "updateIfDirty"
	const cpp_inline public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
		if (isDirty())
		{
			const_cast <DDGNode*> (this)->update();
		}
    };
"
	
	
	
	
	comment "/ Utility method to call update if necessary. This method should be called before reading of writing the value of this node."
      end

      classrelation 167344 // inputs (<unidirectional association>)
	relation 167344 --->
	  stereotype "std::list"
	  a role_name "inputs" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}*> ${name}${value};
"
	    classrelation_ref 167344 // inputs (<unidirectional association>)
	  b parent class_ref 133552 // DDGNode
      end

      classrelation 167472 // outputs (<unidirectional association>)
	relation 167472 --->
	  stereotype "std::list"
	  a role_name "outputs" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}*> ${name}${value};
"
	    classrelation_ref 167472 // outputs (<unidirectional association>)
	  b parent class_ref 133552 // DDGNode
      end

      operation 326192 "doAddInput"
	cpp_virtual cpp_inline protected explicit_return_type "void"
	nparams 1
	  param inout name "n" type class_ref 133552 // DDGNode
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
		inputs.push_back(n);
    };
"
	
	
	
	
      end

      operation 326320 "doDelInput"
	cpp_virtual cpp_inline protected explicit_return_type "void"
	nparams 1
	  param inout name "n" type class_ref 133552 // DDGNode
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
		inputs.remove(n);
    };
"
	
	
	
	
      end

      operation 326448 "doAddOutput"
	cpp_virtual cpp_inline protected explicit_return_type "void"
	nparams 1
	  param inout name "n" type class_ref 133552 // DDGNode
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
		outputs.push_back(n);
    };
"
	
	
	
	
      end

      operation 326576 "doDelOutput"
	cpp_virtual cpp_inline protected explicit_return_type "void"
	nparams 1
	  param inout name "n" type class_ref 133552 // DDGNode
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
		outputs.remove(n);
    };
"
	
	
	
	
      end

      attribute 161456 "dirtyValue"
	private explicit_type "bool"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 161584 "dirtyOutputs"
	private explicit_type "bool"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end
    end

    class 135984 "DataObjectRef"
      visibility package 
      nactuals 1
      actual class class_ref 170032 // Data
        rank 0 value class_ref 187568 // ObjectRef
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 169392 // <realization>
	relation 169392 -_-|>
	  stereotype "bind"
	  a public
	    cpp default "${type}"
	    classrelation_ref 169392 // <realization>
	  b parent class_ref 170032 // Data
      end

      class 187952 "Inherit"
	visibility package stereotype "typedef" base_type class_ref 187568 // ObjectRef
	cpp_decl "${comment}typedef sofa::core::objectmodel::Data<${type}> ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	classrelation 169520 // <dependency>
	  relation 169520 -_->
	    a default
	      cpp default "#include in source"
	      classrelation_ref 169520 // <dependency>
	    b parent class_ref 187568 // ObjectRef
	end
      end

      operation 337200 "DataObjectRef"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "init" type class_ref 179760 // BaseInitData
	cpp_decl "    ${comment}${inline}explicit ${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : Inherit(init)
    {
    };
"
	
	
	
	
	comment "* Constructor
        this constructor should be used through the initData() methods"
      end

      operation 337328 "DataObjectRef"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "init" explicit_type "Inherit::InitData"
	cpp_decl "    ${comment}${inline}explicit ${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : Inherit(init)
    {
    };
"
	
	
	
	
	comment "* Constructor
        this constructor should be used through the initData() methods"
      end

      operation 337456 "setValue"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "v" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
		ObjectRef& objRef = *this->beginEdit();
		if(!objRef.setPath(v))
			this->getOwner()->serr << v << \" is not a correct link (Have you forgotten the @ ?)\" << this->getOwner()->sendl;
		this->endEdit();
    };
"
	
	
	
	
      end

      operation 337584 "getValueString"
	const cpp_inline public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
		const ObjectRef& objRef = this->getValue();
		std::ostringstream res;
		res << objRef;
		return res.str();
	};
"
	
	
	
	
      end

      operation 337712 "canBeLinked"
	const cpp_inline public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { 
		return false; 
	};
"
	
	
	
	
	comment "/ Avoid to be considered like object link in parsing"
      end
    end

    class 141104 "BaseContext"
      abstract visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
       *  \\brief Base class for Context classes, storing shared variables and parameters.
       *
       *  A Context contains values or pointers to variables and parameters shared
       *  by a group of objects, typically refering to the same simulated body.
       *  Derived classes can defined simple isolated contexts or more powerful
       *  hierarchical representations (scene-graphs), in which case the context also
       *  implements the BaseNode interface.
       *
       * \\author Jeremie Allard"
      classrelation 162096 // <generalisation>
	relation 162096 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 162096 // <generalisation>
	  b parent class_ref 180784 // typedef13
      end

      classrelation 162224 // <generalisation>
	relation 162224 ---|>
	  a private
	    cpp default "${type}"
	    classrelation_ref 162224 // <generalisation>
	  b parent class_ref 179376 // Base
      end

      class 180912 "SolidTypes"
	visibility package stereotype "typedef" explicit_base_type "defaulttype::SolidTypes<SReal>"
	cpp_decl "${comment}typedef ${type} ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
      end

      class 181040 "Frame"
	visibility package stereotype "typedef" explicit_base_type "SolidTypes::Transform"
	cpp_decl "${comment}typedef ${type} ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
      end

      class 181168 "Vec3"
	visibility package stereotype "typedef" explicit_base_type "SolidTypes::Vec"
	cpp_decl "${comment}typedef ${type} ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
      end

      class 181296 "Quat"
	visibility package stereotype "typedef" explicit_base_type "SolidTypes::Rot"
	cpp_decl "${comment}typedef ${type} ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
      end

      class 181424 "Mat33"
	visibility package stereotype "typedef" explicit_base_type "SolidTypes::Mat"
	cpp_decl "${comment}typedef ${type} ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
      end

      class 181552 "SpatialVector"
	visibility package stereotype "typedef" explicit_base_type "SolidTypes::SpatialVector"
	cpp_decl "${comment}typedef ${type} ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
      end

      operation 271920 "BaseContext"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
	comment "/ @}"
      end

      operation 272048 "~BaseContext"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
      end

      operation 272176 "getDefault"
	class_operation preserve_cpp_body_indent public return_type class_ref 141104 // BaseContext
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Get the default Context object, that contains the default values for
/ all parameters and can be used when no local context is defined."
      end

      class 181680 "SearchDirection"
	visibility package stereotype "enum"
	cpp_decl "${comment}enum ${name} {
${items}
};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	attribute 153776 "SearchUp"
	  public type class_ref 181680 // SearchDirection
	  init_value " -1"
	  cpp_decl "  ${name}${value},${comment}"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 153904 "Local"
	  public type class_ref 181680 // SearchDirection
	  init_value " 0"
	  cpp_decl "  ${name}${value},${comment}"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 154032 "SearchDown"
	  public type class_ref 181680 // SearchDirection
	  init_value " 1"
	  cpp_decl "  ${name}${value},${comment}"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 154160 "SearchRoot"
	  public type class_ref 181680 // SearchDirection
	  init_value " 2 "
	  cpp_decl "  ${name}${value},${comment}"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end
      end

      operation 272304 "isActive"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "////////////////
// Parameters //
////////////////
/// The Context is active

${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ @name Parameters
/ @{
/ The Context is active"
      end

      operation 272432 "is_partition"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 272560 "setActive"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {};
"
	
	
	
	
	comment "/ State of the context"
      end

      operation 272688 "getTime"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "double"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Simulation time"
      end

      operation 272816 "getDt"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "double"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Simulation timestep"
      end

      operation 272944 "getAnimate"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Animation flag"
      end

      operation 273072 "getShowCollisionModels"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Collision Models"
      end

      operation 273200 "getShowBoundingCollisionModels"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Bounding Collision Models"
      end

      operation 273328 "getShowBehaviorModels"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Behavior Models"
      end

      operation 273456 "getShowVisualModels"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Visual Models"
      end

      operation 273584 "getShowMappings"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Mappings"
      end

      operation 273712 "getShowMechanicalMappings"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Mechanical Mappings"
      end

      operation 273840 "getShowForceFields"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: ForceFields"
      end

      operation 273968 "getShowInteractionForceFields"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: InteractionForceFields"
      end

      operation 274096 "getShowWireFrame"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: WireFrame"
      end

      operation 274224 "getShowNormals"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Normals"
      end

      operation 274352 "getShowProcessorColor"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 274480 "getProcessor"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "int"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 274608 "setProcessor"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "int"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {};
"
	
	
	
	
      end

      operation 274736 "getPartition"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "Iterative::IterativePartition"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 274864 "getCurrentLevel"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "int"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Multiresolution

${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Multiresolution support (UNSTABLE)"
      end

      operation 274992 "getCoarsestLevel"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "int"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Multiresolution support (UNSTABLE)"
      end

      operation 275120 "getFinestLevel"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "int"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Multiresolution support (UNSTABLE)"
      end

      operation 275248 "getPositionInWorld"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 181040 // Frame
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "//////////////////////////////
// Local Coordinates System //
//////////////////////////////
/// Projection from the local coordinate system to the world coordinate system.

${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ @}
/ @name Local Coordinate System
/ @{
/ Projection from the local coordinate system to the world coordinate system."
      end

      operation 275376 "setPositionInWorld"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" type class_ref 181040 // Frame
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {};
"
	
	
	
	
	comment "/ Projection from the local coordinate system to the world coordinate system."
      end

      operation 275504 "getVelocityInWorld"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 181552 // SpatialVector
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Spatial velocity (linear, angular) of the local frame with respect to the world"
      end

      operation 275632 "setVelocityInWorld"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" type class_ref 181552 // SpatialVector
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {};
"
	
	
	
	
	comment "/ Spatial velocity (linear, angular) of the local frame with respect to the world"
      end

      operation 275760 "getVelocityBasedLinearAccelerationInWorld"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 181168 // Vec3
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Linear acceleration of the origin induced by the angular velocity of the ancestors"
      end

      operation 275888 "setVelocityBasedLinearAccelerationInWorld"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" type class_ref 181168 // Vec3
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {};
"
	
	
	
	
	comment "/ Linear acceleration of the origin induced by the angular velocity of the ancestors"
      end

      operation 276016 "getLocalGravity"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 181168 // Vec3
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Gravity in the local coordinate system

${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ @}
/ Gravity in local coordinates"
      end

      operation 276144 "getGravityInWorld"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 181168 // Vec3
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Gravity in the world coordinate system

${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/// Gravity in local coordinates
virtual void setGravity( const Vec3& ) { }
/ Gravity in world coordinates"
      end

      operation 276272 "setGravityInWorld"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" type class_ref 181168 // Vec3
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { };
"
	
	
	
	
	comment "/ Gravity in world coordinates"
      end

      operation 276400 "getState"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 128304 // BaseObject
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Degrees-of-Freedom

${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ @name Containers
/ @{
/ Mechanical Degrees-of-Freedom"
      end

      operation 276528 "getMechanicalState"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 128304 // BaseObject
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Mechanical Degrees-of-Freedom"
      end

      operation 276656 "getTopology"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 152496 // Topology
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Topology"
      end

      operation 276784 "getMeshTopology"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 132272 // BaseMeshTopology
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Mesh Topology (unified interface for both static and dynamic topologies)"
      end

      operation 276912 "getMass"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 128304 // BaseObject
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Mass"
      end

      operation 277040 "getShader"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 128304 // BaseObject
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Shader

${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Global Shader "
      end

      operation 277168 "getObject"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "void"
	nparams 2
	  param in name "class_info" type class_ref 177456 // ClassInfo
	  param in name "dir" type class_ref 181680 // SearchDirection
	    defaultvalue "SearchUp"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "////////////////
// Containers //
////////////////
/// Generic object access, possibly searching up or down from the current context
///
/// Note that the template wrapper method should generally be used to have the correct return type,

${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Generic object access, possibly searching up or down from the current context
/
/ Note that the template wrapper method should generally be used to have the correct return type,"
      end

      operation 277296 "getObject"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "void"
	nparams 3
	  param in name "class_info" type class_ref 177456 // ClassInfo
	  param in name "tags" type class_ref 180016 // TagSet
	  param in name "dir" type class_ref 181680 // SearchDirection
	    defaultvalue "SearchUp"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, ${t2} ${p2}${v2}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}, ${t2} ${p2}${)}${const}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Generic object access, given a set of required tags, possibly searching up or down from the current context
/
/ Note that the template wrapper method should generally be used to have the correct return type,"
      end

      operation 277424 "getObject"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "void"
	nparams 2
	  param in name "class_info" type class_ref 177456 // ClassInfo
	  param in name "path" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}, const ${t1} & ${p1}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Generic object access, given a path from the current context
/
/ Note that the template wrapper method should generally be used to have the correct return type,"
      end

      class 181808 "GetObjectsCallBack"
	abstract visibility package 
	cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	operation 277552 "~GetObjectsCallBack"
	  cpp_virtual cpp_inline public explicit_return_type ""
	  nparams 0
	  cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw} {};
"
	  
	  
	  
	  
	end

	operation 277680 "operator ()"
	  abstract cpp_virtual public explicit_return_type "void"
	  nparams 1
	    param inout name "ptr" explicit_type "void"
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	  
	  
	  
	  
	end
      end

      operation 277808 "getObjects"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "void"
	nparams 3
	  param in name "class_info" type class_ref 177456 // ClassInfo
	  param inout name "container" type class_ref 181808 // GetObjectsCallBack
	  param in name "dir" type class_ref 181680 // SearchDirection
	    defaultvalue "SearchUp"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, ${t1} & ${p1}${v1}, ${t2} ${p2}${v2}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, ${t1} & ${p1}, ${t2} ${p2}${)}${const}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Generic list of objects access, possibly searching up or down from the current context
/
/ Note that the template wrapper method should generally be used to have the correct return type,"
      end

      operation 277936 "getObjects"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "void"
	nparams 4
	  param in name "class_info" type class_ref 177456 // ClassInfo
	  param inout name "container" type class_ref 181808 // GetObjectsCallBack
	  param in name "tags" type class_ref 180016 // TagSet
	  param in name "dir" type class_ref 181680 // SearchDirection
	    defaultvalue "SearchUp"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, ${t3} ${p3}${v3}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}, ${t1} & ${p1}, const ${t2} & ${p2}, ${t3} ${p3}${)}${const}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Generic list of objects access, given a set of required tags, possibly searching up or down from the current context
/
/ Note that the template wrapper method should generally be used to have the correct return type,"
      end

      operation 278064 "get"
	stereotype "template"
	const cpp_inline public explicit_return_type "T"
	nparams 1
	  param in name "dir" type class_ref 181680 // SearchDirection
	    defaultvalue "SearchUp"
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        return reinterpret_cast<T*>(this->getObject(classid(T), dir));
    };
"
	
	
	
	
	comment "/ Generic object access template wrapper, possibly searching up or down from the current context"
      end

      operation 278192 "get"
	stereotype "template"
	const cpp_inline public explicit_return_type "void"
	nparams 2
	  param inout name "ptr" explicit_type "T"
	  param in name "dir" type class_ref 181680 // SearchDirection
	    defaultvalue "SearchUp"
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * & ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
        ptr = this->get<T>(dir);
    };
"
	
	
	
	
	comment "/ Generic object access template wrapper, possibly searching up or down from the current context"
      end

      operation 278320 "get"
	stereotype "template"
	const cpp_inline public explicit_return_type "T"
	nparams 2
	  param in name "tag" type class_ref 180144 // Tag
	  param in name "dir" type class_ref 181680 // SearchDirection
	    defaultvalue "SearchUp"
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
        return reinterpret_cast<T*>(this->getObject(classid(T), TagSet(tag), dir));
    };
"
	
	
	
	
	comment "/ Generic object access template wrapper, given a required tag, possibly searching up or down from the current context"
      end

      operation 278448 "get"
	stereotype "template"
	const cpp_inline public explicit_return_type "void"
	nparams 3
	  param inout name "ptr" explicit_type "T"
	  param in name "tag" type class_ref 180144 // Tag
	  param in name "dir" type class_ref 181680 // SearchDirection
	    defaultvalue "SearchUp"
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * & ${p0}${v0}, const ${t1} & ${p1}${v1}, ${t2} ${p2}${v2}${)}${const}${volatile}${throw}${abstract} {
        ptr = this->get<T>(tag, dir);
    };
"
	
	
	
	
	comment "/ Generic object access template wrapper, given a required tag, possibly searching up or down from the current context"
      end

      operation 278576 "get"
	stereotype "template"
	const cpp_inline public explicit_return_type "T"
	nparams 2
	  param in name "tags" type class_ref 180016 // TagSet
	  param in name "dir" type class_ref 181680 // SearchDirection
	    defaultvalue "SearchUp"
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
        return reinterpret_cast<T*>(this->getObject(classid(T), tags, dir));
    };
"
	
	
	
	
	comment "/ Generic object access template wrapper, given a set of required tags, possibly searching up or down from the current context"
      end

      operation 278704 "get"
	stereotype "template"
	const cpp_inline public explicit_return_type "void"
	nparams 3
	  param inout name "ptr" explicit_type "T"
	  param in name "tags" type class_ref 180016 // TagSet
	  param in name "dir" type class_ref 181680 // SearchDirection
	    defaultvalue "SearchUp"
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * & ${p0}${v0}, const ${t1} & ${p1}${v1}, ${t2} ${p2}${v2}${)}${const}${volatile}${throw}${abstract} {
        ptr = this->get<T>(tags, dir);
    };
"
	
	
	
	
	comment "/ Generic object access template wrapper, given a set of required tags, possibly searching up or down from the current context"
      end

      operation 278832 "get"
	stereotype "template"
	const cpp_inline public explicit_return_type "T"
	nparams 1
	  param in name "path" explicit_type "std::string"
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        return reinterpret_cast<T*>(this->getObject(classid(T), path));
    };
"
	
	
	
	
	comment "/ Generic object access template wrapper, given a path from the current context"
      end

      operation 278960 "get"
	stereotype "template"
	const cpp_inline public explicit_return_type "void"
	nparams 2
	  param inout name "ptr" explicit_type "T"
	  param in name "path" explicit_type "std::string"
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * & ${p0}${v0}, const ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
        ptr = this->get<T>(path);
    };
"
	
	
	
	
	comment "/ Generic object access template wrapper, given a path from the current context"
      end

      class 181936 "GetObjectsCallBackT"
	visibility package 
	nformals 2
	formal name "T" type "class" explicit_default_value ""
	  explicit_extends ""
	formal name "Container" type "class" explicit_default_value ""
	  explicit_extends ""
	cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	classrelation 162352 // <generalisation>
	  relation 162352 ---|>
	    a public
	      cpp default "${type}"
	      classrelation_ref 162352 // <generalisation>
	    b parent class_ref 181808 // GetObjectsCallBack
	end

	attribute 154288 "dest"
	  public explicit_type "Container"
	  cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	operation 279088 "GetObjectsCallBackT"
	  cpp_inline public explicit_return_type ""
	  nparams 1
	    param inout name "d" explicit_type "Container"
	  cpp_decl "    ${comment}${inline}${name}${(}${t0} * ${p0}${v0}${)}${volatile}${throw} : dest(d) {};
"
	  
	  
	  
	  
	end

	operation 279216 "operator ()"
	  cpp_virtual cpp_inline public explicit_return_type "void"
	  nparams 1
	    param inout name "ptr" explicit_type "void"
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
            dest->push_back(reinterpret_cast<T*>(ptr));
        };
"
	  
	  
	  
	  
	end
      end

      operation 279344 "get"
	stereotype "template"
	const cpp_inline public explicit_return_type "void"
	nparams 2
	  param inout name "list" explicit_type "Container"
	  param in name "dir" type class_ref 181680 // SearchDirection
	    defaultvalue "SearchUp"
	cpp_decl "    ${comment}template<class Ttemplate<class Container>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
        GetObjectsCallBackT<T,Container> cb(list);
        this->getObjects(classid(T), cb, dir);
    };
"
	
	
	
	
	comment "/ Generic list of objects access template wrapper, possibly searching up or down from the current context"
      end

      operation 279472 "get"
	stereotype "template"
	const cpp_inline public explicit_return_type "void"
	nparams 3
	  param inout name "list" explicit_type "Container"
	  param in name "tag" type class_ref 180144 // Tag
	  param in name "dir" type class_ref 181680 // SearchDirection
	    defaultvalue "SearchUp"
	cpp_decl "    ${comment}template<class Ttemplate<class Container>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, const ${t1} & ${p1}${v1}, ${t2} ${p2}${v2}${)}${const}${volatile}${throw}${abstract} {
        GetObjectsCallBackT<T,Container> cb(list);
        this->getObjects(classid(T), cb, TagSet(tag), dir);
    };
"
	
	
	
	
	comment "/ Generic list of objects access template wrapper, given a required tag, possibly searching up or down from the current context"
      end

      operation 279600 "get"
	stereotype "template"
	const cpp_inline public explicit_return_type "void"
	nparams 3
	  param inout name "list" explicit_type "Container"
	  param in name "tags" type class_ref 180016 // TagSet
	  param in name "dir" type class_ref 181680 // SearchDirection
	    defaultvalue "SearchUp"
	cpp_decl "    ${comment}template<class Ttemplate<class Container>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, const ${t1} & ${p1}${v1}, ${t2} ${p2}${v2}${)}${const}${volatile}${throw}${abstract} {
        GetObjectsCallBackT<T,Container> cb(list);
        this->getObjects(classid(T), cb, tags, dir);
    };
"
	
	
	
	
	comment "/ Generic list of objects access template wrapper, given a set of required tags, possibly searching up or down from the current context"
      end

      operation 279728 "setDt"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "double"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { };
"
	
	
	
	
	comment "/ @}
/ @name Parameters Setters
/ @{
/ Simulation timestep"
      end

      operation 279856 "setAnimate"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { };
"
	
	
	
	
	comment "/ Animation flag"
      end

      operation 279984 "setShowCollisionModels"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { };
"
	
	
	
	
	comment "/ Display flags: Collision Models"
      end

      operation 280112 "setShowBoundingCollisionModels"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { };
"
	
	
	
	
	comment "/ Display flags: Bounding Collision Models"
      end

      operation 280240 "setShowBehaviorModels"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { };
"
	
	
	
	
	comment "/ Display flags: Behavior Models"
      end

      operation 280368 "setShowVisualModels"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { };
"
	
	
	
	
	comment "/ Display flags: Visual Models"
      end

      operation 280496 "setShowMappings"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { };
"
	
	
	
	
	comment "/ Display flags: Mappings"
      end

      operation 280624 "setShowMechanicalMappings"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { };
"
	
	
	
	
	comment "/ Display flags: Mechanical Mappings"
      end

      operation 280752 "setShowForceFields"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { };
"
	
	
	
	
	comment "/ Display flags: ForceFields"
      end

      operation 280880 "setShowInteractionForceFields"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { };
"
	
	
	
	
	comment "/ Display flags: InteractionForceFields"
      end

      operation 281008 "setShowWireFrame"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { };
"
	
	
	
	
	comment "/ Display flags: WireFrame"
      end

      operation 281136 "setShowNormals"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { };
"
	
	
	
	
	comment "/ Display flags: Normals"
      end

      operation 281264 "setShowProcessorColor"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { };
"
	
	
	
	
      end

      operation 281392 "setCurrentLevel"
	cpp_virtual cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "" explicit_type "int"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
	  return false;
	};
"
	
	
	
	
	comment "/ Multiresolution support (UNSTABLE) : Set the current level, return false if l >= coarsestLevel"
      end

      operation 281520 "setCoarsestLevel"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "int"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {};
"
	
	
	
	
	comment "/ Multiresolution support (UNSTABLE)"
      end

      operation 281648 "setFinestLevel"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "" explicit_type "int"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {};
"
	
	
	
	
	comment "/ Multiresolution support (UNSTABLE)"
      end

      operation 281776 "setMechanicalState"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param inout name "" type class_ref 128304 // BaseObject
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { };
"
	
	
	
	
	comment "/ @}
/ @name Variables Setters
/ @{
/ Mechanical Degrees-of-Freedom"
      end

      operation 281904 "setTopology"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param inout name "" type class_ref 128304 // BaseObject
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { };
"
	
	
	
	
	comment "/ Topology"
      end

      operation 282032 "hasAncestor"
	const cpp_virtual cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "" type class_ref 141104 // BaseContext
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
            return false;
        };
"
	
	
	
	
	comment "/ @}
/ Test if the given context is an ancestor of this context.
/ An ancestor is a parent or (recursively) the parent of an ancestor.
/
/ This method is an alias to BaseNode::hasAncestor, so that dynamic
/ casts are not required to test relationships between contexts."
      end

      operation 282160 "addObject"
	cpp_virtual cpp_inline public explicit_return_type "bool"
	nparams 1
	  param inout name "" type class_ref 128304 // BaseObject
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
	  return false;
	};
"
	
	
	
	
	comment "/ @name Adding/Removing objects. Note that these methods can fail if the context doesn't support attached objects
/ @{
/ Add an object, or return false if not supported"
      end

      operation 282288 "removeObject"
	cpp_virtual cpp_inline public explicit_return_type "bool"
	nparams 1
	  param inout name "" type class_ref 128304 // BaseObject
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
	  return false;
	};
"
	
	
	
	
	comment "/ Remove an object, or return false if not supported"
      end

      operation 282416 "executeVisitor"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param inout name "" explicit_type "simulation::Visitor"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ @}
/ @name Visitors.
/ @{
/ apply an action"
      end

      operation 282544 "propagateEvent"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 2
	  param inout name "" type class_ref 182064 // Event
	  param in name "params" type class_ref 132912 // ExecParams
	    defaultvalue "core::ExecParams::defaultInstance() "
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, const ${t1} * ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}, const ${t1} * ${p1}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Propagate an event "
      end

      operation 282672 "operator <<"
	preserve_cpp_body_indent friend public explicit_return_type "std::ostream"
	nparams 2
	  param inout name "out" explicit_type "std::ostream"
	  param in name "c" type class_ref 141104 // BaseContext
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} & ${class}::${name}${(}${t0} & ${p0}, const ${t1} & ${p1}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ @}"
      end
    end

    class 141232 "BaseObjectDescription"
      abstract visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 *  \\brief Base Interface for classes containing the description of an object, used to construct it.
 *
 *  This class defines what informations are used as input (read from a file for instance) to create an object.
 *  This default implementation simply stores an attributes map and does not support any hierarchy.
 *"
      class 182576 "Attribute"
	visibility package 
	cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	attribute 157104 "value"
	  protected explicit_type "std::string"
	  cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 157232 "accessed"
	  protected explicit_type "bool"
	  cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	operation 294064 "Attribute"
	  cpp_inline public explicit_return_type ""
	  nparams 0
	  cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw} : accessed(false) {};
"
	  
	  
	  
	  
	end

	operation 294192 "Attribute"
	  cpp_inline public explicit_return_type ""
	  nparams 1
	    param in name "v" explicit_type "std::string"
	  cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : value(v), accessed(false) {};
"
	  
	  
	  
	  
	end

	operation 294320 "operator ="
	  cpp_inline public explicit_return_type "void"
	  nparams 1
	    param in name "v" explicit_type "std::string"
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { value = v; };
"
	  
	  
	  
	  
	end

	operation 294448 "operator ="
	  cpp_inline public explicit_return_type "void"
	  nparams 1
	    param in name "v" explicit_type "char"
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { value = v; };
"
	  
	  
	  
	  
	end

	operation 294576 "operator std::string"
	  cpp_inline public explicit_return_type ""
	  nparams 0
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${name}${(}${)}${const}${volatile}${throw}${abstract} { accessed = true; return value; };
"
	  
	  
	  
	  
	end

	operation 294704 "c_str"
	  cpp_inline public explicit_return_type "char"
	  nparams 0
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { accessed = true; return value.c_str(); };
"
	  
	  
	  
	  
	end

	operation 294832 "isAccessed"
	  cpp_inline public explicit_return_type "bool"
	  nparams 0
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { return accessed; };
"
	  
	  
	  
	  
	end

	operation 294960 "setAccessed"
	  cpp_inline public explicit_return_type "void"
	  nparams 1
	    param in name "v" explicit_type "bool"
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { accessed = v; };
"
	  
	  
	  
	  
	end
      end

      class 182704 "AttributeMap"
	visibility package stereotype "typedef" base_type class_ref 182576 // Attribute
	cpp_decl "${comment}typedef std::map<std::string,${type}> ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	classrelation 164016 // <dependency>
	  relation 164016 -_->
	    a default
	      cpp default "#include in source"
	      classrelation_ref 164016 // <dependency>
	    b parent class_ref 182576 // Attribute
	end
      end

      operation 295088 "BaseObjectDescription"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param in name "name" explicit_type "char"
	    defaultvalue "NULL"
	  param in name "type" explicit_type "char"
	    defaultvalue "NULL"
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} * ${p0}${v0}, const ${t1} * ${p1}${v1}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}const ${t0} * ${p0}, const ${t1} * ${p1}${)}${throw}{
  ${body}}
"
	
	
	
	
      end

      operation 295216 "~BaseObjectDescription"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
      end

      operation 295344 "getObject"
	preserve_cpp_body_indent cpp_virtual public return_type class_ref 179376 // Base
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Get the associated object (or NULL if it is not created yet)"
      end

      operation 295472 "getName"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Get the object instance name"
      end

      operation 295600 "getParent"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 141232 // BaseObjectDescription
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Get the parent node"
      end

      operation 295728 "getBaseFile"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Get the file where this description was read from. Useful to resolve relative file paths."
      end

      operation 295856 "getAttributeList"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param inout name "container" explicit_type "T"
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        for (AttributeMap::iterator it = attributes.begin();
            it != attributes.end(); ++it)
            container.push_back(it->first);
    };
"
	
	
	
	
	comment "/// Get all attribute data, read-only
virtual const AttributeMap& getAttributeMap() const;
/// Get list of all attributes"
      end

      operation 295984 "find"
	preserve_cpp_body_indent cpp_virtual public return_type class_ref 141232 // BaseObjectDescription
	nparams 2
	  param in name "nodeName" explicit_type "char"
	  param in name "absolute" explicit_type "bool"
	    defaultvalue "false"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} * ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "///// Get all attribute data, read-only
//const BaseObjectDescription::AttributeMap& BaseObjectDescription::getAttributeMap() const
//{
//    return attributes;
//}
/// Find an object description given its name (relative to this object)

${inline}${type} * ${class}::${name}${(}const ${t0} * ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Find an object description given its name (relative to this object)"
      end

      operation 296112 "findObject"
	preserve_cpp_body_indent cpp_virtual public return_type class_ref 179376 // Base
	nparams 1
	  param in name "nodeName" explicit_type "char"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Find an object given its name

${inline}${type} * ${class}::${name}${(}const ${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Find an object given its name (relative to this object)"
      end

      operation 296240 "getAttribute"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "char"
	nparams 2
	  param in name "attr" explicit_type "std::string"
	  param in name "defaultVal" explicit_type "char"
	    defaultvalue "NULL"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} * ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}const ${type} * ${class}::${name}${(}const ${t0} & ${p0}, const ${t1} * ${p1}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Get an attribute given its name (return defaultVal if not present)"
      end

      operation 296368 "removeAttribute"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "bool"
	nparams 1
	  param in name "attr" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Remove an attribute given its name"
      end

      operation 296496 "getFullName"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Get the full name of this object (i.e. concatenation if all the names of its ancestors and itself)"
      end

      operation 296624 "logWarning"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "s" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {warnings.push_back(s);};
"
	
	
	
	
      end

      classrelation 164144 // attributes (<directional composition>)
	relation 164144 *-->
	  a role_name "attributes" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	    classrelation_ref 164144 // attributes (<directional composition>)
	  b parent class_ref 182704 // AttributeMap
      end

      attribute 157360 "warnings"
	protected explicit_type " std::string "
	stereotype "std::vector"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end
    end

    class 141360 "BaseClass"
      abstract visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 *  \\brief Class hierarchy reflection base class
 *
 *  This class provides information on the class and parent classes of components.
 *  It is created by using the SOFA_CLASS macro on each new class declaration.
 *  All classes deriving from Base should use the SOFA_CLASS macro within their declaration.
 *"
      operation 270128 "BaseClass"
	preserve_cpp_body_indent protected explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
      end

      operation 270256 "~BaseClass"
	preserve_cpp_body_indent cpp_virtual protected explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
      end

      attribute 153392 "namespaceName"
	public explicit_type "std::string"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 153520 "className"
	public explicit_type "std::string"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 153648 "templateName"
	public explicit_type "std::string"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      classrelation 161840 // parents (<unidirectional association>)
	relation 161840 --->
	  stereotype "helper::vector"
	  a role_name "parents" public
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<const ${type}*> ${name}${value};
"
	    classrelation_ref 161840 // parents (<unidirectional association>)
	  b parent class_ref 141360 // BaseClass
      end

      operation 270384 "hasParent"
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "c" type class_ref 141360 // BaseClass
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        if (*this == *c) return true;
        for (unsigned int i=0;i<parents.size();++i)
            if (parents[i]->hasParent(c)) return true;
        return false;
    };
"
	
	
	
	
      end

      operation 270512 "operator =="
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "c" type class_ref 141360 // BaseClass
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        if (this == &c) return true;
        return (this->namespaceName == c.namespaceName)
            && (this->className == c.className)
            && (this->templateName == c.templateName);
    };
"
	
	
	
	
      end

      operation 270640 "operator !="
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "c" type class_ref 141360 // BaseClass
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        return !((*this)==c);
    };
"
	
	
	
	
      end
    end

    class 170032 "Data"
      visibility package 
      nformals 1
      formal name "T" type "class" explicit_default_value "void*"
        explicit_extends ""
      nactuals 1
      actual class class_ref 183856 // TData
        rank 0 explicit_value "T"
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "    T& value()
    {
        return *beginEdit();
    }
*
 *  \\brief Container of data, readable and writable from/to a string.
 *"
      class 179888 "InitData"
	visibility package 
	cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	classrelation 166448 // <generalisation>
	  relation 166448 ---|>
	    a public
	      cpp default "${type}"
	      classrelation_ref 166448 // <generalisation>
	    b parent class_ref 179760 // BaseInitData
	end

	operation 317232 "InitData"
	  cpp_inline public explicit_return_type ""
	  nparams 0
	  cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw} : value(T()) {};
"
	  
	  
	  
	  
	end

	operation 317360 "InitData"
	  cpp_inline public explicit_return_type ""
	  nparams 1
	    param in name "v" explicit_type "T"
	  cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : value(v) {};
"
	  
	  
	  
	  
	end

	operation 317488 "InitData"
	  cpp_inline public explicit_return_type ""
	  nparams 1
	    param in name "i" type class_ref 179760 // BaseInitData
	  cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : BaseData::BaseInitData(i), value(T()) {};
"
	  
	  
	  
	  
	end

	attribute 160816 "value"
	  public explicit_type "T"
	  cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end
      end

      classrelation 166320 // <generalisation>
	relation 166320 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 166320 // <generalisation>
	  b parent class_ref 183856 // TData
      end

      operation 317616 "Data"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "init" type class_ref 179760 // BaseInitData
	cpp_decl "    ${comment}${inline}explicit ${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : TData<T>(init)
    , shared(NULL)
    {
    };
"
	
	
	
	
	comment "* Constructor
        this constructor should be used through the initData() methods"
      end

      operation 317744 "Data"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "init" type class_ref 179888 // InitData
	cpp_decl "    ${comment}${inline}explicit ${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : TData<T>(init)
    , m_value(init.value)
    , shared(NULL)
    {
    };
"
	
	
	
	
	comment "* Constructor
        this constructor should be used through the initData() methods"
      end

      operation 317872 "Data"
	cpp_inline public explicit_return_type ""
	nparams 5
	  param in name "helpMsg" explicit_type "char"
	    defaultvalue "0"
	  param in name "isDisplayed" explicit_type "bool"
	    defaultvalue "true"
	  param in name "isReadOnly" explicit_type "bool"
	    defaultvalue "false"
	  param inout name "owner" type class_ref 179376 // Base
	    defaultvalue "NULL"
	  param in name "name" explicit_type "char"
	    defaultvalue "\"\""
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} * ${p0}${v0}, ${t1} ${p1}${v1}, ${t2} ${p2}${v2}, ${t3} * ${p3}${v3}, const ${t4} * ${p4}${v4}${)}${volatile}${throw} : TData<T>(helpMsg, isDisplayed, isReadOnly, owner, name)
    , m_value(T())// BUGFIX (Jeremie A.): Force initialization of basic types to 0 (bool, int, float, etc).
    , shared(NULL)
    {

    };
"
	
	
	
	
	comment "* Constructor
    \\param helpMsg help on the field"
      end

      operation 318000 "Data"
	cpp_inline public explicit_return_type ""
	nparams 6
	  param in name "value" explicit_type "T"
	  param in name "helpMsg" explicit_type "char"
	    defaultvalue "0"
	  param in name "isDisplayed" explicit_type "bool"
	    defaultvalue "true"
	  param in name "isReadOnly" explicit_type "bool"
	    defaultvalue "false"
	  param inout name "owner" type class_ref 179376 // Base
	    defaultvalue "NULL"
	  param in name "name" explicit_type "char"
	    defaultvalue "\"\""
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}${v0}, const ${t1} * ${p1}${v1}, ${t2} ${p2}${v2}, ${t3} ${p3}${v3}, ${t4} * ${p4}${v4}, const ${t5} * ${p5}${v5}${)}${volatile}${throw} : TData<T>(helpMsg, isDisplayed, isReadOnly, owner, name)
    , m_value(value)
    , shared(NULL)
    {
    };
"
	
	
	
	
	comment "* Constructor
    \\param value default value
    \\param helpMsg help on the field"
      end

      operation 318128 "Data"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "d" type class_ref 170032 // Data
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : TData<T>()
    , m_value(d.getValue())
    , shared(NULL)
    {
    };
"
	
	
	
	
      end

      operation 318256 "~Data"
	cpp_virtual cpp_inline public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw} {};
"
	
	
	
	
      end

      operation 318384 "beginEdit"
	cpp_inline public explicit_return_type "T"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        this->updateIfDirty();
        ++this->m_counter;
		this->m_isSet = true;
        BaseData::setDirtyOutputs();
        return m_value.beginEdit();
    };
"
	
	
	
	
      end

      operation 318512 "endEdit"
	cpp_inline public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        m_value.endEdit();
    };
"
	
	
	
	
      end

      operation 318640 "setValue"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "T"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        *beginEdit()=value;
        endEdit();
    };
"
	
	
	
	
      end

      operation 318768 "getValue"
	const cpp_inline public explicit_return_type "T"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        this->updateIfDirty();
        return m_value.getValue();
    };
"
	
	
	
	
      end

      operation 318896 "virtualGetValue"
	const cpp_virtual cpp_inline public explicit_return_type "T"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract} { return getValue(); };
"
	
	
	
	
      end

      operation 319024 "virtualSetValue"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "v" explicit_type "T"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { setValue(v); };
"
	
	
	
	
      end

      operation 319152 "virtualSetLink"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "bd" type class_ref 179632 // BaseData
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        const Data<T>* d = dynamic_cast< const Data<T>* >(&bd);
        if (d)
            this->m_value = d->m_value;
    };
"
	
	
	
	
      end

      operation 319280 "virtualBeginEdit"
	cpp_virtual cpp_inline public explicit_return_type "T"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return beginEdit(); };
"
	
	
	
	
      end

      operation 319408 "virtualEndEdit"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { endEdit(); };
"
	
	
	
	
      end

      operation 319536 "operator <<"
	friend cpp_inline public explicit_return_type "std::ostream"
	nparams 2
	  param inout name "out" explicit_type "std::ostream"
	  param in name "df" type class_ref 170032 // Data
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
        out<<df.getValue();
        return out;
    };
"
	
	
	
	
      end

      operation 319664 "operator =="
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "value" explicit_type "T"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        return getValue()==value;
    };
"
	
	
	
	
      end

      operation 319792 "operator !="
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "value" explicit_type "T"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        return getValue()!=value;
    };
"
	
	
	
	
      end

      operation 319920 "operator ="
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "T"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        this->setValue(value);
    };
"
	
	
	
	
      end

      attribute 160944 "m_value"
	protected explicit_type "T, sofa::defaulttype::DataTypeInfo<T>::CopyOnWrite"
	stereotype "DataContainer"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 161072 "shared"
	public explicit_type "void"
	cpp_mutable cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end
    end

    class 177456 "ClassInfo"
      abstract visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 *  \\brief Meta information class
 *
 *  This class contains reflection-like features to analyse a class deriving from Base
 *"
      attribute 157488 "pt"
	const_attribute protected explicit_type "std::type_info"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      operation 302512 "ClassInfo"
	cpp_inline protected explicit_return_type ""
	nparams 1
	  param in name "ti" explicit_type "std::type_info"
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} * ${p0}${v0}${)}${volatile}${throw} : pt(ti)
    {
        classes[sofa::helper::TypeInfo(*ti)] = this;
    };
"
	
	
	
	
      end

      operation 302640 "~ClassInfo"
	cpp_virtual cpp_inline protected explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw} {
    };
"
	
	
	
	
      end

      operation 302768 "name"
	const cpp_inline public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { return pt->name(); };
"
	
	
	
	
      end

      operation 302896 "operator conststd::type_info&"
	const cpp_inline public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${name}${(}${)}${const}${volatile}${throw}${abstract} { return *pt; };
"
	
	
	
	
      end

      operation 303024 "type"
	const cpp_inline public explicit_return_type "helper::TypeInfo"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { return sofa::helper::TypeInfo(*pt); };
"
	
	
	
	
      end

      operation 303152 "operator =="
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "t" type class_ref 177456 // ClassInfo
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { return *pt == *t.pt; };
"
	
	
	
	
      end

      operation 303280 "operator !="
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "t" type class_ref 177456 // ClassInfo
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { return *pt != *t.pt; };
"
	
	
	
	
      end

      operation 303408 "operator <"
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "t" type class_ref 177456 // ClassInfo
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { return (pt->before(*t.pt)!=0); };
"
	
	
	
	
      end

      operation 303536 "operator <"
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "t" type class_ref 177456 // ClassInfo
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { return pt->before(*t.pt); };
"
	
	
	
	
      end

      operation 303664 "dynamicCast"
	abstract const cpp_virtual public explicit_return_type "void"
	nparams 1
	  param inout name "obj" type class_ref 179376 // Base
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
      end

      operation 303792 "isInstance"
	const cpp_virtual cpp_inline public explicit_return_type "bool"
	nparams 1
	  param inout name "obj" type class_ref 179376 // Base
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        return dynamicCast(obj) != NULL;
    };
"
	
	
	
	
      end

      classrelation 164272 // classes (<unidirectional association>)
	relation 164272 --->
	  stereotype "std::map"
	  a role_name "classes" class_relation protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<sofa::helper::TypeInfo,${type}*> ${name}${value};
"
	    classrelation_ref 164272 // classes (<unidirectional association>)
	  b parent class_ref 177456 // ClassInfo
      end
    end

    class 178736 "DataFileName"
      visibility package 
      nactuals 1
      actual class class_ref 170032 // Data
        rank 0 explicit_value "std::string"
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 *  \\brief Data specialized to store filenames, potentially relative to the current directory at the time it was specified.
 *"
      classrelation 167088 // <realization>
	relation 167088 -_-|>
	  stereotype "bind"
	  a public
	    cpp default "${type}"
	    classrelation_ref 167088 // <realization>
	  b parent class_ref 170032 // Data
      end

      class 185776 "Inherit"
	visibility package stereotype "typedef" explicit_base_type "sofa::core::objectmodel::Data<std::string>"
	cpp_decl "${comment}typedef ${type} ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
      end

      operation 320560 "DataFileName"
	cpp_inline public explicit_return_type ""
	nparams 3
	  param in name "helpMsg" explicit_type "char"
	    defaultvalue "0"
	  param in name "isDisplayed" explicit_type "bool"
	    defaultvalue "true"
	  param in name "isReadOnly" explicit_type "bool"
	    defaultvalue "false "
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} * ${p0}${v0}, ${t1} ${p1}${v1}, ${t2} ${p2}${v2}${)}${volatile}${throw} : Inherit(helpMsg, isDisplayed, isReadOnly)
    {
    };
"
	
	
	
	
      end

      operation 320688 "DataFileName"
	cpp_inline public explicit_return_type ""
	nparams 4
	  param in name "value" explicit_type "std::string"
	  param in name "helpMsg" explicit_type "char"
	    defaultvalue "0"
	  param in name "isDisplayed" explicit_type "bool"
	    defaultvalue "true"
	  param in name "isReadOnly" explicit_type "bool"
	    defaultvalue "false "
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}${v0}, const ${t1} * ${p1}${v1}, ${t2} ${p2}${v2}, ${t3} ${p3}${v3}${)}${volatile}${throw} : Inherit(value, helpMsg, isDisplayed, isReadOnly)
    {
	updatePath();
    };
"
	
	
	
	
      end

      operation 320816 "DataFileName"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "d" type class_ref 185776 // Inherit
	cpp_decl "    ${comment}${inline}explicit ${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : Inherit(d)
    {
	updatePath();
    };
"
	
	
	
	
      end

      operation 320944 "DataFileName"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "init" type class_ref 179760 // BaseInitData
	cpp_decl "    ${comment}${inline}explicit ${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : Inherit(init)
    {
    };
"
	
	
	
	
	comment "* Constructor
        this constructor should be used through the initData() methods"
      end

      operation 321072 "DataFileName"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "init" explicit_type "Inherit::InitData"
	cpp_decl "    ${comment}${inline}explicit ${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : Inherit(init)
    {
    };
"
	
	
	
	
	comment "* Constructor
        this constructor should be used through the initData() methods"
      end

      operation 321200 "~DataFileName"
	cpp_virtual cpp_inline public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw} {
    };
"
	
	
	
	
      end

      operation 321328 "endEdit"
	cpp_inline public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        updatePath();
        Inherit::endEdit();
    };
"
	
	
	
	
      end

      operation 321456 "setValue"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "v" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        *beginEdit()=v;
        endEdit();
    };
"
	
	
	
	
      end

      operation 321584 "virtualSetValue"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "v" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { setValue(v); };
"
	
	
	
	
      end

      operation 321712 "read"
	cpp_virtual cpp_inline public explicit_return_type "bool"
	nparams 1
	  param inout name "s" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
	bool ret = Inherit::read(s);
	if (ret) updatePath();
	return ret;
    };
"
	
	
	
	
      end

      operation 321840 "getRelativePath"
	const cpp_virtual cpp_inline public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract} { return getValue(); };
"
	
	
	
	
      end

      operation 321968 "getFullPath"
	const cpp_virtual cpp_inline public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        this->updateIfDirty();
        return fullpath;
    };
"
	
	
	
	
      end

      operation 322096 "getAbsolutePath"
	const cpp_virtual cpp_inline public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        this->updateIfDirty();
        return fullpath;
    };
"
	
	
	
	
      end

      operation 322224 "update"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        this->Inherit::update();
        this->updatePath();
    };
"
	
	
	
	
      end

      operation 322352 "updatePath"
	preserve_cpp_body_indent protected explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      attribute 161200 "fullpath"
	protected explicit_type "std::string"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end
    end

    class 179376 "Base"
      abstract visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 *  \\brief Base class for everything
 *
 *  This class contains all functionnality shared by every objects in SOFA.
 *  Most importantly it defines how to retrieve information about an object (name, type, data fields).
 *  All classes deriving from Base should use the SOFA_CLASS macro within their declaration (see BaseClass.h).
 *"
      class 179504 "MyClass"
	visibility package stereotype "typedef" base_type class_ref 179376 // Base
	cpp_decl "${comment}typedef TClass<${type},void> ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	classrelation 161328 // <dependency>
	  relation 161328 -_->
	    a default
	      cpp default "#include in source"
	      classrelation_ref 161328 // <dependency>
	    b parent class_ref 179376 // Base
	end
      end

      operation 264496 "GetClass"
	class_operation cpp_inline public return_type class_ref 179504 // MyClass
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return MyClass::get(); };
"
	
	
	
	
      end

      operation 264624 "getClass"
	const cpp_virtual cpp_inline public return_type class_ref 141360 // BaseClass
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return GetClass(); };
"
	
	
	
	
      end

      operation 264752 "Base"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}
: name(initData(&name,std::string(\"unnamed\"),\"name\",\"object name\"))
, f_printLog(initData(&f_printLog, false, \"printLog\", \"if true, print logs at run-time\"))
, f_tags(initData( &f_tags, \"tags\", \"list of the subsets the objet belongs to\"))
${throw}{
  ${body}}
"
	
	
	
	
      end

      operation 264880 "~Base"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
      end

      operation 265008 "Base"
	private explicit_return_type ""
	nparams 1
	  param in name "b" type class_ref 179376 // Base
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}${throw}{
  ${body}}
"
	
	
	
	
	comment "/ Copy constructor is not allowed"
      end

      operation 265136 "getName"
	preserve_cpp_body_indent const public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Accessor to the object name"
      end

      operation 265264 "setName"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param in name "na" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Set the name of this object"
      end

      operation 265392 "getTypeName"
	const cpp_virtual cpp_inline public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        return decodeTypeName(typeid(*this));
    };
"
	
	
	
	
	comment "/ Get the type name of this object (i.e. class and template types)"
      end

      operation 265520 "getClassName"
	const cpp_virtual cpp_inline public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        return decodeClassName(typeid(*this));
    };
"
	
	
	
	
	comment "/ Get the class name of this object"
      end

      operation 265648 "getTemplateName"
	const cpp_virtual cpp_inline public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        return decodeTemplateName(typeid(*this));
    };
"
	
	
	
	
	comment "/ Get the template type names (if any) used to instantiate this object"
      end

      operation 265776 "decodeFullName"
	class_operation preserve_cpp_body_indent public explicit_return_type "std::string"
	nparams 1
	  param in name "t" explicit_type "std::type_info"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Helper method to decode the type name"
      end

      operation 265904 "decodeTypeName"
	class_operation preserve_cpp_body_indent public explicit_return_type "std::string"
	nparams 1
	  param in name "t" explicit_type "std::type_info"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Decode the type's name to a more readable form if possible

${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Helper method to decode the type name to a more readable form if possible"
      end

      operation 266032 "decodeClassName"
	class_operation preserve_cpp_body_indent public explicit_return_type "std::string"
	nparams 1
	  param in name "t" explicit_type "std::type_info"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Extract the class name (removing namespaces and templates)

${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Helper method to extract the class name (removing namespaces and templates)"
      end

      operation 266160 "decodeNamespaceName"
	class_operation preserve_cpp_body_indent public explicit_return_type "std::string"
	nparams 1
	  param in name "t" explicit_type "std::type_info"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Extract the namespace (removing class name and templates)

${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Helper method to extract the namespace (removing class name and templates)"
      end

      operation 266288 "decodeTemplateName"
	class_operation preserve_cpp_body_indent public explicit_return_type "std::string"
	nparams 1
	  param in name "t" explicit_type "std::type_info"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Decode the template name (removing namespaces and class name)

${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Helper method to extract the template name (removing namespaces and class name)"
      end

      operation 266416 "typeName"
	stereotype "template"
	class_operation cpp_inline public explicit_return_type "std::string"
	nparams 1
	  param in name "" explicit_type "T"
	    defaultvalue "NULL"
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        return decodeTypeName(typeid(T));
    };
"
	
	
	
	
	comment "/ Helper method to get the type name of a type derived from this class
/
/ This method should be used as follow :
/ \\code  T* ptr = NULL; std::string type = T::typeName(ptr); \\endcode
/ This way derived classes can redefine the typeName method"
      end

      operation 266544 "className"
	stereotype "template"
	class_operation cpp_inline public explicit_return_type "std::string"
	nparams 1
	  param in name "" explicit_type "T"
	    defaultvalue "NULL"
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        return decodeClassName(typeid(T));
    };
"
	
	
	
	
	comment "/ Helper method to get the class name of a type derived from this class
/
/ This method should be used as follow :
/ \\code  T* ptr = NULL; std::string type = T::className(ptr); \\endcode
/ This way derived classes can redefine the className method"
      end

      operation 266672 "namespaceName"
	stereotype "template"
	class_operation cpp_inline public explicit_return_type "std::string"
	nparams 1
	  param in name "" explicit_type "T"
	    defaultvalue "NULL"
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        return decodeNamespaceName(typeid(T));
    };
"
	
	
	
	
	comment "/ Helper method to get the namespace name of a type derived from this class
/
/ This method should be used as follow :
/ \\code  T* ptr = NULL; std::string type = T::namespaceName(ptr); \\endcode
/ This way derived classes can redefine the namespaceName method"
      end

      operation 266800 "templateName"
	stereotype "template"
	class_operation cpp_inline public explicit_return_type "std::string"
	nparams 1
	  param in name "" explicit_type "T"
	    defaultvalue "NULL"
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        return decodeTemplateName(typeid(T));
    };
"
	
	
	
	
	comment "/ Helper method to get the template name of a type derived from this class
/
/ This method should be used as follow :
/ \\code  T* ptr = NULL; std::string type = T::templateName(ptr); \\endcode
/ This way derived classes can redefine the templateName method"
      end

      operation 266928 "parseFields"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param in name "str" explicit_type "std::list<std::string>"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Assign the field values stored in the given list of name + value pairs of strings"
      end

      operation 267056 "parseFields"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "args" explicit_type "std::map<std::string,std::string*>"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Assign the field values stored in the given map of name -> value pairs"
      end

      operation 267184 "writeDatas"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param inout name "args" explicit_type "std::map<std::string,std::string*>"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Write the current field values to the given map of name -> value pairs"
      end

      operation 267312 "xmlWriteNodeDatas"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 2
	  param inout name "out" explicit_type "std::ostream"
	  param in name "level" explicit_type "uint"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}, ${t1} ${p1}${v1}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} & ${p0}, ${t1} ${p1}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Write the current Node values to the given XML output stream"
      end

      operation 267440 "xmlWriteDatas"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 3
	  param inout name "out" explicit_type "std::ostream"
	  param in name "level" explicit_type "uint"
	  param in name "compact" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}, ${t1} ${p1}${v1}, ${t2} ${p2}${v2}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} & ${p0}, ${t1} ${p1}, ${t2} ${p2}${)}${const}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Write the current field values to the given XML output stream"
      end

      operation 267568 "findField"
	preserve_cpp_body_indent const public return_type class_ref 179632 // BaseData
	nparams 1
	  param in name "name" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} * ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Find a field given its name. Return NULL if not found. If more than one field is found (due to aliases), only the first is returned."
      end

      operation 267696 "findGlobalField"
	preserve_cpp_body_indent const public explicit_return_type "std::vector< BaseData* >"
	nparams 1
	  param in name "name" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Find fields given a name: several can be found as we look into the alias map"
      end

      operation 267824 "initData"
	stereotype "template"
	cpp_inline public return_type class_ref 179760 // BaseInitData
	nparams 5
	  param inout name "field" explicit_type "Data<T>"
	  param in name "name" explicit_type "char"
	  param in name "help" explicit_type "char"
	  param in name "isDisplayed" explicit_type "bool"
	    defaultvalue "true"
	  param in name "isReadOnly" explicit_type "bool"
	    defaultvalue "false "
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, const ${t1} * ${p1}${v1}, const ${t2} * ${p2}${v2}, ${t3} ${p3}${v3}, ${t4} ${p4}${v4}${)}${const}${volatile}${throw}${abstract} {
        BaseData::BaseInitData res;
        this->initData0(field, res, name, help, isDisplayed, isReadOnly);
        return res;
    };
"
	
	
	
	
	comment "/ Helper method used to initialize a field containing a value of type T"
      end

      operation 267952 "initData"
	stereotype "template"
	cpp_inline public return_type class_ref 179888 // InitData
	nparams 6
	  param inout name "field" explicit_type "Data<T>"
	  param in name "value" explicit_type "T"
	  param in name "name" explicit_type "char"
	  param in name "help" explicit_type "char"
	  param in name "isDisplayed" explicit_type "bool"
	    defaultvalue "true"
	  param in name "isReadOnly" explicit_type "bool"
	    defaultvalue "false  "
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}typename ${type} ${name}${(}${t0} * ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} * ${p2}${v2}, const ${t3} * ${p3}${v3}, ${t4} ${p4}${v4}, ${t5} ${p5}${v5}${)}${const}${volatile}${throw}${abstract} {
        typename Data<T>::InitData res;
        this->initData0(field, res, value, name, help, isDisplayed, isReadOnly);
        return res;
    };
"
	
	
	
	
	comment "/ Helper method used to initialize a field containing a value of type T"
      end

      operation 268080 "addAlias"
	cpp_inline public explicit_return_type "void"
	nparams 2
	  param inout name "field" type class_ref 179632 // BaseData
	  param in name "alias" explicit_type "char"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, const ${t1} * ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
      m_aliasData.insert(std::make_pair(std::string(alias),field));
    };
"
	
	
	
	
	comment "/ Helper method used to add an alias to a Data"
      end

      operation 268208 "getTags"
	const cpp_inline public return_type class_ref 180016 // TagSet
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract} { return f_tags.getValue(); };
"
	
	
	
	
	comment "/ @name tags
/   Methods related to subsets belonging
/ @{
/ Represents the subsets the object belongs to"
      end

      operation 268336 "hasTag"
	preserve_cpp_body_indent const public explicit_return_type "bool"
	nparams 1
	  param in name "t" type class_ref 180144 // Tag
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Return true if the object belong to the given subset"
      end

      operation 268464 "addTag"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param in name "t" type class_ref 180144 // Tag
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Add a subset qualification to the object"
      end

      operation 268592 "removeTag"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param in name "t" type class_ref 180144 // Tag
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Remove a subset qualification to the object"
      end

      operation 268720 "parse"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param inout name "arg" type class_ref 141232 // BaseObjectDescription
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Parse the given description to assign values to this object's fields and potentially other parameters

${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ @}
/ Parse the given description to assign values to this object's fields and potentially other parameters"
      end

      operation 268848 "getFields"
	const cpp_inline public explicit_return_type "std::vector< std::pair<std::string, BaseData*> >"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract} { return m_fieldVec; };
"
	
	
	
	
	comment "/ Accessor to the vector containing all the fields of this object"
      end

      operation 268976 "getAliases"
	const cpp_inline public explicit_return_type "std::multimap< std::string, BaseData* >"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract} { return m_aliasData; };
"
	
	
	
	
	comment "/ Accessor to the map containing all the aliases of this object"
      end

      attribute 152496 "serr"
	public explicit_type "std::ostringstream"
	cpp_mutable cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 152624 "sout"
	public explicit_type "std::ostringstream"
	cpp_mutable cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      operation 269104 "getWarnings"
	preserve_cpp_body_indent const public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 269232 "getOutputs"
	preserve_cpp_body_indent const public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 269360 "clearWarnings"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 269488 "clearOutputs"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 269616 "processStream"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param inout name "out" explicit_type "std::ostream"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      attribute 152752 "warnings"
	protected explicit_type "std::string"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 152880 "outputs"
	protected explicit_type "std::string"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      operation 269744 "initData0"
	cpp_inline protected explicit_return_type "void"
	nparams 6
	  param inout name "field" type class_ref 179632 // BaseData
	  param inout name "res" type class_ref 179760 // BaseInitData
	  param in name "name" explicit_type "char"
	  param in name "help" explicit_type "char"
	  param in name "isDisplayed" explicit_type "bool"
	    defaultvalue "true"
	  param in name "isReadOnly" explicit_type "bool"
	    defaultvalue "false "
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, ${t1} & ${p1}${v1}, const ${t2} * ${p2}${v2}, const ${t3} * ${p3}${v3}, ${t4} ${p4}${v4}, ${t5} ${p5}${v5}${)}${const}${volatile}${throw}${abstract} {
        std::string ln(name);
        if( ln.size()>0 && findField(ln) )
        {
            serr << \"field name \" << ln << \" already used in this class or in a parent class !...aborting\" << sendl;
            exit( 1 );
        }
        m_fieldVec.push_back( std::make_pair(ln,field));
        m_aliasData.insert(std::make_pair(ln,field));
        res.owner = this;
        res.data = field;
        res.name = name;
        res.helpMsg = help;
        res.isDisplayed = isDisplayed;
        res.isReadOnly = isReadOnly;

        std::string nameStr(name);
        if (nameStr.size() >= 4)
        {
          const std::string prefix=nameStr.substr(0,4);
          if (prefix==\"show\" || prefix==\"draw\") res.group = \"Visualization\";
        }
    };
"
	
	
	
	
      end

      operation 269872 "initData0"
	stereotype "template"
	cpp_inline protected explicit_return_type "void"
	nparams 7
	  param inout name "field" explicit_type "Data<T>"
	  param inout name "res" type class_ref 179888 // InitData
	  param in name "value" explicit_type "T"
	  param in name "name" explicit_type "char"
	  param in name "help" explicit_type "char"
	  param in name "isDisplayed" explicit_type "bool"
	    defaultvalue "true"
	  param in name "isReadOnly" explicit_type "bool"
	    defaultvalue "false "
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, typename ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} * ${p3}${v3}, const ${t4} * ${p4}${v4}, ${t5} ${p5}${v5}, ${t6} ${p6}${v6}${)}${const}${volatile}${throw}${abstract} {
        initData0( field, res, name, help, isDisplayed, isReadOnly );
        res.value = value;
    };
"
	
	
	
	
      end

      attribute 153008 "m_fieldVec"
	protected explicit_type " std::pair<std::string, BaseData*> "
	stereotype "std::vector"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      classrelation 161584 // m_aliasData (<unidirectional association>)
	relation 161584 --->
	  stereotype "std::multimap"
	  a role_name "m_aliasData" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<std::string,${type}*> ${name}${value};
"
	    classrelation_ref 161584 // m_aliasData (<unidirectional association>)
	  b parent class_ref 179632 // BaseData
      end

      operation 270000 "addField"
	cpp_inline protected explicit_return_type "void"
	nparams 2
	  param inout name "f" type class_ref 179632 // BaseData
	  param in name "name" explicit_type "char"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}, const ${t1} * ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
        std::string ln(name);
        if (ln.size() > 0 && findField(ln))
        {
            serr << \"field name \" << ln
                << \" already used in this class or in a parent class !...aborting\"
                << sendl;
            exit(1);
        }
        m_fieldVec.push_back(std::make_pair(ln, f));
        m_aliasData.insert(std::make_pair(ln, f));
        f->setOwner(this);
        f->setName(name);
    };
"
	
	
	
	
	comment "/ Add a field. Note that this method should only be called if the field was not initialized with the initData<T> of field<T> methods"
      end

      attribute 153136 "name"
	public explicit_type "std::string"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 153264 "f_printLog"
	public explicit_type "bool"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      classrelation 161712 // f_tags (<directional composition>)
	relation 161712 *-->
	  stereotype "Data"
	  a role_name "f_tags" public
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	    classrelation_ref 161712 // f_tags (<directional composition>)
	  b parent class_ref 180016 // TagSet
      end
    end

    class 179632 "BaseData"
      abstract visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 *  \\brief Abstract base class for all fields, independently of their type.
 *"
      class 179760 "BaseInitData"
	visibility package 
	cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	operation 282800 "BaseInitData"
	  cpp_inline public explicit_return_type ""
	  nparams 0
	  cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw} : data(NULL), helpMsg(\"\"), isDisplayed(true), isReadOnly(false), isPersistent(true), owner(NULL), name(\"\"), parentClass(\"\"), group(\"\"), widget(\"\") {};
"
	  
	  
	  
	  
	end

	classrelation 162608 // data (<unidirectional association>)
	  relation 162608 --->
	    a role_name "data" public
	      cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	      classrelation_ref 162608 // data (<unidirectional association>)
	    b parent class_ref 179632 // BaseData
	end

	attribute 154416 "helpMsg"
	  const_attribute public explicit_type "char"
	  cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 154544 "isDisplayed"
	  public explicit_type "bool"
	  cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 154672 "isReadOnly"
	  public explicit_type "bool"
	  cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 154800 "isPersistent"
	  public explicit_type "bool"
	  cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	classrelation 162736 // owner (<unidirectional association>)
	  relation 162736 --->
	    a role_name "owner" public
	      cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	      classrelation_ref 162736 // owner (<unidirectional association>)
	    b parent class_ref 179376 // Base
	end

	attribute 154928 "name"
	  const_attribute public explicit_type "char"
	  cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 155056 "parentClass"
	  const_attribute public explicit_type "char"
	  cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 155184 "group"
	  const_attribute public explicit_type "char"
	  cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 155312 "widget"
	  const_attribute public explicit_type "char"
	  cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end
      end

      classrelation 162480 // <generalisation>
	relation 162480 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 162480 // <generalisation>
	  b parent class_ref 133552 // DDGNode
      end

      operation 282928 "BaseData"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "init" type class_ref 179760 // BaseInitData
	cpp_decl "    ${comment}${inline}explicit ${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}
: help(init.helpMsg), parentClass(init.parentClass), group(init.group), widget(init.widget)
, m_counter(0), m_isSet(false), m_isDisplayed(init.isDisplayed), m_isReadOnly(init.isReadOnly), m_isPersistent(init.isPersistent), m_owner(init.owner), m_name(init.name), m_linkPath(std::string(\"\")), parentBaseData(NULL)
${throw}{
  ${body}}
"
	
	
	
	
	comment "* Constructor
        this constructor should be used through the initData() methods"
      end

      operation 283056 "BaseData"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 5
	  param in name "h" explicit_type "char"
	  param in name "isDisplayed" explicit_type "bool"
	    defaultvalue "true"
	  param in name "isReadOnly" explicit_type "bool"
	    defaultvalue "false"
	  param inout name "owner" type class_ref 179376 // Base
	    defaultvalue "NULL"
	  param in name "name" explicit_type "char"
	    defaultvalue "\"\""
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} * ${p0}${v0}, ${t1} ${p1}${v1}, ${t2} ${p2}${v2}, ${t3} * ${p3}${v3}, const ${t4} * ${p4}${v4}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}const ${t0} * ${p0}, ${t1} ${p1}, ${t2} ${p2}, ${t3} * ${p3}, const ${t4} * ${p4}${)}
: help(h), parentClass(\"\"), group(\"\"), widget(\"\")
, m_counter(0), m_isSet(false), m_isDisplayed(isDisplayed), m_isReadOnly(isReadOnly), m_isPersistent(true), m_owner(owner), m_name(name), m_linkPath(std::string(\"\")), parentBaseData(NULL)
${throw}{
  ${body}}
"
	
	
	
	
	comment "* Constructor
     *  \\param h help"
      end

      operation 283184 "~BaseData"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
	comment "/ Base destructor"
      end

      operation 283312 "read"
	abstract cpp_virtual public explicit_return_type "bool"
	nparams 1
	  param inout name "str" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Read the command line"
      end

      operation 283440 "printValue"
	abstract const cpp_virtual public explicit_return_type "void"
	nparams 1
	  param inout name "" explicit_type "std::ostream"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Print the value of the associated variable"
      end

      operation 283568 "getValueString"
	abstract const cpp_virtual public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Print the value of the associated variable"
      end

      operation 283696 "getValueTypeString"
	abstract const cpp_virtual public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Print the value type of the associated variable"
      end

      operation 283824 "getValueTypeInfo"
	abstract const cpp_virtual public explicit_return_type "sofa::defaulttype::AbstractTypeInfo"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Get info about the value type of the associated variable"
      end

      operation 283952 "getValueVoidPtr"
	abstract const cpp_virtual public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Get current value as a void pointer (use getValueTypeInfo to find how to access it)"
      end

      operation 284080 "beginEditVoidPtr"
	abstract cpp_virtual public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Begin edit current value as a void pointer (use getValueTypeInfo to find how to access it)"
      end

      operation 284208 "endEditVoidPtr"
	abstract cpp_virtual public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ End edit current value as a void pointer (use getValueTypeInfo to find how to access it)"
      end

      operation 284336 "copyValue"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "bool"
	nparams 1
	  param in name "parent" type class_ref 179632 // BaseData
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Copy the value of another Data.
/ Note that this is a one-time copy and not a permanent link (otherwise see setParent)
/ @return true if copy was successfull"
      end

      operation 284464 "getHelp"
	const cpp_inline public explicit_return_type "char"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return help; };
"
	
	
	
	
	comment "/ Get help message"
      end

      operation 284592 "setHelp"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "char"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { help = val; };
"
	
	
	
	
	comment "/ Set help message"
      end

      operation 284720 "setHelpMsg"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "char"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { help = val; };
"
	
	
	
	
	comment "/ @deprecated Set help message"
      end

      operation 284848 "getParentClass"
	const cpp_inline public explicit_return_type "char"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return parentClass; };
"
	
	
	
	
	comment "/ Get parentClass"
      end

      operation 284976 "setParentClass"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "char"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { parentClass = val; };
"
	
	
	
	
	comment "/ Set group"
      end

      operation 285104 "getGroup"
	const cpp_inline public explicit_return_type "char"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return group; };
"
	
	
	
	
	comment "/ Get group"
      end

      operation 285232 "setGroup"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "char"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { group = val; };
"
	
	
	
	
	comment "/ Set group"
      end

      operation 285360 "getWidget"
	const cpp_inline public explicit_return_type "char"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return widget; };
"
	
	
	
	
	comment "/ Get widget"
      end

      operation 285488 "setWidget"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "char"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { widget = val; };
"
	
	
	
	
	comment "/ Set widget"
      end

      operation 285616 "isSet"
	const cpp_inline public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { return m_isSet; };
"
	
	
	
	
	comment "/ True if the value has been modified
/ If this data is linked, the value of this data will be considered as modified
/ (even if the parent's value has not been modified)"
      end

      operation 285744 "isDisplayed"
	const cpp_inline public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { return m_isDisplayed; };
"
	
	
	
	
	comment "/ True if the Data has to be displayed in the GUI"
      end

      operation 285872 "isReadOnly"
	const cpp_inline public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { return m_isReadOnly; };
"
	
	
	
	
	comment "/ True if the Data will be readable only in the GUI"
      end

      operation 286000 "isPersistent"
	const cpp_inline public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { return m_isPersistent; };
"
	
	
	
	
	comment "/ True if the Data contain persistent information"
      end

      operation 286128 "isCounterValid"
	abstract const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ True if the counter of modification gives valid information."
      end

      operation 286256 "unset"
	cpp_inline public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { m_isSet = false; };
"
	
	
	
	
	comment "/ Reset the isSet flag to false, to indicate that the current value is the default for this Data."
      end

      operation 286384 "forceSet"
	cpp_inline public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { m_isSet = true; };
"
	
	
	
	
	comment "/ Reset the isSet flag to true, to indicate that the current value has been modified."
      end

      operation 286512 "setDisplayed"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "b" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {m_isDisplayed = b;};
"
	
	
	
	
	comment "/ Can dynamically change the status of a Data, by making it appear or disappear"
      end

      operation 286640 "setReadOnly"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "b" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {m_isReadOnly = b;};
"
	
	
	
	
	comment "/ Can dynamically change the status of a Data, by making it readOnly"
      end

      operation 286768 "setPersistent"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "b" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {m_isPersistent = b;};
"
	
	
	
	
	comment "/ Can dynamically change the status of a Data, by making it persistent"
      end

      operation 286896 "setLinkPath"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "path" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {m_linkPath = path;};
"
	
	
	
	
	comment "/ If we use the Data as a link and not as value directly"
      end

      operation 287024 "getLinkPath"
	const cpp_inline public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {return m_linkPath;};
"
	
	
	
	
      end

      operation 287152 "canBeLinked"
	const cpp_virtual cpp_inline public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { return true; };
"
	
	
	
	
	comment "/ Can this data be used as a linkPath
/ True by default.
/ Useful if you want to customize the use of @ syntax (see ObjectRef and DataObjectRef)"
      end

      operation 287280 "getOwner"
	const cpp_inline public return_type class_ref 179376 // Base
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return m_owner; };
"
	
	
	
	
	comment "/ Return the Base component owning this Data"
      end

      operation 287408 "setOwner"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param inout name "o" type class_ref 179376 // Base
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { m_owner=o; };
"
	
	
	
	
      end

      operation 287536 "getName"
	const cpp_inline public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract} { return m_name; };
"
	
	
	
	
	comment "/ Return the name of this Data within the Base component"
      end

      operation 287664 "setName"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "name" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { m_name=name; };
"
	
	
	
	
	comment "/ Set the name of this Data. Not that this methods should not be called directly, but the Data registration methods in Base should be used instead"
      end

      operation 287792 "getCounter"
	const cpp_inline public explicit_return_type "int"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { return m_counter; };
"
	
	
	
	
	comment "/ Return the number of changes since creation
/ This can be used to efficiently detect changes"
      end

      operation 287920 "setParent"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "bool"
	nparams 1
	  param inout name "parent" type class_ref 179632 // BaseData
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Link to a parent data. The value of this data will automatically duplicate the value of the parent data."
      end

      operation 288048 "validParent"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "bool"
	nparams 1
	  param inout name "parent" type class_ref 179632 // BaseData
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Check if a given Data can be linked as a parent of this data"
      end

      operation 288176 "getParent"
	const cpp_inline public return_type class_ref 179632 // BaseData
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return parentBaseData; };
"
	
	
	
	
      end

      operation 288304 "update"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Update the value of this Data"
      end

      operation 288432 "doSetParent"
	preserve_cpp_body_indent cpp_virtual protected explicit_return_type "void"
	nparams 1
	  param inout name "parent" type class_ref 179632 // BaseData
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 288560 "doDelInput"
	preserve_cpp_body_indent cpp_virtual protected explicit_return_type "void"
	nparams 1
	  param inout name "n" type class_ref 133552 // DDGNode
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 288688 "updateFromParentValue"
	preserve_cpp_body_indent cpp_virtual protected explicit_return_type "bool"
	nparams 1
	  param in name "parent" type class_ref 179632 // BaseData
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Update this Data from the value of its parent"
      end

      attribute 155440 "help"
	const_attribute protected explicit_type "char"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 155568 "parentClass"
	const_attribute protected explicit_type "char"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 155696 "group"
	const_attribute protected explicit_type "char"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 155824 "widget"
	const_attribute protected explicit_type "char"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 155952 "m_counter"
	protected explicit_type "int"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 156080 "m_isSet"
	protected explicit_type "bool"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 156208 "m_isDisplayed"
	protected explicit_type "bool"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 156336 "m_isReadOnly"
	protected explicit_type "bool"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 156464 "m_isPersistent"
	protected explicit_type "bool"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      classrelation 162864 // m_owner (<unidirectional association>)
	relation 162864 --->
	  a role_name "m_owner" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	    classrelation_ref 162864 // m_owner (<unidirectional association>)
	  b parent class_ref 179376 // Base
      end

      attribute 156592 "m_name"
	protected explicit_type "std::string"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 156720 "m_linkPath"
	protected explicit_type "std::string"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      classrelation 162992 // parentBaseData (<unidirectional association>)
	relation 162992 --->
	  a role_name "parentBaseData" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	    classrelation_ref 162992 // parentBaseData (<unidirectional association>)
	  b parent class_ref 179632 // BaseData
      end

      operation 288816 "decodeTypeName"
	class_operation preserve_cpp_body_indent protected explicit_return_type "std::string"
	nparams 1
	  param in name "t" explicit_type "std::type_info"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Helper method to decode the type name to a more readable form if possible"
      end

      operation 288944 "typeName"
	stereotype "template"
	class_operation cpp_inline protected explicit_return_type "std::string"
	nparams 1
	  param in name "" explicit_type "T"
	    defaultvalue "NULL"
	cpp_decl "    ${comment}template<class T>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        if (defaulttype::DataTypeInfo<T>::ValidInfo)
            return defaulttype::DataTypeName<T>::name();
        else
            return decodeTypeName(typeid(T));
    };
"
	
	
	
	
	comment "/ Helper method to get the type name of type T"
      end
    end

    class 180016 "TagSet"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 170032 // <generalisation>
	relation 170032 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 170032 // <generalisation>
	  b parent class_ref 188592 // typedef17
      end

      operation 341552 "TagSet"
	cpp_inline public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw} {};
"
	
	
	
	
      end

      operation 341680 "TagSet"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "t" type class_ref 180144 // Tag
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} { this->insert(t); };
"
	
	
	
	
	comment "/ Automatic conversion between a tag and a tagset composed of this tag"
      end

      operation 341808 "includes"
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "t" type class_ref 180144 // Tag
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { return this->count(t) > 0; };
"
	
	
	
	
	comment "/ Returns true if this TagSet contains specified tag"
      end

      operation 341936 "includes"
	preserve_cpp_body_indent const public explicit_return_type "bool"
	nparams 1
	  param in name "t" type class_ref 180016 // TagSet
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Returns true if this TagSet contains all specified tags"
      end
    end

    class 180144 "Tag"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 *  \\brief A Tag is a string (internally converted to an integer), attached to objects in order to define subsets to process by specific visitors.
 *"
      operation 339888 "Tag"
	cpp_inline public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw} : id(0) {};
"
	
	
	
	
      end

      operation 340016 "Tag"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "s" explicit_type "std::string"
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}const ${t0} & ${p0}${)}
: id(0)
${throw}{
  ${body}}
"
	
	
	
	
	comment "/ A can is constructed from a string and appears like one after, without actually storing a string"
      end

      operation 340144 "Tag"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "id" explicit_type "uint"
	cpp_decl "    ${comment}${inline}${name}${(}${t0} ${p0}${v0}${)}${volatile}${throw} : id(id) {};
"
	
	
	
	
	comment "/ This constructor should be used only if really necessary"
      end

      operation 340272 "operator std::string"
	const public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Any operation requiring a string can be used on a tag using this conversion"
      end

      operation 340400 "operator =="
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "t" type class_ref 180144 // Tag
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { return id == t.id; };
"
	
	
	
	
      end

      operation 340528 "operator !="
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "t" type class_ref 180144 // Tag
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { return id != t.id; };
"
	
	
	
	
      end

      operation 340656 "operator <"
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "t" type class_ref 180144 // Tag
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { return id < t.id; };
"
	
	
	
	
      end

      operation 340784 "operator >"
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "t" type class_ref 180144 // Tag
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { return id > t.id; };
"
	
	
	
	
      end

      operation 340912 "operator <="
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "t" type class_ref 180144 // Tag
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { return id <= t.id; };
"
	
	
	
	
      end

      operation 341040 "operator >="
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "t" type class_ref 180144 // Tag
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { return id >= t.id; };
"
	
	
	
	
      end

      operation 341168 "operator !"
	const cpp_inline public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { return !id; };
"
	
	
	
	
      end

      operation 341296 "operator <<"
	friend cpp_inline public explicit_return_type "std::ostream"
	nparams 2
	  param inout name "o" explicit_type "std::ostream"
	  param in name "t" type class_ref 180144 // Tag
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
        return o << (std::string)t;
    };
"
	
	
	
	
      end

      operation 341424 "operator >>"
	friend cpp_inline public explicit_return_type "std::istream"
	nparams 2
	  param inout name "i" explicit_type "std::istream"
	  param inout name "t" type class_ref 180144 // Tag
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${v0}, ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
        std::string s;
        i >> s;
        t = Tag(s);
        return i;
    };
"
	
	
	
	
      end

      attribute 165936 "id"
	protected explicit_type "uint"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end
    end

    class 180272 "TClassParents"
      visibility package 
      nformals 1
      formal name "Parents" type "class" explicit_default_value ""
        explicit_extends ""
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      operation 270768 "nb"
	class_operation cpp_inline public explicit_return_type "int"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        return 1;
    };
"
	
	
	
	
      end

      operation 270896 "get"
	class_operation cpp_inline public return_type class_ref 141360 // BaseClass
	nparams 1
	  param in name "i" explicit_type "int"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        if (i==0)
            return Parents::GetClass();
        else
            return NULL;
    };
"
	
	
	
	
      end
    end

    class 180400 "TClassParents<void>"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      operation 271024 "nb"
	class_operation cpp_inline public explicit_return_type "int"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        return 0;
    };
"
	
	
	
	
      end

      operation 271152 "get"
	class_operation cpp_inline public return_type class_ref 141360 // BaseClass
	nparams 1
	  param in name "" explicit_type "int"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        return NULL;
    };
"
	
	
	
	
      end
    end

    class 180528 "TClassParents<std::pair<P1,P2> >"
      visibility package 
      nformals 2
      formal name "P1" type "class" explicit_default_value ""
        explicit_extends ""
      formal name "P2" type "class" explicit_default_value ""
        explicit_extends ""
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      operation 271280 "nb"
	class_operation cpp_inline public explicit_return_type "int"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        return TClassParents<P1>::nb() + TClassParents<P1>::nb();
    };
"
	
	
	
	
      end

      operation 271408 "get"
	class_operation cpp_inline public return_type class_ref 141360 // BaseClass
	nparams 1
	  param in name "i" explicit_type "int"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        if (i<TClassParents<P1>::nb())
            return TClassParents<P1>::get(i);
        else
            return TClassParents<P2>::get(i-TClassParents<P1>::nb());
    };
"
	
	
	
	
      end
    end

    class 180656 "TClass"
      visibility package 
      nformals 2
      formal name "T" type "class" explicit_default_value ""
        explicit_extends ""
      formal name "Parents" type "class" explicit_default_value "void"
        explicit_extends ""
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 161968 // <generalisation>
	relation 161968 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 161968 // <generalisation>
	  b parent class_ref 141360 // BaseClass
      end

      operation 271536 "TClass"
	cpp_inline protected explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw} {
        T* ptr = NULL;
        namespaceName = T::namespaceName(ptr);
        className = T::className(ptr);
        templateName = T::templateName(ptr);
//#ifdef SOFA_TARGET
//        targetName = sofa_tostring(SOFA_TARGET);
//#endif
        parents.resize(TClassParents<Parents>::nb());
        for (int i=0;i<TClassParents<Parents>::nb();++i)
            parents[i] = TClassParents<Parents>::get(i);
    };
"
	
	
	
	
      end

      operation 271664 "~TClass"
	cpp_virtual cpp_inline protected explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw} {};
"
	
	
	
	
      end

      operation 271792 "get"
	class_operation cpp_inline public return_type class_ref 180656 // TClass
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        static TClass<T, Parents> singleton;
        return &singleton;
    };
"
	
	
	
	
      end
    end

    class 180784 "typedef13"
      visibility package stereotype "typedef" explicit_base_type "virtual"
      cpp_decl "${comment}typedef ${type} ${name};
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
    end

    class 182064 "Event"
      abstract visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 *  \\brief Base class for all events received by the objects.
 *
 * When created, the status is initialized as not handled. It is then propagated along the objects until it is handled.
 *
 * @author Francois Faure"
      operation 327472 "Event"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
      end

      operation 327600 "~Event"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
      end

      operation 327728 "setHandled"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Tag the event as handled, i.e. the event needs not be propagated further"
      end

      operation 327856 "isHandled"
	preserve_cpp_body_indent const public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Returns true of the event has been handled"
      end

      operation 327984 "getClassName"
	const cpp_virtual cpp_inline public explicit_return_type "char"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return \"Event\"; };
"
	
	
	
	
      end

      attribute 161712 "m_handled"
	protected explicit_type "bool"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end
    end

    class 182192 "BaseNode"
      abstract visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 *  \\brief Base class for simulation nodes.
 *
 *  A Node is a class defining the main scene data structure of a simulation.
 *  It defined hierarchical relations between elements.
 *  Each node can have parent and child nodes (potentially defining a tree),
 *  as well as attached objects (the leaves of the tree).
 *
 * \\author Jeremie Allard"
      classrelation 163120 // <generalisation>
	relation 163120 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 163120 // <generalisation>
	  b parent class_ref 180784 // typedef13
      end

      classrelation 163248 // <generalisation>
	relation 163248 ---|>
	  a private
	    cpp default "${type}"
	    classrelation_ref 163248 // <generalisation>
	  b parent class_ref 179376 // Base
      end

      operation 289072 "~BaseNode"
	cpp_virtual cpp_inline public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw} {};
"
	
	
	
	
      end

      class 182320 "Children"
	visibility package stereotype "typedef" base_type class_ref 182192 // BaseNode
	cpp_decl "${comment}typedef sofa::helper::vector<${type}*> ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	classrelation 163376 // <dependency>
	  relation 163376 -_->
	    a default
	      cpp default "#include in source"
	      classrelation_ref 163376 // <dependency>
	    b parent class_ref 182192 // BaseNode
	end
      end

      operation 289200 "getChildren"
	abstract const cpp_virtual public return_type class_ref 182320 // Children
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Get a list of child node"
      end

      operation 289328 "addChild"
	abstract cpp_virtual public explicit_return_type "void"
	nparams 1
	  param inout name "node" type class_ref 182192 // BaseNode
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Add a child node"
      end

      operation 289456 "removeChild"
	abstract cpp_virtual public explicit_return_type "void"
	nparams 1
	  param inout name "node" type class_ref 182192 // BaseNode
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Remove a child node"
      end

      operation 289584 "moveChild"
	abstract cpp_virtual public explicit_return_type "void"
	nparams 1
	  param inout name "node" type class_ref 182192 // BaseNode
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Move a node from another node"
      end

      operation 289712 "addObject"
	abstract cpp_virtual public explicit_return_type "bool"
	nparams 1
	  param inout name "obj" type class_ref 128304 // BaseObject
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Add a generic object"
      end

      operation 289840 "removeObject"
	abstract cpp_virtual public explicit_return_type "bool"
	nparams 1
	  param inout name "obj" type class_ref 128304 // BaseObject
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Remove a generic object"
      end

      operation 289968 "moveObject"
	abstract cpp_virtual public explicit_return_type "void"
	nparams 1
	  param inout name "obj" type class_ref 128304 // BaseObject
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Move an object from a node to another node"
      end

      operation 290096 "hasParent"
	abstract const cpp_virtual public explicit_return_type "bool"
	nparams 1
	  param in name "node" type class_ref 182192 // BaseNode
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Test if the given node is a parent of this node."
      end

      operation 290224 "hasAncestor"
	abstract const cpp_virtual public explicit_return_type "bool"
	nparams 1
	  param in name "node" type class_ref 182192 // BaseNode
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Test if the given node is an ancestor of this node.
/ An ancestor is a parent or (recursively) the parent of an ancestor."
      end

      operation 290352 "detachFromGraph"
	abstract cpp_virtual public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Remove the current node from the graph: depending on the type of Node, it can have one or several parents."
      end

      operation 290480 "getContext"
	abstract cpp_virtual public return_type class_ref 141104 // BaseContext
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Get this node context"
      end

      operation 290608 "getContext"
	abstract const cpp_virtual public return_type class_ref 141104 // BaseContext
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Get this node context"
      end

      operation 290736 "getPathName"
	abstract const cpp_virtual public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ Return the full path name of this node"
      end
    end

    class 182448 "BaseObjectTasks"
      abstract visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      operation 296752 "getContext"
	abstract const cpp_virtual public return_type class_ref 141104 // BaseContext
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
      end

      operation 296880 "getContext"
	abstract cpp_virtual public return_type class_ref 141104 // BaseContext
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
      end

      operation 297008 "getPartition"
	abstract cpp_virtual public explicit_return_type "Iterative::IterativePartition"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
      end

      operation 297136 "prepareTask"
	abstract cpp_virtual public explicit_return_type "Iterative::IterativePartition"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
      end

      operation 297264 "~BaseObjectTasks"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
      end

      operation 297392 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "e1" explicit_type "E1"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1);
#else
 a1::Fork<TASK>()( e1);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 1 is the number of possible parameters "
      end

      operation 297520 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "e1" explicit_type "E1"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
	 RFO::Closure *c;
    
  Iterative::IterativePartition*p=prepareTask();
	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1);
#else
    c=     Iterative::Fork<TASK>(Iterative::SetPartition(*p))( e1);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1);
 #else
	   c= 	Iterative::Fork<TASK>()( e1);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 1 is the number of possible parameters "
      end

      operation 297648 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "e1" explicit_type "E1"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1);
#else
 Iterative::Fork<TASK,TASK2>(DefaultAttribut())( e1);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 1 is the number of possible parameters "
      end

      operation 297776 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "e1" explicit_type "E1"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
    
	 RFO::Closure *c;
  Iterative::IterativePartition*p=prepareTask();

	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1);
#else
    c=     Iterative::Fork<TASK,TASK2>(Iterative::SetPartition(*p))( e1);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1);
 #else
	   c= 	Iterative::Fork<TASK,TASK2> ( DefaultAttribut())( e1);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 1 is the number of possible parameters "
      end

      operation 297904 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 2
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2);
#else
 a1::Fork<TASK>()( e1,e2);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 2 is the number of possible parameters "
      end

      operation 298032 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 2
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
	 RFO::Closure *c;
    
  Iterative::IterativePartition*p=prepareTask();
	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2);
#else
    c=     Iterative::Fork<TASK>(Iterative::SetPartition(*p))( e1,e2);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2);
 #else
	   c= 	Iterative::Fork<TASK>()( e1,e2);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 2 is the number of possible parameters "
      end

      operation 298160 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 2
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2);
#else
 Iterative::Fork<TASK,TASK2>(DefaultAttribut())( e1,e2);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 2 is the number of possible parameters "
      end

      operation 298288 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 2
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
    
	 RFO::Closure *c;
  Iterative::IterativePartition*p=prepareTask();

	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2);
#else
    c=     Iterative::Fork<TASK,TASK2>(Iterative::SetPartition(*p))( e1,e2);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2);
 #else
	   c= 	Iterative::Fork<TASK,TASK2> ( DefaultAttribut())( e1,e2);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 2 is the number of possible parameters "
      end

      operation 298416 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 3
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2template<class E3>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2,e3);
#else
 a1::Fork<TASK>()( e1,e2,e3);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 3 is the number of possible parameters "
      end

      operation 298544 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 3
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2template<class E3>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}${)}${const}${volatile}${throw}${abstract} {
	 RFO::Closure *c;
    
  Iterative::IterativePartition*p=prepareTask();
	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2,e3);
#else
    c=     Iterative::Fork<TASK>(Iterative::SetPartition(*p))( e1,e2,e3);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2,e3);
 #else
	   c= 	Iterative::Fork<TASK>()( e1,e2,e3);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 3 is the number of possible parameters "
      end

      operation 298672 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 3
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2template<class E3>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2,e3);
#else
 Iterative::Fork<TASK,TASK2>(DefaultAttribut())( e1,e2,e3);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 3 is the number of possible parameters "
      end

      operation 298800 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 3
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2template<class E3>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}${)}${const}${volatile}${throw}${abstract} {
    
	 RFO::Closure *c;
  Iterative::IterativePartition*p=prepareTask();

	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2,e3);
#else
    c=     Iterative::Fork<TASK,TASK2>(Iterative::SetPartition(*p))( e1,e2,e3);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2,e3);
 #else
	   c= 	Iterative::Fork<TASK,TASK2> ( DefaultAttribut())( e1,e2,e3);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 3 is the number of possible parameters "
      end

      operation 298928 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 4
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2template<class E3template<class E4>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4);
#else
 a1::Fork<TASK>()( e1,e2,e3,e4);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 4 is the number of possible parameters "
      end

      operation 299056 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 4
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2template<class E3template<class E4>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}${)}${const}${volatile}${throw}${abstract} {
	 RFO::Closure *c;
    
  Iterative::IterativePartition*p=prepareTask();
	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4);
#else
    c=     Iterative::Fork<TASK>(Iterative::SetPartition(*p))( e1,e2,e3,e4);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4);
 #else
	   c= 	Iterative::Fork<TASK>()( e1,e2,e3,e4);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 4 is the number of possible parameters "
      end

      operation 299184 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 4
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2template<class E3template<class E4>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4);
#else
 Iterative::Fork<TASK,TASK2>(DefaultAttribut())( e1,e2,e3,e4);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 4 is the number of possible parameters "
      end

      operation 299312 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 4
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2template<class E3template<class E4>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}${)}${const}${volatile}${throw}${abstract} {
    
	 RFO::Closure *c;
  Iterative::IterativePartition*p=prepareTask();

	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4);
#else
    c=     Iterative::Fork<TASK,TASK2>(Iterative::SetPartition(*p))( e1,e2,e3,e4);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4);
 #else
	   c= 	Iterative::Fork<TASK,TASK2> ( DefaultAttribut())( e1,e2,e3,e4);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 4 is the number of possible parameters "
      end

      operation 299440 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 5
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2template<class E3template<class E4template<class E5>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5);
#else
 a1::Fork<TASK>()( e1,e2,e3,e4,e5);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 5 is the number of possible parameters "
      end

      operation 299568 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 5
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2template<class E3template<class E4template<class E5>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}${)}${const}${volatile}${throw}${abstract} {
	 RFO::Closure *c;
    
  Iterative::IterativePartition*p=prepareTask();
	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5);
#else
    c=     Iterative::Fork<TASK>(Iterative::SetPartition(*p))( e1,e2,e3,e4,e5);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5);
 #else
	   c= 	Iterative::Fork<TASK>()( e1,e2,e3,e4,e5);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 5 is the number of possible parameters "
      end

      operation 299696 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 5
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2template<class E3template<class E4template<class E5>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5);
#else
 Iterative::Fork<TASK,TASK2>(DefaultAttribut())( e1,e2,e3,e4,e5);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 5 is the number of possible parameters "
      end

      operation 299824 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 5
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2template<class E3template<class E4template<class E5>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}${)}${const}${volatile}${throw}${abstract} {
    
	 RFO::Closure *c;
  Iterative::IterativePartition*p=prepareTask();

	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5);
#else
    c=     Iterative::Fork<TASK,TASK2>(Iterative::SetPartition(*p))( e1,e2,e3,e4,e5);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5);
 #else
	   c= 	Iterative::Fork<TASK,TASK2> ( DefaultAttribut())( e1,e2,e3,e4,e5);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 5 is the number of possible parameters "
      end

      operation 299952 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 6
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2template<class E3template<class E4template<class E5template<class E6>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6);
#else
 a1::Fork<TASK>()( e1,e2,e3,e4,e5,e6);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 6 is the number of possible parameters "
      end

      operation 300080 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 6
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2template<class E3template<class E4template<class E5template<class E6>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}${)}${const}${volatile}${throw}${abstract} {
	 RFO::Closure *c;
    
  Iterative::IterativePartition*p=prepareTask();
	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6);
#else
    c=     Iterative::Fork<TASK>(Iterative::SetPartition(*p))( e1,e2,e3,e4,e5,e6);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6);
 #else
	   c= 	Iterative::Fork<TASK>()( e1,e2,e3,e4,e5,e6);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 6 is the number of possible parameters "
      end

      operation 300208 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 6
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2template<class E3template<class E4template<class E5template<class E6>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6);
#else
 Iterative::Fork<TASK,TASK2>(DefaultAttribut())( e1,e2,e3,e4,e5,e6);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 6 is the number of possible parameters "
      end

      operation 300336 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 6
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2template<class E3template<class E4template<class E5template<class E6>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}${)}${const}${volatile}${throw}${abstract} {
    
	 RFO::Closure *c;
  Iterative::IterativePartition*p=prepareTask();

	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6);
#else
    c=     Iterative::Fork<TASK,TASK2>(Iterative::SetPartition(*p))( e1,e2,e3,e4,e5,e6);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6);
 #else
	   c= 	Iterative::Fork<TASK,TASK2> ( DefaultAttribut())( e1,e2,e3,e4,e5,e6);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 6 is the number of possible parameters "
      end

      operation 300464 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 7
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	  param in name "e7" explicit_type "E7"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2template<class E3template<class E4template<class E5template<class E6template<class E7>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7);
#else
 a1::Fork<TASK>()( e1,e2,e3,e4,e5,e6,e7);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 7 is the number of possible parameters "
      end

      operation 300592 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 7
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	  param in name "e7" explicit_type "E7"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2template<class E3template<class E4template<class E5template<class E6template<class E7>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}${)}${const}${volatile}${throw}${abstract} {
	 RFO::Closure *c;
    
  Iterative::IterativePartition*p=prepareTask();
	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7);
#else
    c=     Iterative::Fork<TASK>(Iterative::SetPartition(*p))( e1,e2,e3,e4,e5,e6,e7);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7);
 #else
	   c= 	Iterative::Fork<TASK>()( e1,e2,e3,e4,e5,e6,e7);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 7 is the number of possible parameters "
      end

      operation 300720 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 7
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	  param in name "e7" explicit_type "E7"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2template<class E3template<class E4template<class E5template<class E6template<class E7>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7);
#else
 Iterative::Fork<TASK,TASK2>(DefaultAttribut())( e1,e2,e3,e4,e5,e6,e7);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 7 is the number of possible parameters "
      end

      operation 300848 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 7
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	  param in name "e7" explicit_type "E7"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2template<class E3template<class E4template<class E5template<class E6template<class E7>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}${)}${const}${volatile}${throw}${abstract} {
    
	 RFO::Closure *c;
  Iterative::IterativePartition*p=prepareTask();

	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7);
#else
    c=     Iterative::Fork<TASK,TASK2>(Iterative::SetPartition(*p))( e1,e2,e3,e4,e5,e6,e7);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7);
 #else
	   c= 	Iterative::Fork<TASK,TASK2> ( DefaultAttribut())( e1,e2,e3,e4,e5,e6,e7);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 7 is the number of possible parameters "
      end

      operation 300976 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 8
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	  param in name "e7" explicit_type "E7"
	  param in name "e8" explicit_type "E8"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2template<class E3template<class E4template<class E5template<class E6template<class E7template<class E8>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}, const ${t7} & ${p7}${v7}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8);
#else
 a1::Fork<TASK>()( e1,e2,e3,e4,e5,e6,e7,e8);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 8 is the number of possible parameters "
      end

      operation 301104 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 8
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	  param in name "e7" explicit_type "E7"
	  param in name "e8" explicit_type "E8"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2template<class E3template<class E4template<class E5template<class E6template<class E7template<class E8>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}, const ${t7} & ${p7}${v7}${)}${const}${volatile}${throw}${abstract} {
	 RFO::Closure *c;
    
  Iterative::IterativePartition*p=prepareTask();
	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8);
#else
    c=     Iterative::Fork<TASK>(Iterative::SetPartition(*p))( e1,e2,e3,e4,e5,e6,e7,e8);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8);
 #else
	   c= 	Iterative::Fork<TASK>()( e1,e2,e3,e4,e5,e6,e7,e8);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 8 is the number of possible parameters "
      end

      operation 301232 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 8
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	  param in name "e7" explicit_type "E7"
	  param in name "e8" explicit_type "E8"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2template<class E3template<class E4template<class E5template<class E6template<class E7template<class E8>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}, const ${t7} & ${p7}${v7}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8);
#else
 Iterative::Fork<TASK,TASK2>(DefaultAttribut())( e1,e2,e3,e4,e5,e6,e7,e8);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 8 is the number of possible parameters "
      end

      operation 301360 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 8
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	  param in name "e7" explicit_type "E7"
	  param in name "e8" explicit_type "E8"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2template<class E3template<class E4template<class E5template<class E6template<class E7template<class E8>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}, const ${t7} & ${p7}${v7}${)}${const}${volatile}${throw}${abstract} {
    
	 RFO::Closure *c;
  Iterative::IterativePartition*p=prepareTask();

	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8);
#else
    c=     Iterative::Fork<TASK,TASK2>(Iterative::SetPartition(*p))( e1,e2,e3,e4,e5,e6,e7,e8);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8);
 #else
	   c= 	Iterative::Fork<TASK,TASK2> ( DefaultAttribut())( e1,e2,e3,e4,e5,e6,e7,e8);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 8 is the number of possible parameters "
      end

      operation 301488 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 9
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	  param in name "e7" explicit_type "E7"
	  param in name "e8" explicit_type "E8"
	  param in name "e9" explicit_type "E9"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2template<class E3template<class E4template<class E5template<class E6template<class E7template<class E8template<class E9>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}, const ${t7} & ${p7}${v7}, const ${t8} & ${p8}${v8}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8,e9);
#else
 a1::Fork<TASK>()( e1,e2,e3,e4,e5,e6,e7,e8,e9);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 9 is the number of possible parameters "
      end

      operation 301616 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 9
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	  param in name "e7" explicit_type "E7"
	  param in name "e8" explicit_type "E8"
	  param in name "e9" explicit_type "E9"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2template<class E3template<class E4template<class E5template<class E6template<class E7template<class E8template<class E9>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}, const ${t7} & ${p7}${v7}, const ${t8} & ${p8}${v8}${)}${const}${volatile}${throw}${abstract} {
	 RFO::Closure *c;
    
  Iterative::IterativePartition*p=prepareTask();
	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8,e9);
#else
    c=     Iterative::Fork<TASK>(Iterative::SetPartition(*p))( e1,e2,e3,e4,e5,e6,e7,e8,e9);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8,e9);
 #else
	   c= 	Iterative::Fork<TASK>()( e1,e2,e3,e4,e5,e6,e7,e8,e9);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 9 is the number of possible parameters "
      end

      operation 301744 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 9
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	  param in name "e7" explicit_type "E7"
	  param in name "e8" explicit_type "E8"
	  param in name "e9" explicit_type "E9"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2template<class E3template<class E4template<class E5template<class E6template<class E7template<class E8template<class E9>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}, const ${t7} & ${p7}${v7}, const ${t8} & ${p8}${v8}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8,e9);
#else
 Iterative::Fork<TASK,TASK2>(DefaultAttribut())( e1,e2,e3,e4,e5,e6,e7,e8,e9);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 9 is the number of possible parameters "
      end

      operation 301872 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 9
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	  param in name "e7" explicit_type "E7"
	  param in name "e8" explicit_type "E8"
	  param in name "e9" explicit_type "E9"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2template<class E3template<class E4template<class E5template<class E6template<class E7template<class E8template<class E9>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}, const ${t7} & ${p7}${v7}, const ${t8} & ${p8}${v8}${)}${const}${volatile}${throw}${abstract} {
    
	 RFO::Closure *c;
  Iterative::IterativePartition*p=prepareTask();

	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8,e9);
#else
    c=     Iterative::Fork<TASK,TASK2>(Iterative::SetPartition(*p))( e1,e2,e3,e4,e5,e6,e7,e8,e9);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8,e9);
 #else
	   c= 	Iterative::Fork<TASK,TASK2> ( DefaultAttribut())( e1,e2,e3,e4,e5,e6,e7,e8,e9);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 9 is the number of possible parameters "
      end

      operation 302000 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 10
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	  param in name "e7" explicit_type "E7"
	  param in name "e8" explicit_type "E8"
	  param in name "e9" explicit_type "E9"
	  param in name "e10" explicit_type "E10"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2template<class E3template<class E4template<class E5template<class E6template<class E7template<class E8template<class E9template<class E10>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}, const ${t7} & ${p7}${v7}, const ${t8} & ${p8}${v8}, const ${t9} & ${p9}${v9}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8,e9,e10);
#else
 a1::Fork<TASK>()( e1,e2,e3,e4,e5,e6,e7,e8,e9,e10);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 10 is the number of possible parameters "
      end

      operation 302128 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 10
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	  param in name "e7" explicit_type "E7"
	  param in name "e8" explicit_type "E8"
	  param in name "e9" explicit_type "E9"
	  param in name "e10" explicit_type "E10"
	cpp_decl "    ${comment}template<class TASKtemplate<class E1template<class E2template<class E3template<class E4template<class E5template<class E6template<class E7template<class E8template<class E9template<class E10>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}, const ${t7} & ${p7}${v7}, const ${t8} & ${p8}${v8}, const ${t9} & ${p9}${v9}${)}${const}${volatile}${throw}${abstract} {
	 RFO::Closure *c;
    
  Iterative::IterativePartition*p=prepareTask();
	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8,e9,e10);
#else
    c=     Iterative::Fork<TASK>(Iterative::SetPartition(*p))( e1,e2,e3,e4,e5,e6,e7,e8,e9,e10);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8,e9,e10);
 #else
	   c= 	Iterative::Fork<TASK>()( e1,e2,e3,e4,e5,e6,e7,e8,e9,e10);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 10 is the number of possible parameters "
      end

      operation 302256 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 10
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	  param in name "e7" explicit_type "E7"
	  param in name "e8" explicit_type "E8"
	  param in name "e9" explicit_type "E9"
	  param in name "e10" explicit_type "E10"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2template<class E3template<class E4template<class E5template<class E6template<class E7template<class E8template<class E9template<class E10>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}, const ${t7} & ${p7}${v7}, const ${t8} & ${p8}${v8}, const ${t9} & ${p9}${v9}${)}${const}${volatile}${throw}${abstract} {

#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8,e9,e10);
#else
 Iterative::Fork<TASK,TASK2>(DefaultAttribut())( e1,e2,e3,e4,e5,e6,e7,e8,e9,e10);
#endif  //end of RUN_TASK
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();

};
"
	
	
	
	
	comment " 10 is the number of possible parameters "
      end

      operation 302384 "Task"
	stereotype "template"
	cpp_inline public explicit_return_type "void"
	nparams 10
	  param in name "e1" explicit_type "E1"
	  param in name "e2" explicit_type "E2"
	  param in name "e3" explicit_type "E3"
	  param in name "e4" explicit_type "E4"
	  param in name "e5" explicit_type "E5"
	  param in name "e6" explicit_type "E6"
	  param in name "e7" explicit_type "E7"
	  param in name "e8" explicit_type "E8"
	  param in name "e9" explicit_type "E9"
	  param in name "e10" explicit_type "E10"
	cpp_decl "    ${comment}template<class TASKtemplate<class TASK2template<class E1template<class E2template<class E3template<class E4template<class E5template<class E6template<class E7template<class E8template<class E9template<class E10>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} & ${p3}${v3}, const ${t4} & ${p4}${v4}, const ${t5} & ${p5}${v5}, const ${t6} & ${p6}${v6}, const ${t7} & ${p7}${v7}, const ${t8} & ${p8}${v8}, const ${t9} & ${p9}${v9}${)}${const}${volatile}${throw}${abstract} {
    
	 RFO::Closure *c;
  Iterative::IterativePartition*p=prepareTask();

	if(p){
#ifdef SOFA_SMP_NUMA
		if(p->getCPU()!=-1)
			numa_set_preferred(p->getCPU()/2);
#endif
			
#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8,e9,e10);
#else
    c=     Iterative::Fork<TASK,TASK2>(Iterative::SetPartition(*p))( e1,e2,e3,e4,e5,e6,e7,e8,e9,e10);
//	INSERT_CLOSURE(this,c);

#endif //end of RUN_TASK



	}else{


#ifdef RUN_TASK
 TASK()( e1,e2,e3,e4,e5,e6,e7,e8,e9,e10);
 #else
	   c= 	Iterative::Fork<TASK,TASK2> ( DefaultAttribut())( e1,e2,e3,e4,e5,e6,e7,e8,e9,e10);
 
//	INSERT_CLOSURE(this,c);
#endif  //end of RUN_TASK


	}
if(sofa::core::CallContext::getExecutionType()!=sofa::core::CallContext::GRAPH_KAAPI)
a1::Sync();
    };
"
	
	
	
	
	comment " 10 is the number of possible parameters "
      end
    end

    class 182832 "TClassInfo"
      visibility package 
      nformals 1
      formal name "T" type "class" explicit_default_value ""
        explicit_extends ""
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 164400 // <generalisation>
	relation 164400 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 164400 // <generalisation>
	  b parent class_ref 177456 // ClassInfo
      end

      operation 303920 "TClassInfo"
	cpp_inline protected explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw} : ClassInfo(&typeid(T))
    {
    };
"
	
	
	
	
      end

      operation 304048 "get"
	class_operation cpp_inline public return_type class_ref 182832 // TClassInfo
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        static TClassInfo<T> inst;
        return inst;
    };
"
	
	
	
	
      end

      operation 304176 "dynamicCast"
	const cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param inout name "obj" type class_ref 179376 // Base
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        return dynamic_cast<T*>(obj);
    };
"
	
	
	
	
      end
    end

    class 182960 "ConfigurationSetting"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 *  \\brief Base class for all the configuration settings of SOFA
 *"
      classrelation 164528 // <generalisation>
	relation 164528 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 164528 // <generalisation>
	  b parent class_ref 128304 // BaseObject
      end

      operation 304304 "ConfigurationSetting"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
      end

      operation 304432 "~ConfigurationSetting"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
      end

      operation 304560 "init"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end
    end

    class 183088 "Context"
      abstract visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 *  \\brief Implementation of BaseContext, storing all shared parameters in Datas.
 *"
      classrelation 164656 // <generalisation>
	relation 164656 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 164656 // <generalisation>
	  b parent class_ref 141104 // BaseContext
      end

      class 183216 "Frame"
	visibility package stereotype "typedef" base_type class_ref 181040 // Frame
	cpp_decl "${comment}typedef ${type} ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	classrelation 164784 // <dependency>
	  relation 164784 -_->
	    a default
	      cpp default "#include in source"
	      classrelation_ref 164784 // <dependency>
	    b parent class_ref 181040 // Frame
	end
      end

      class 183344 "Vec3"
	visibility package stereotype "typedef" base_type class_ref 181168 // Vec3
	cpp_decl "${comment}typedef ${type} ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	classrelation 164912 // <dependency>
	  relation 164912 -_->
	    a default
	      cpp default "#include in source"
	      classrelation_ref 164912 // <dependency>
	    b parent class_ref 181168 // Vec3
	end
      end

      class 183472 "Quat"
	visibility package stereotype "typedef" base_type class_ref 181296 // Quat
	cpp_decl "${comment}typedef ${type} ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	classrelation 165040 // <dependency>
	  relation 165040 -_->
	    a default
	      cpp default "#include in source"
	      classrelation_ref 165040 // <dependency>
	    b parent class_ref 181296 // Quat
	end
      end

      class 183600 "SpatialVector"
	visibility package stereotype "typedef" base_type class_ref 181552 // SpatialVector
	cpp_decl "${comment}typedef ${type} ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	classrelation 165168 // <dependency>
	  relation 165168 -_->
	    a default
	      cpp default "#include in source"
	      classrelation_ref 165168 // <dependency>
	    b parent class_ref 181552 // SpatialVector
	end
      end

      attribute 157616 "is_activated"
	public explicit_type "bool"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      classrelation 165296 // worldGravity_ (<directional composition>)
	relation 165296 *-->
	  stereotype "Data"
	  a role_name "worldGravity_" public
	    comment "/< Gravity IN THE WORLD COORDINATE SYSTEM."
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	    classrelation_ref 165296 // worldGravity_ (<directional composition>)
	  b parent class_ref 183344 // Vec3
      end

      attribute 157744 "dt_"
	public explicit_type "double"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 157872 "time_"
	public explicit_type "double"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 158000 "animate_"
	public explicit_type "bool"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 158128 "showVisualModels_"
	public explicit_type "int"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 158256 "showBehaviorModels_"
	public explicit_type "int"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 158384 "showCollisionModels_"
	public explicit_type "int"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 158512 "showBoundingCollisionModels_"
	public explicit_type "int"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 158640 "showMappings_"
	public explicit_type "int"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 158768 "showMechanicalMappings_"
	public explicit_type "int"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 158896 "showForceFields_"
	public explicit_type "int"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 159024 "showInteractionForceFields_"
	public explicit_type "int"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 159152 "showWireFrame_"
	public explicit_type "int"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 159280 "showNormals_"
	public explicit_type "int"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 159408 "showProcessorColor_"
	public explicit_type "int"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 159536 "currentLevel_"
	public explicit_type "int"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 159664 "coarsestLevel_"
	public explicit_type "int"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 159792 "finestLevel_"
	public explicit_type "int"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 159920 "processor"
	public explicit_type "int"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 160048 "gpuPrioritary"
	public explicit_type "bool"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 160176 "is_partition_"
	public explicit_type "bool"
	stereotype "Data"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 160304 "partition_"
	public explicit_type "Iterative::IterativePartition"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      classrelation 165424 // localFrame_ (<directional composition>)
	relation 165424 *-->
	  a role_name "localFrame_" public
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	    classrelation_ref 165424 // localFrame_ (<directional composition>)
	  b parent class_ref 183216 // Frame
      end

      classrelation 165552 // spatialVelocityInWorld_ (<directional composition>)
	relation 165552 *-->
	  a role_name "spatialVelocityInWorld_" public
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	    classrelation_ref 165552 // spatialVelocityInWorld_ (<directional composition>)
	  b parent class_ref 183600 // SpatialVector
      end

      classrelation 165680 // velocityBasedLinearAccelerationInWorld_ (<directional composition>)
	relation 165680 *-->
	  a role_name "velocityBasedLinearAccelerationInWorld_" public
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	    classrelation_ref 165680 // velocityBasedLinearAccelerationInWorld_ (<directional composition>)
	  b parent class_ref 183344 // Vec3
      end

      operation 304688 "Context"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw};
"
	cpp_def "// #include <sofa/simulation/common/Visitor.h>

${inline}${class}::${name}${(}${)}
  : is_activated(initData(&is_activated, true, \"activated\", \"To Activate a node\"))
  , worldGravity_(initData(&worldGravity_, Vec3(0,0,0),\"gravity\",\"Gravity in the world coordinate system\"))
  , dt_(initData(&dt_,0.01,\"dt\",\"Time step\"))
  , time_(initData(&time_,0.,\"time\",\"Current time\"))
  , animate_(initData(&animate_,false,\"animate\",\"Animate the Simulation(applied at initialization only)\"))
  , showVisualModels_           (initData(&showVisualModels_,           -1, \"showVisualModels\",\"display Visual Models\"))
  , showBehaviorModels_         (initData(&showBehaviorModels_,         -1,\"showBehaviorModels\",\"display Behavior Models\"))
  , showCollisionModels_        (initData(&showCollisionModels_,        -1,\"showCollisionModels\",\"display Collision Models\"))
  , showBoundingCollisionModels_(initData(&showBoundingCollisionModels_,-1,\"showBoundingCollisionModels\",\"display Bounding Collision Models\"))
  , showMappings_               (initData(&showMappings_,               -1,\"showMappings\",\"display Mappings\"))
  , showMechanicalMappings_     (initData(&showMechanicalMappings_,     -1,\"showMechanicalMappings\",\"display Mechanical Mappings\"))
  , showForceFields_            (initData(&showForceFields_,            -1,\"showForceFields\",\"display Force Fields\"))
  , showInteractionForceFields_ (initData(&showInteractionForceFields_, -1,\"showInteractionForceFields\",\"display Interaction Force Fields\"))
  , showWireFrame_              (initData(&showWireFrame_,              -1,\"showWireFrame\",\"display in WireFrame\"))
  , showNormals_                (initData(&showNormals_,                -1,\"showNormals\",\"display Normals\"))
#ifdef SOFA_SMP
  , showProcessorColor_                (initData(&showProcessorColor_,                -1,\"showProcessorColor\",\"display Processor Color\"))
#endif
#ifdef SOFA_DEV
#ifdef SOFA_SUPPORT_MULTIRESOLUTION
  , currentLevel_(initData(&currentLevel_,0,\"currentLevel\",\"Current level of details\"))
  , coarsestLevel_(initData(&coarsestLevel_,3,\"coarsestLevel\",\"Coarsest level of details\"))
  , finestLevel_(initData(&finestLevel_,0,\"finestLevel\",\"Finest level of details\"))
#endif
#endif // SOFA_DEV
#ifdef SOFA_SMP
  ,  processor(initData(&processor,(int )-1,\"processor\",\"assigned processor\"))
  ,  gpuPrioritary(initData(&gpuPrioritary,false,\"gpuPrioritary\",\"node should be executed on GPU\")),
//  is_partition_(initData(&is_partition_,false,\"partition\",\"is a parallel partition\"))
  partition_(0)
#endif
${throw}{
  ${body}}
"
	
	
	
	
      end

      operation 304816 "~Context"
	cpp_virtual cpp_inline public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw} {};
"
	
	
	
	
      end

      operation 304944 "isActive"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// The Context is active

${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ @name Parameters
/ @{
/ The Context is active"
      end

      operation 305072 "setActive"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ State of the context"
      end

      operation 305200 "getLocalGravity"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 183344 // Vec3
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Gravity vector in local coordinates
// const Context::Vec3& Context::getGravity() const
// {
// 	return gravity_;
// }
/// Gravity vector in local coordinates

${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Gravity in the local coordinate system"
      end

      operation 305328 "getGravityInWorld"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 183344 // Vec3
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Gravity vector in world coordinates

${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Gravity in the local coordinate system
virtual void setGravity(const Vec3& );
/ Gravity in world coordinates"
      end

      operation 305456 "setGravityInWorld"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "g" type class_ref 183344 // Vec3
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Gravity vector
// void Context::setGravity(const Vec3& g)
// {
// 	gravity_ = g;
// }
/// Gravity vector

${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Gravity in world coordinates"
      end

      operation 305584 "getDt"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "double"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Simulation timestep"
      end

      operation 305712 "getTime"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "double"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Simulation time"
      end

      operation 305840 "getAnimate"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Animation flag"
      end

      operation 305968 "getShowCollisionModels"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Collision Models"
      end

      operation 306096 "getShowBoundingCollisionModels"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Bounding Collision Models"
      end

      operation 306224 "getShowBehaviorModels"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Behavior Models"
      end

      operation 306352 "getShowVisualModels"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Visual Models"
      end

      operation 306480 "getShowMappings"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Mappings"
      end

      operation 306608 "getShowMechanicalMappings"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Mechanical Mappings"
      end

      operation 306736 "getShowForceFields"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: ForceFields"
      end

      operation 306864 "getShowInteractionForceFields"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: InteractionForceFields"
      end

      operation 306992 "getShowWireFrame"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: WireFrame"
      end

      operation 307120 "getShowNormals"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Display flags: Normal

${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Normals"
      end

      operation 307248 "getShowProcessorColor"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Display flags: Normal

${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 307376 "getCurrentLevel"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "int"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "// Multiresolution

${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Multiresolution support (UNSTABLE)"
      end

      operation 307504 "getCoarsestLevel"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "int"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Multiresolution support (UNSTABLE)"
      end

      operation 307632 "getFinestLevel"
	preserve_cpp_body_indent const cpp_virtual public explicit_return_type "int"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Multiresolution support (UNSTABLE)"
      end

      operation 307760 "getPositionInWorld"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 183216 // Frame
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// Projection from the local coordinate system to the world coordinate system.

${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ @}
/ @name Local Coordinate System
/ @{
/ Projection from the local coordinate system to the world coordinate system."
      end

      operation 307888 "setPositionInWorld"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "f" type class_ref 183216 // Frame
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Projection from the local coordinate system to the world coordinate system."
      end

      operation 308016 "getVelocityInWorld"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 183600 // SpatialVector
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Spatial velocity (linear, angular) of the local frame with respect to the world"
      end

      operation 308144 "setVelocityInWorld"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "v" type class_ref 183600 // SpatialVector
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Spatial velocity (linear, angular) of the local frame with respect to the world"
      end

      operation 308272 "getVelocityBasedLinearAccelerationInWorld"
	preserve_cpp_body_indent const cpp_virtual public return_type class_ref 183344 // Vec3
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}const ${type} & ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Linear acceleration of the origin induced by the angular velocity of the ancestors"
      end

      operation 308400 "setVelocityBasedLinearAccelerationInWorld"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "a" type class_ref 183344 // Vec3
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Linear acceleration of the origin induced by the angular velocity of the ancestors"
      end

      operation 308528 "setDt"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "double"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "//===============================================================================
/// Simulation timestep

${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ @}
/ @name Parameters Setters
/ @{
/ Simulation timestep"
      end

      operation 308656 "setTime"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "double"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Simulation time"
      end

      operation 308784 "setAnimate"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Animation flag"
      end

      operation 308912 "setShowCollisionModels"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Collision Models"
      end

      operation 309040 "setShowBehaviorModels"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Behavior Models"
      end

      operation 309168 "setShowBoundingCollisionModels"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Bounding Collision Models"
      end

      operation 309296 "setShowVisualModels"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Visual Models"
      end

      operation 309424 "setShowMappings"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Mappings"
      end

      operation 309552 "setShowMechanicalMappings"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Mechanical Mappings"
      end

      operation 309680 "setShowForceFields"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: ForceFields"
      end

      operation 309808 "setShowInteractionForceFields"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: InteractionForceFields"
      end

      operation 309936 "setShowWireFrame"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: WireFrame"
      end

      operation 310064 "setShowNormals"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Display flags: Normals"
      end

      operation 310192 "setShowProcessorColor"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "val" explicit_type "bool"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 310320 "setCurrentLevel"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "bool"
	nparams 1
	  param in name "l" explicit_type "int"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "// Multiresolution

${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Multiresolution support (UNSTABLE) : Set the current level, return false if l >= coarsestLevel"
      end

      operation 310448 "setCoarsestLevel"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "l" explicit_type "int"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Multiresolution support (UNSTABLE)"
      end

      operation 310576 "setFinestLevel"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "l" explicit_type "int"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Multiresolution support (UNSTABLE)"
      end

      operation 310704 "is_partition"
	const cpp_inline public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {return is_partition_.getValue();};
"
	
	
	
	
      end

      operation 310832 "getPartition"
	const cpp_inline public explicit_return_type "Iterative::IterativePartition"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {return partition_;};
"
	
	
	
	
      end

      operation 310960 "getProcessor"
	preserve_cpp_body_indent const public explicit_return_type "int"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Accessor to the object processor"
      end

      operation 311088 "setProcessor"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param in name "p" explicit_type "int"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 311216 "copyContext"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param in name "c" type class_ref 183088 // Context
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "//======================

${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ @}
/ Copy the context variables from the given instance"
      end

      operation 311344 "copySimulationContext"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param in name "c" type class_ref 183088 // Context
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Copy the context variables of visualization from the given instance"
      end

      operation 311472 "copyVisualContext"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param in name "c" type class_ref 183088 // Context
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Copy the context variables of visualization from the given instance"
      end

      operation 311600 "fusionVisualContext"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param in name "c" type class_ref 183088 // Context
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Fusion the context variables of visualization from the given instance with the current instance"
      end
    end

    class 183728 "ContextObject"
      abstract visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 *  \\brief Base class for simulation objects that modify the shared context (such as gravity, local coordinate system, ...).
 *"
      classrelation 165808 // <generalisation>
	relation 165808 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 165808 // <generalisation>
	  b parent class_ref 180784 // typedef13
      end

      classrelation 165936 // <generalisation>
	relation 165936 ---|>
	  a private
	    cpp default "${type}"
	    classrelation_ref 165936 // <generalisation>
	  b parent class_ref 128304 // BaseObject
      end

      operation 311728 "ContextObject"
	cpp_inline public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw} : BaseObject()
    {};
"
	
	
	
	
      end

      operation 311856 "~ContextObject"
	cpp_virtual cpp_inline public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw} {};
"
	
	
	
	
      end

      operation 311984 "apply"
	abstract cpp_virtual public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
	comment "/ modify the Context"
      end

      operation 312112 "getContext"
	cpp_inline protected return_type class_ref 141104 // BaseContext
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        return const_cast<BaseContext*>(this->context_);
    };
"
	
	
	
	
	comment "/ Get a writable pointer to the context.
/ Note that this method should only be called inside apply()"
      end
    end

    class 183856 "TData"
      abstract visibility package 
      nformals 1
      formal name "T" type "class" explicit_default_value "void*"
        explicit_extends ""
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 *  \\brief Abstract templated data, readable and writable from/to a string.
 *"
      classrelation 166064 // <generalisation>
	relation 166064 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 166064 // <generalisation>
	  b parent class_ref 179632 // BaseData
      end

      class 183984 "value_type"
	visibility package stereotype "typedef" explicit_base_type "T"
	cpp_decl "${comment}typedef ${type} ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
      end

      operation 312240 "TData"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "init" explicit_type "BaseInitData"
	cpp_decl "    ${comment}${inline}explicit ${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : BaseData(init), parentData(NULL)
    {
    };
"
	
	
	
	
      end

      operation 312368 "TData"
	cpp_inline public explicit_return_type ""
	nparams 5
	  param in name "helpMsg" explicit_type "char"
	    defaultvalue "0"
	  param in name "isDisplayed" explicit_type "bool"
	    defaultvalue "true"
	  param in name "isReadOnly" explicit_type "bool"
	    defaultvalue "false"
	  param inout name "owner" type class_ref 179376 // Base
	    defaultvalue "NULL"
	  param in name "name" explicit_type "char"
	    defaultvalue "\"\""
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} * ${p0}${v0}, ${t1} ${p1}${v1}, ${t2} ${p2}${v2}, ${t3} * ${p3}${v3}, const ${t4} * ${p4}${v4}${)}${volatile}${throw} : BaseData(helpMsg, isDisplayed, isReadOnly, owner, name), parentData(NULL)
    {
    };
"
	
	
	
	
      end

      operation 312496 "~TData"
	cpp_virtual cpp_inline public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw} {};
"
	
	
	
	
      end

      operation 312624 "printValue"
	preserve_cpp_body_indent const cpp_inline public explicit_return_type "void"
	nparams 1
	  param inout name "out" explicit_type "std::ostream"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// General case for printing default value

${inline}${type} ${class}::${name}${(}${t0} & ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 312752 "getValueString"
	preserve_cpp_body_indent const cpp_inline public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "/// General case for printing default value

${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 312880 "getValueTypeString"
	preserve_cpp_body_indent const cpp_inline public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 313008 "getValueTypeInfo"
	const cpp_virtual cpp_inline public explicit_return_type "sofa::defaulttype::AbstractTypeInfo"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        return sofa::defaulttype::VirtualTypeInfo<T>::get();
    };
"
	
	
	
	
	comment " { return std::string(typeid(m_value).name()); }
/ Get info about the value type of the associated variable"
      end

      operation 313136 "virtualGetValue"
	abstract const cpp_virtual public explicit_return_type "T"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
      end

      operation 313264 "virtualSetValue"
	abstract cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "v" explicit_type "T"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
      end

      operation 313392 "virtualSetLink"
	abstract cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "bd" type class_ref 179632 // BaseData
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
      end

      operation 313520 "virtualBeginEdit"
	abstract cpp_virtual public explicit_return_type "T"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
      end

      operation 313648 "virtualEndEdit"
	abstract cpp_virtual public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	
	
	
	
      end

      operation 313776 "getValueVoidPtr"
	const cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        return &(virtualGetValue());
    };
"
	
	
	
	
	comment "/ Get current value as a void pointer (use getValueTypeInfo to find how to access it)"
      end

      operation 313904 "beginEditVoidPtr"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        return virtualBeginEdit();
    };
"
	
	
	
	
	comment "/ Begin edit current value as a void pointer (use getValueTypeInfo to find how to access it)"
      end

      operation 314032 "endEditVoidPtr"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        virtualEndEdit();
    };
"
	
	
	
	
	comment "/ End edit current value as a void pointer (use getValueTypeInfo to find how to access it)"
      end

      operation 314160 "read"
	cpp_virtual cpp_inline public explicit_return_type "bool"
	nparams 1
	  param inout name "s" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        if (s.empty())
            return false;
        //serr<<\"Field::read \"<<s.c_str()<<sendl;
        std::istringstream istr( s.c_str() );
        istr >> *virtualBeginEdit();
        virtualEndEdit();
        if( istr.fail() )
        {
            return false;
        }
        else
        {
            return true;
        }
    };
"
	
	
	
	
	comment "* Try to read argument value from an input stream.
	Return false if failed"
      end

      operation 314288 "isCounterValid"
	const cpp_virtual cpp_inline public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {return true;};
"
	
	
	
	
      end

      operation 314416 "copyValue"
	cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "parent" type class_ref 183856 // TData
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        virtualSetValue(parent->virtualGetValue());
        return true;
    };
"
	
	
	
	
      end

      operation 314544 "copyValue"
	cpp_virtual cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "parent" type class_ref 179632 // BaseData
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        const TData<T>* p = dynamic_cast<const TData<T>*>(parent);
        if (p)
        {
            virtualSetValue(p->virtualGetValue());
            return true;
        }
        return BaseData::copyValue(parent);
    };
"
	
	
	
	
      end

      operation 314672 "validParent"
	cpp_virtual cpp_inline public explicit_return_type "bool"
	nparams 1
	  param inout name "parent" type class_ref 179632 // BaseData
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        if (dynamic_cast<TData<T>*>(parent))
            return true;
        return BaseData::validParent(parent);
    };
"
	
	
	
	
      end

      operation 314800 "doSetParent"
	cpp_inline protected explicit_return_type "void"
	nparams 1
	  param inout name "parent" type class_ref 179632 // BaseData
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        parentData = dynamic_cast<TData<T>*>(parent);
        BaseData::doSetParent(parent);
    };
"
	
	
	
	
      end

      operation 314928 "updateFromParentValue"
	cpp_inline protected explicit_return_type "bool"
	nparams 1
	  param in name "parent" type class_ref 179632 // BaseData
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        if (parent == parentData)
        {
            //virtualSetValue(parentData->virtualGetValue());
            virtualSetLink(*parentData);
            return true;
        }
        else
            return BaseData::updateFromParentValue(parent);
    };
"
	
	
	
	
      end

      attribute 160432 "parentData"
	protected type class_ref 183856 // TData
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end
    end

    class 184112 "DataContainer<T,false>"
      visibility package 
      nformals 1
      formal name "T" type "class" explicit_default_value ""
        explicit_extends ""
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      attribute 160560 "data"
	protected explicit_type "T"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      operation 315056 "DataContainer"
	cpp_inline public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw} : data(T())// BUGFIX (Jeremie A.): Force initialization of basic types to 0 (bool, int, float, etc).
    {
    };
"
	
	
	
	
      end

      operation 315184 "DataContainer"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "value" explicit_type "T"
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : data(value)
    {
    };
"
	
	
	
	
      end

      operation 315312 "DataContainer"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "dc" explicit_type "DataContainer<T, false>"
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : data(dc.getValue())
    {
    };
"
	
	
	
	
      end

      operation 315440 "operator ="
	cpp_inline public explicit_return_type "DataContainer<T, false>"
	nparams 1
	  param in name "dc" explicit_type "DataContainer<T, false>"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        data = dc.getValue();
        return *this;
    };
"
	
	
	
	
      end

      operation 315568 "beginEdit"
	cpp_inline public explicit_return_type "T"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return &data; };
"
	
	
	
	
      end

      operation 315696 "endEdit"
	cpp_inline public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {};
"
	
	
	
	
      end

      operation 315824 "getValue"
	const cpp_inline public explicit_return_type "T"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract} { return data; };
"
	
	
	
	
      end

      operation 315952 "setValue"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "T"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        data = value;
    };
"
	
	
	
	
      end
    end

    class 184240 "DataContainer<T,true>"
      visibility package 
      nformals 1
      formal name "T" type "class" explicit_default_value ""
        explicit_extends ""
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "    T& value() { return data; }"
      class 184368 "Counter"
	visibility package stereotype "typedef" explicit_base_type "unsigned int"
	cpp_decl "${comment}typedef ${type} ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
      end

      attribute 160688 "data"
	protected explicit_type "T"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      classrelation 166192 // cpt (<unidirectional association>)
	relation 166192 --->
	  a role_name "cpt" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	    classrelation_ref 166192 // cpt (<unidirectional association>)
	  b parent class_ref 184368 // Counter
      end

      operation 316080 "DataContainer"
	cpp_inline public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw} : data(new T(T())) // BUGFIX (Jeremie A.): Force initialization of basic types to 0 (bool, int, float, etc).
    , cpt(new Counter(1))
    {
    };
"
	
	
	
	
      end

      operation 316208 "DataContainer"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "value" explicit_type "T"
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : data(new T(value))
    , cpt(new Counter(1))
    {
    };
"
	
	
	
	
      end

      operation 316336 "DataContainer"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "dc" explicit_type "DataContainer"
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : data(dc.data)
    , cpt(dc.cpt)
    {
        ++(*cpt);
    };
"
	
	
	
	
      end

      operation 316464 "~DataContainer"
	cpp_inline public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw} {
        if ((--(*cpt)) == 0) // last ref to data
        {
            delete cpt;
            delete data;
        }
    };
"
	
	
	
	
      end

      operation 316592 "operator ="
	cpp_inline public explicit_return_type "DataContainer<T, true>"
	nparams 1
	  param in name "dc" explicit_type "DataContainer<T, true>"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        //avoid self reference
        if(&dc != this)
        {
            if ((--(*cpt)) == 0) // last ref to data
            {
                delete cpt;
                delete data;
            }
            this->data = dc.data;
            this->cpt = dc.cpt;

            ++(*cpt);
        }

        return *this;
    };
"
	
	
	
	
      end

      operation 316720 "beginEdit"
	cpp_inline public explicit_return_type "T"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        if (*cpt > 1)
        {
            T* newData = new T(*data);
            if ((--(*cpt)) == 0) // last ref to data, not that this can only happen if another thread released a reference between this test and the previous if condition
            {
                delete cpt;
                delete data;
            }

            cpt = new Counter(1);
            data = newData;
        }
        return data;
    };
"
	
	
	
	
      end

      operation 316848 "endEdit"
	cpp_inline public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
    };
"
	
	
	
	
      end

      operation 316976 "getValue"
	const cpp_inline public explicit_return_type "T"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        return *data;
    };
"
	
	
	
	
      end

      operation 317104 "setValue"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "T"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        if (*cpt >= 1)
        {
            if ((--(*cpt)) == 0) // last ref to data, not that this can only happen if another thread released a reference between this test and the previous if condition
            {
                delete cpt;
                delete data;
            }

            cpt = new Counter(1);
            data = &value;
        }

    };
"
	
	
	
	
      end
    end

    class 185904 "DataFileNameVector"
      visibility package 
      nactuals 1
      actual class class_ref 170032 // Data
        rank 0 explicit_value "sofa::helper::vector<std::string>"
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 167216 // <realization>
	relation 167216 -_-|>
	  stereotype "bind"
	  a public
	    cpp default "${type}"
	    classrelation_ref 167216 // <realization>
	  b parent class_ref 170032 // Data
      end

      class 186032 "Inherit"
	visibility package stereotype "typedef" explicit_base_type "sofa::core::objectmodel::Data<sofa::helper::vector<std::string> >"
	cpp_decl "${comment}typedef ${type} ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
      end

      operation 322480 "DataFileNameVector"
	cpp_inline public explicit_return_type ""
	nparams 3
	  param in name "helpMsg" explicit_type "char"
	    defaultvalue "0"
	  param in name "isDisplayed" explicit_type "bool"
	    defaultvalue "true"
	  param in name "isReadOnly" explicit_type "bool"
	    defaultvalue "false "
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} * ${p0}${v0}, ${t1} ${p1}${v1}, ${t2} ${p2}${v2}${)}${volatile}${throw} : Inherit(helpMsg, isDisplayed, isReadOnly)
    {
    };
"
	
	
	
	
      end

      operation 322608 "DataFileNameVector"
	cpp_inline public explicit_return_type ""
	nparams 4
	  param in name "value" explicit_type "sofa::helper::vector<std::string>"
	  param in name "helpMsg" explicit_type "char"
	    defaultvalue "0"
	  param in name "isDisplayed" explicit_type "bool"
	    defaultvalue "true"
	  param in name "isReadOnly" explicit_type "bool"
	    defaultvalue "false "
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} & ${p0}${v0}, const ${t1} * ${p1}${v1}, ${t2} ${p2}${v2}, ${t3} ${p3}${v3}${)}${volatile}${throw} : Inherit(value, helpMsg, isDisplayed, isReadOnly)
    {
		updatePath();
    };
"
	
	
	
	
      end

      operation 322736 "DataFileNameVector"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "d" type class_ref 186032 // Inherit
	cpp_decl "    ${comment}${inline}explicit ${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : Inherit(d)
    {
		updatePath();
    };
"
	
	
	
	
      end

      operation 322864 "DataFileNameVector"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "init" type class_ref 179760 // BaseInitData
	cpp_decl "    ${comment}${inline}explicit ${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : Inherit(init)
    {
    };
"
	
	
	
	
	comment "* Constructor
        this constructor should be used through the initData() methods"
      end

      operation 322992 "DataFileNameVector"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "init" explicit_type "Inherit::InitData"
	cpp_decl "    ${comment}${inline}explicit ${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : Inherit(init)
    {
    };
"
	
	
	
	
	comment "* Constructor
        this constructor should be used through the initData() methods"
      end

      operation 323120 "~DataFileNameVector"
	cpp_virtual cpp_inline public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw} {
    };
"
	
	
	
	
      end

      operation 323248 "endEdit"
	cpp_inline public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        updatePath();
        Inherit::endEdit();
    };
"
	
	
	
	
      end

      operation 323376 "setValue"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "v" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        beginEdit()->push_back(v);
        endEdit();
    };
"
	
	
	
	
      end

      operation 323504 "virtualSetValue"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "v" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { setValue(v); };
"
	
	
	
	
      end

      operation 323632 "read"
	cpp_virtual cpp_inline public explicit_return_type "bool"
	nparams 1
	  param inout name "s" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
		bool ret = Inherit::read(s);
		if (ret) updatePath();
		return ret;
    };
"
	
	
	
	
      end

      operation 323760 "getRelativePath"
	cpp_virtual cpp_inline public explicit_return_type "std::string"
	nparams 1
	  param in name "i" explicit_type "uint"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} { return getValue()[i]; };
"
	
	
	
	
      end

      operation 323888 "getFullPath"
	const cpp_virtual cpp_inline public explicit_return_type "std::string"
	nparams 1
	  param in name "i" explicit_type "uint"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        this->updateIfDirty();
        return fullpath[i];
    };
"
	
	
	
	
      end

      operation 324016 "getAbsolutePath"
	const cpp_virtual cpp_inline public explicit_return_type "std::string"
	nparams 1
	  param in name "i" explicit_type "uint"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        this->updateIfDirty();
        return fullpath[i];
    };
"
	
	
	
	
      end

      operation 324144 "update"
	cpp_virtual cpp_inline public explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
        this->Inherit::update();
        this->updatePath();
    };
"
	
	
	
	
      end

      operation 324272 "updatePath"
	preserve_cpp_body_indent protected explicit_return_type "void"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      attribute 161328 "fullpath"
	protected explicit_type "std::string"
	stereotype "sofa::helper::vector"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end
    end

    class 186160 "DetachNodeEvent"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 *  Event indicating that a child node is being detached from the scene.
 *  Any reference to ony of its descendant (such as active contacts) should be removed."
      classrelation 167600 // <generalisation>
	relation 167600 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 167600 // <generalisation>
	  b parent class_ref 182064 // Event
      end

      operation 326704 "DetachNodeEvent"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "n" type class_ref 182192 // BaseNode
	cpp_decl "    ${comment}${inline}${name}${(}${t0} * ${p0}${v0}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${t0} * ${p0}${)}
: node(n)
${throw}{
  ${body}}
"
	
	
	
	
      end

      operation 326832 "~DetachNodeEvent"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
      end

      operation 326960 "getNode"
	preserve_cpp_body_indent const public return_type class_ref 182192 // BaseNode
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 327088 "contains"
	preserve_cpp_body_indent const public explicit_return_type "bool"
	nparams 1
	  param inout name "n" type class_ref 182192 // BaseNode
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 327216 "contains"
	preserve_cpp_body_indent const public explicit_return_type "bool"
	nparams 1
	  param inout name "o" type class_ref 128304 // BaseObject
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 327344 "getClassName"
	const cpp_virtual cpp_inline public explicit_return_type "char"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return \"DetachNodeEvent\"; };
"
	
	
	
	
      end

      classrelation 167728 // node (<unidirectional association>)
	relation 167728 --->
	  a role_name "node" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	    classrelation_ref 167728 // node (<unidirectional association>)
	  b parent class_ref 182192 // BaseNode
      end
    end

    class 186288 "GLInitializedEvent"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 * @brief GlInitializedEvent Class
 *
 * Implements an Event that notifies when OpenGL is initialized"
      classrelation 167856 // <generalisation>
	relation 167856 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 167856 // <generalisation>
	  b parent class_ref 182064 // Event
      end

      operation 328112 "GLInitializedEvent"
	cpp_inline public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw} {};
"
	
	
	
	
	comment "*
	 * @brief Default constructor."
      end

      operation 328240 "~GLInitializedEvent"
	cpp_inline public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw} {};
"
	
	
	
	
	comment "*
	 * @brief Default destructor."
      end

      operation 328368 "getClassName"
	const cpp_virtual cpp_inline public explicit_return_type "char"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return \"GLInitializedEvent\"; };
"
	
	
	
	
      end
    end

    class 186416 "JoystickEvent"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
* @brief JoystickEvent Class
*
* "
      classrelation 167984 // <generalisation>
	relation 167984 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 167984 // <generalisation>
	  b parent class_ref 182064 // Event
      end

      class 186544 "AxisEvent"
	visibility package 
	cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	operation 328496 "AxisEvent"
	  preserve_cpp_body_indent public explicit_return_type ""
	  nparams 2
	    param in name "index" explicit_type "int"
	    param in name "value" explicit_type "float"
	  cpp_decl "    ${comment}${inline}${name}${(}const ${t0} ${p0}${v0}, const ${t1} ${p1}${v1}${)}${volatile}${throw};
"
	  cpp_def "//************
// * AxisEvent
// ************

${inline}${class}::${name}${(}const ${t0} ${p0}, const ${t1} ${p1}${)}
	: m_index( index )
	, m_value( value )
${throw}{
  ${body}}
"
	  
	  
	  
	  
	  comment "*
		 * @brief	Constructor
		 *
		 * @param	index			axis' index
		 * @param	value			axis' value (must be in the range [-1, 1])
		 *
		 * @pre		(value >= -1.f) && (value <= 1.f)"
	end

	operation 328624 "~AxisEvent"
	  cpp_virtual cpp_inline public explicit_return_type ""
	  nparams 0
	  cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw} {};
"
	  
	  
	  
	  
	  comment "*
		 * @brief Default destructor. "
	end

	operation 328752 "getIndex"
	  preserve_cpp_body_indent const public explicit_return_type "int"
	  nparams 0
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	  cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	  
	  
	  
	  
	  comment "*
		 * @name	Accessors
		 
@{
*
		 * @brief	Retrieves the index of the axis.
		 *
		 * @return	the axis' index"
	end

	operation 328880 "getValue"
	  preserve_cpp_body_indent const public explicit_return_type "float"
	  nparams 0
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	  cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	  
	  
	  
	  
	  comment "*
		 * @brief	Retrieves the value of the axis.
		 *
		 * @remark	Values are always in the range [-1, 1].
		 *
		 * @return	the axis' value"
	end

	operation 329008 "getClassName"
	  const cpp_virtual cpp_inline public explicit_return_type "char"
	  nparams 0
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return \"AxisEvent\"; };
"
	  
	  
	  
	  
	  comment "@}"
	end

	attribute 161840 "m_index"
	  const_attribute private explicit_type "int"
	  cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	  comment "/< The index of the axis"
	end

	attribute 161968 "m_value"
	  const_attribute private explicit_type "float"
	  cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	  comment "/< The value of the xais"
	end
      end

      class 186672 "ButtonEvent"
	visibility package 
	cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	operation 329136 "ButtonEvent"
	  preserve_cpp_body_indent public explicit_return_type ""
	  nparams 1
	    param in name "buttons" explicit_type "int"
	      defaultvalue "0 "
	  cpp_decl "    ${comment}${inline}${name}${(}const ${t0} ${p0}${v0}${)}${volatile}${throw};
"
	  cpp_def "//*************
// * ButtonEvent
// *************

${inline}${class}::${name}${(}const ${t0} ${p0}${)}${throw}{
  ${body}}
"
	  
	  
	  
	  
	  comment "*
		 * @brief	Default constructor"
	end

	operation 329264 "~ButtonEvent"
	  cpp_virtual cpp_inline public explicit_return_type ""
	  nparams 0
	  cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw} {};
"
	  
	  
	  
	  
	  comment "*
		 * @brief	Default destructor"
	end

	operation 329392 "setButtons"
	  preserve_cpp_body_indent public explicit_return_type "void"
	  nparams 1
	    param in name "buttons" explicit_type "int"
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	  cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	  
	  
	  
	  
	  comment "*
		 * @brief"
	end

	operation 329520 "getButton"
	  preserve_cpp_body_indent const public explicit_return_type "bool"
	  nparams 1
	    param in name "i" explicit_type "int"
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	  cpp_def "${comment}${inline}${type} ${class}::${name}${(}const ${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	  
	  
	  
	  
	  comment "*
		 * @brief"
	end

	operation 329648 "getClassName"
	  const cpp_virtual cpp_inline public explicit_return_type "char"
	  nparams 0
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return \"ButtonEvent\"; };
"
	  
	  
	  
	  
	end

	attribute 162096 "m_buttons"
	  private explicit_type "bool"
	  multiplicity "[32]"
	  cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${multiplicity}${value};
"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	  comment "/< Current State of the whole Joystick Buttons"
	end
      end

      class 186800 "HatEvent"
	visibility package 
	cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	class 186928 "State"
	  visibility package stereotype "enum"
	  cpp_decl "${comment}enum ${name} {
${items}
};
"
	  java_decl ""
	  php_decl ""
	  python_2_2 python_decl ""
	  idl_decl ""
	  explicit_switch_type ""
	  
	  attribute 162224 "CENTERED"
	    public type class_ref 186928 // State
	    init_value " 0"
	    cpp_decl "  ${name}${value},${comment}"
	    java_decl ""
	    php_decl ""
	    python_decl ""
	    idl_decl ""
	  end

	  attribute 162352 "UP"
	    public type class_ref 186928 // State
	    init_value " 1 << 0"
	    cpp_decl "  ${name}${value},${comment}"
	    java_decl ""
	    php_decl ""
	    python_decl ""
	    idl_decl ""
	  end

	  attribute 162480 "RIGHT"
	    public type class_ref 186928 // State
	    init_value " 1 << 1"
	    cpp_decl "  ${name}${value},${comment}"
	    java_decl ""
	    php_decl ""
	    python_decl ""
	    idl_decl ""
	  end

	  attribute 162608 "DOWN"
	    public type class_ref 186928 // State
	    init_value " 1 << 2"
	    cpp_decl "  ${name}${value},${comment}"
	    java_decl ""
	    php_decl ""
	    python_decl ""
	    idl_decl ""
	  end

	  attribute 162736 "LEFT"
	    public type class_ref 186928 // State
	    init_value " 1 << 3"
	    cpp_decl "  ${name}${value},${comment}"
	    java_decl ""
	    php_decl ""
	    python_decl ""
	    idl_decl ""
	  end

	  attribute 162864 "UP_RIGHT"
	    public type class_ref 186928 // State
	    init_value " UP|RIGHT"
	    cpp_decl "  ${name}${value},${comment}"
	    java_decl ""
	    php_decl ""
	    python_decl ""
	    idl_decl ""
	  end

	  attribute 162992 "DOWN_RIGHT"
	    public type class_ref 186928 // State
	    init_value " DOWN|RIGHT"
	    cpp_decl "  ${name}${value},${comment}"
	    java_decl ""
	    php_decl ""
	    python_decl ""
	    idl_decl ""
	  end

	  attribute 163120 "DOWN_LEFT"
	    public type class_ref 186928 // State
	    init_value " DOWN|LEFT"
	    cpp_decl "  ${name}${value},${comment}"
	    java_decl ""
	    php_decl ""
	    python_decl ""
	    idl_decl ""
	  end

	  attribute 163248 "UP_LEFT"
	    public type class_ref 186928 // State
	    init_value " UP|LEFT
		"
	    cpp_decl "  ${name}${value},${comment}"
	    java_decl ""
	    php_decl ""
	    python_decl ""
	    idl_decl ""
	  end
	end

	operation 329776 "HatEvent"
	  preserve_cpp_body_indent public explicit_return_type ""
	  nparams 2
	    param in name "index" explicit_type "int"
	    param in name "state" type class_ref 186928 // State
	  cpp_decl "    ${comment}${inline}${name}${(}const ${t0} ${p0}${v0}, const ${t1} ${p1}${v1}${)}${volatile}${throw};
"
	  cpp_def "//**********
// * HatEvent
// **********

${inline}${class}::${name}${(}const ${t0} ${p0}, const ${t1} ${p1}${)}
	: m_index( index )
	, m_state( state )	
${throw}{
  ${body}}
"
	  
	  
	  
	  
	  comment "*
		 * @brief	Constructor
		 *
		 * @param	index			the hat's index
		 * @param	state			the hat's state"
	end

	operation 329904 "~HatEvent"
	  cpp_virtual cpp_inline public explicit_return_type ""
	  nparams 0
	  cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw} {};
"
	  
	  
	  
	  
	  comment "*
		 * @brief Default destructor. "
	end

	operation 330032 "getIndex"
	  preserve_cpp_body_indent const public explicit_return_type "int"
	  nparams 0
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	  cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	  
	  
	  
	  
	  comment "*
		 * @name	Accessors
		 
@{
*
		 * @brief	Retrieves the index of the hat.
		 *
		 * @return	the hat's index"
	end

	operation 330160 "getState"
	  preserve_cpp_body_indent const public return_type class_ref 186928 // State
	  nparams 0
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	  cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	  
	  
	  
	  
	  comment "*
		 * @brief	Retrieves the state of the hat.
		 *
		 * @return	the hat's state"
	end

	operation 330288 "getClassName"
	  const cpp_virtual cpp_inline public explicit_return_type "char"
	  nparams 0
	  cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return \"HatEvent\"; };
"
	  
	  
	  
	  
	  comment "@}"
	end

	attribute 163376 "m_index"
	  const_attribute private explicit_type "int"
	  cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	  comment "/< The index of the hat"
	end

	classrelation 168112 // m_state (<directional composition>)
	  relation 168112 *-->
	    a role_name "m_state" const_relation private
	      comment "/< The state of the hat"
	      cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	      classrelation_ref 168112 // m_state (<directional composition>)
	    b parent class_ref 186928 // State
	end
      end

      operation 330416 "getAxisEvent"
	preserve_cpp_body_indent const public return_type class_ref 186544 // AxisEvent
	nparams 1
	  param in name "index" explicit_type "int"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}const ${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}const ${type} * ${class}::${name}${(}const ${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "*
	 * @name	Accessors
	 
@{
*
	 * @name Axis
	 
@{"
      end

      operation 330544 "getAxisEvents"
	preserve_cpp_body_indent const public explicit_return_type "std::vector<AxisEvent*>"
	nparams 1
	  param in name "" explicit_type "void"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}const ${type} & ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 330672 "getAxisEventsSize"
	preserve_cpp_body_indent const public explicit_return_type "uint"
	nparams 1
	  param in name "" explicit_type "void"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 330800 "addAxisEvent"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param inout name "aEvent" type class_ref 186544 // AxisEvent
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 330928 "getButtonEvent"
	preserve_cpp_body_indent const public return_type class_ref 186672 // ButtonEvent
	nparams 1
	  param in name "" explicit_type "void"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} * ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "@}
*
	 * @name	Button
	 
@{"
      end

      operation 331056 "getButton"
	preserve_cpp_body_indent const public explicit_return_type "bool"
	nparams 1
	  param in name "buttonIndex" explicit_type "uint"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 331184 "setButtonEvent"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param inout name "bEvent" type class_ref 186672 // ButtonEvent
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 331312 "getHatEvent"
	preserve_cpp_body_indent const public return_type class_ref 186800 // HatEvent
	nparams 1
	  param in name "index" explicit_type "int"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}const ${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}const ${type} * ${class}::${name}${(}const ${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "@}
*
	 * @name Hat
	 
@{"
      end

      operation 331440 "getHatEvents"
	preserve_cpp_body_indent const public explicit_return_type "std::vector<HatEvent*>"
	nparams 1
	  param in name "" explicit_type "void"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}const ${type} & ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 331568 "getHatEventsSize"
	preserve_cpp_body_indent const public explicit_return_type "uint"
	nparams 1
	  param in name "" explicit_type "void"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 331696 "addHatEvent"
	preserve_cpp_body_indent public explicit_return_type "void"
	nparams 1
	  param inout name "hEvent" type class_ref 186800 // HatEvent
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${t0} * ${p0}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
      end

      operation 331824 "JoystickEvent"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${name}${(}${)}${volatile}${throw};
"
	cpp_def "//***************
// * JoystickEvent
// **************

${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
	comment "@}
@}
*
	 * @brief default constructor."
      end

      operation 331952 "~JoystickEvent"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
	comment "*
	 * @brief default destructor."
      end

      operation 332080 "getClassName"
	const cpp_virtual cpp_inline public explicit_return_type "char"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return \"JoystickEvent\"; };
"
	
	
	
	
      end

      classrelation 168240 // axisEvents (<unidirectional association>)
	relation 168240 --->
	  stereotype "std::vector"
	  a role_name "axisEvents" protected
	    comment "/< State of the Analogic Pad"
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}*> ${name}${value};
"
	    classrelation_ref 168240 // axisEvents (<unidirectional association>)
	  b parent class_ref 186544 // AxisEvent
      end

      classrelation 168368 // buttonEvent (<unidirectional association>)
	relation 168368 --->
	  a role_name "buttonEvent" protected
	    comment "/< State of the Joystick Buttons"
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	    classrelation_ref 168368 // buttonEvent (<unidirectional association>)
	  b parent class_ref 186672 // ButtonEvent
      end

      classrelation 168496 // hatEvents (<unidirectional association>)
	relation 168496 --->
	  stereotype "std::vector"
	  a role_name "hatEvents" protected
	    comment "/< State of the directional cross"
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}*> ${name}${value};
"
	    classrelation_ref 168496 // hatEvents (<unidirectional association>)
	  b parent class_ref 186800 // HatEvent
      end
    end

    class 187056 "KeypressedEvent"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
	@author Francois Faure
	@brief This event is propagated along the objects when a key on the keyboard is pressed."
      classrelation 168624 // <generalisation>
	relation 168624 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 168624 // <generalisation>
	  b parent class_ref 182064 // Event
      end

      operation 332208 "KeypressedEvent"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "c" explicit_type "char"
	cpp_decl "    ${comment}${inline}${name}${(}${t0} ${p0}${v0}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${t0} ${p0}${)}
 : Event()
        , m_char(c)
${throw}{
  ${body}}
"
	
	
	
	
	comment "/ Constructor"
      end

      operation 332336 "~KeypressedEvent"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
	comment "/ Destructor"
      end

      operation 332464 "getKey"
	preserve_cpp_body_indent const public explicit_return_type "char"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Return the key pressed"
      end

      operation 332592 "getClassName"
	const cpp_virtual cpp_inline public explicit_return_type "char"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return \"KeypressedEvent\"; };
"
	
	
	
	
      end

      attribute 163504 "m_char"
	protected explicit_type "char"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end
    end

    class 187184 "KeyreleasedEvent"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
	@author Juan Pablo de la Plata
	@brief This event is propagated along the objects when a key on the keyboard is released."
      classrelation 168752 // <generalisation>
	relation 168752 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 168752 // <generalisation>
	  b parent class_ref 182064 // Event
      end

      operation 332720 "KeyreleasedEvent"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "c" explicit_type "char"
	cpp_decl "    ${comment}${inline}${name}${(}${t0} ${p0}${v0}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${t0} ${p0}${)}
 : core::objectmodel::Event()
        , m_char(c)
${throw}{
  ${body}}
"
	
	
	
	
	comment "/ Constructor"
      end

      operation 332848 "~KeyreleasedEvent"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
	comment "/ Destructor"
      end

      operation 332976 "getKey"
	preserve_cpp_body_indent const public explicit_return_type "char"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract};
"
	cpp_def "${comment}${inline}${type} ${class}::${name}${(}${)}${const}${volatile}${throw}${staticnl}{
  ${body}}
"
	
	
	
	
	comment "/ Return the key released"
      end

      operation 333104 "getClassName"
	const cpp_virtual cpp_inline public explicit_return_type "char"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return \"KeyreleasedEvent\"; };
"
	
	
	
	
      end

      attribute 163632 "m_char"
	protected explicit_type "char"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end
    end

    class 187312 "MouseEvent"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 * @brief MouseEvent Class
 *
 * Implements an Event that notifies about a Mouse Interaction."
      classrelation 168880 // <generalisation>
	relation 168880 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 168880 // <generalisation>
	  b parent class_ref 182064 // Event
      end

      class 187440 "State"
	visibility package stereotype "enum"
	cpp_decl "${comment}enum ${name} {
${items}
};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	attribute 163760 "Move"
	  public type class_ref 187440 // State
	  init_value "0"
	  cpp_decl "  ${name}${value},${comment}"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 163888 "LeftPressed"
	  public type class_ref 187440 // State
	  cpp_decl "  ${name}${value},${comment}"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 164016 "LeftReleased"
	  public type class_ref 187440 // State
	  cpp_decl "  ${name}${value},${comment}"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 164144 "RightPressed"
	  public type class_ref 187440 // State
	  cpp_decl "  ${name}${value},${comment}"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 164272 "RightReleased"
	  public type class_ref 187440 // State
	  cpp_decl "  ${name}${value},${comment}"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 164400 "MiddlePressed"
	  public type class_ref 187440 // State
	  cpp_decl "  ${name}${value},${comment}"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 164528 "MiddleReleased"
	  public type class_ref 187440 // State
	  cpp_decl "  ${name}${value},${comment}"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 164656 "Wheel"
	  public type class_ref 187440 // State
	  cpp_decl "  ${name}${value},${comment}"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 164784 "Reset"
	  public type class_ref 187440 // State
	  cpp_decl "  ${name}${value},${comment}"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end
      end

      operation 333232 "MouseEvent"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param in name "state" type class_ref 187440 // State
	  param in name "wheelDelta" explicit_type "int"
	    defaultvalue "0"
	cpp_decl "    ${comment}${inline}${name}${(}${t0} ${p0}${v0}, ${t1} ${p1}${v1}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}${)}
	: sofa::core::objectmodel::Event()
	, m_state(state)
	, m_wheelDelta(wheelDelta)
${throw}{
  ${body}}
"
	
	
	
	
	comment "*
	 * @brief Wheel Mouse Event constructor."
      end

      operation 333360 "MouseEvent"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 3
	  param in name "state" type class_ref 187440 // State
	  param in name "posX" explicit_type "int"
	  param in name "posY" explicit_type "int"
	cpp_decl "    ${comment}${inline}${name}${(}${t0} ${p0}${v0}, ${t1} ${p1}${v1}, ${t2} ${p2}${v2}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${t0} ${p0}, ${t1} ${p1}, ${t2} ${p2}${)}
	: sofa::core::objectmodel::Event()
	, m_state(state)
	, m_posX(posX)
	, m_posY(posY)
${throw}{
  ${body}}
"
	
	
	
	
	comment "*
	 * @brief Default constructor."
      end

      operation 333488 "~MouseEvent"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
	comment "*
	 * @brief Default destructor."
      end

      operation 333616 "getPosX"
	const cpp_inline public explicit_return_type "int"
	nparams 1
	  param in name "" explicit_type "void"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {return m_posX;};
"
	
	
	
	
	comment "*
	 * @name Accessors
	 
@{"
      end

      operation 333744 "getPosY"
	const cpp_inline public explicit_return_type "int"
	nparams 1
	  param in name "" explicit_type "void"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {return m_posY;};
"
	
	
	
	
      end

      operation 333872 "getWheelDelta"
	const cpp_inline public explicit_return_type "int"
	nparams 1
	  param in name "" explicit_type "void"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {return m_wheelDelta;};
"
	
	
	
	
      end

      operation 334000 "getState"
	const cpp_inline public return_type class_ref 187440 // State
	nparams 1
	  param in name "" explicit_type "void"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {return m_state;};
"
	
	
	
	
      end

      operation 334128 "getClassName"
	const cpp_virtual cpp_inline public explicit_return_type "char"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return \"MouseEvent\"; };
"
	
	
	
	
	comment "}@"
      end

      classrelation 169008 // m_state (<directional composition>)
	relation 169008 *-->
	  a role_name "m_state" private
	    comment "/< Mouse State on the event propagation."
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	    classrelation_ref 169008 // m_state (<directional composition>)
	  b parent class_ref 187440 // State
      end

      attribute 164912 "m_wheelDelta"
	private explicit_type "int"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
	comment "/< Mouse wheel delta."
      end
    end

    class 187568 "ObjectRef"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "StateRef maybe ?? "
      classrelation 169136 // refObject (<unidirectional association>)
	relation 169136 --->
	  a role_name "refObject" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	    classrelation_ref 169136 // refObject (<unidirectional association>)
	  b parent class_ref 129456 // BaseState
      end

      attribute 165040 "refStr"
	protected explicit_type "std::string"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      operation 334256 "parseString"
	stereotype "template"
	class_operation cpp_inline public explicit_return_type "RealObject"
	nparams 2
	  param in name "attr" explicit_type "std::string"
	  param inout name "arg" type class_ref 141232 // BaseObjectDescription
	cpp_decl "    ${comment}template<class RealObject>
  ${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} & ${p0}${v0}, ${t1} * ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
        RealObject* obj = NULL;

        size_t posAt = attr.find('@');

        if ( posAt != std::string::npos )
		{
			std::string tmpStr = attr.substr( posAt + 1);
			//convert sofa scene path to xml path
			tmpStr = \"../\" + tmpStr;
			obj = dynamic_cast<RealObject*>( arg->findObject(tmpStr.c_str() ) );
		}

        return obj;
    };
"
	
	
	
	
      end

      operation 334384 "parse"
	stereotype "template"
	class_operation cpp_inline public explicit_return_type "RealObject"
	nparams 2
	  param in name "XMLkeyword" explicit_type "char"
	  param inout name "arg" type class_ref 141232 // BaseObjectDescription
	cpp_decl "    ${comment}template<class RealObject>
  ${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} * ${p0}${v0}, ${t1} * ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
    if (arg == NULL)
    {
      return NULL;
    }
    RealObject* obj = NULL;
		const char *ptr_attr = NULL;
		ptr_attr = arg->getAttribute(XMLkeyword,NULL);

		if (ptr_attr == NULL)
			return obj;

		std::string attr(ptr_attr);
		return ObjectRef::parseString<RealObject>(attr, arg);
    };
"
	
	
	
	
      end

      operation 334512 "convertFromXMLPathToSofaScenePath"
	class_operation cpp_inline public explicit_return_type "std::string"
	nparams 1
	  param in name "xmlPath" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
		//1st Case : path \"..\"
		if (xmlPath == std::string(\"..\") || xmlPath == std::string(\"../\") )
			return \".\";

		//2nd Case : path like this : \"../../test\"
		size_t posAt = xmlPath.find(\"../\");
		//Note: posAt should be 0
		if(posAt == 0)
			return xmlPath.substr(3);

		//3rd : it is not a convertible xml path ...
		return xmlPath;
	};
"
	
	
	
	
      end

      operation 334640 "parseFromXMLPath"
	class_operation cpp_inline public return_type class_ref 179376 // Base
	nparams 2
	  param in name "XMLkeyword" explicit_type "char"
	  param inout name "arg" type class_ref 141232 // BaseObjectDescription
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} * ${name}${(}const ${t0} * ${p0}${v0}, ${t1} * ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
        Base* obj = NULL;
		const char *ptr_attr = NULL;
		ptr_attr = arg->getAttribute(XMLkeyword,NULL);

		if (ptr_attr == NULL)
			return obj;

		std::string attr(ptr_attr);
		obj = arg->findObject(attr.c_str()) ;

		return obj;
    };
"
	
	
	
	
      end

      operation 334768 "getObject"
	stereotype "template"
	const cpp_inline public explicit_return_type "RealObject"
	nparams 1
	  param inout name "context" type class_ref 141104 // BaseContext
	cpp_decl "    ${comment}template<class RealObject>
  ${friend}${static}${inline}${virtual}${type} * ${name}${(}${t0} * ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        RealObject* res = NULL;

		//this method need to be const (i.e do not touch any members)
		//consequently, it is not possible to do 'update-on-read'
        //if(refObject == NULL)
        //{
        res = context->get<RealObject>(refStr);
        //    refObject = res;
        //}
        //else
        //res = dynamic_cast<RealObject*>( refObject );

        return res;
    };
"
	
	
	
	
	comment "operator BaseState*() { return refObject; }"
      end

      operation 334896 "setPath"
	cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "path" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {	
		size_t posAt = path.find('@');
		if(posAt == 0)
		{
			refStr = path.substr(posAt + 1);
			return true;
		}
#ifndef SOFA_DEPRECATE_OLD_API
		else
			refStr = path;

		return true;
#else
		return false;
#endif // SOFA_DEPRECATE_OLD_API
    };
"
	
	
	
	
      end

      operation 335024 "getPath"
	const cpp_inline public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
		return refStr;
	};
"
	
	
	
	
      end

      operation 335152 "read"
	cpp_inline public explicit_return_type "std::istream"
	nparams 1
	  param inout name "is" explicit_type "std::istream"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
		std::string tmp;
        is >> tmp;
		setPath(tmp);
        return is;
    };
"
	
	
	
	
      end

      operation 335280 "write"
	const cpp_inline public explicit_return_type "std::ostream"
	nparams 1
	  param inout name "os" explicit_type "std::ostream"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        os << \"@\" + refStr;
        return os;
    };
"
	
	
	
	
      end

      operation 335408 "operator <<"
	friend cpp_inline public explicit_return_type "std::ostream"
	nparams 2
	  param inout name "os" explicit_type "std::ostream"
	  param in name "ref" type class_ref 187568 // ObjectRef
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
        return ref.write(os);
    };
"
	
	
	
	
      end

      operation 335536 "operator >>"
	friend cpp_inline public explicit_return_type "std::istream"
	nparams 2
	  param inout name "is" explicit_type "std::istream"
	  param inout name "ref" type class_ref 187568 // ObjectRef
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${v0}, ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
        return ref.read(is);
    };
"
	
	
	
	
      end

      operation 335664 "operator =="
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "value" type class_ref 187568 // ObjectRef
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
		return refObject == value.refObject;
    };
"
	
	
	
	
	comment "/ Two ObjectRefs is identical if they have the same reference (i.e the same pointer)"
      end

      operation 335792 "operator !="
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "value" type class_ref 187568 // ObjectRef
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
        return refObject != value.refObject;
    };
"
	
	
	
	
      end
    end

    class 187696 "VectorObjectRef"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 169264 // <generalisation>
	relation 169264 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 169264 // <generalisation>
	  b parent class_ref 187824 // typedef16
      end

      operation 335920 "tokenize"
	class_operation cpp_inline private explicit_return_type "helper::vector<std::string>"
	nparams 1
	  param in name "str" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
		helper::vector<std::string> word_s;
		std::string word;
		unsigned int it=0;
		while (str[it] ==' ') ++it;

		while(it<str.length())
		{
			if((str[it]!=' ') && (str[it]!=','))
			{
				word.push_back(str[it]);
			}
			else if(!word.empty())
			{
				word_s.push_back(word);
				word.clear();
			}

			++it;
		}
		if(!word.empty()) word_s.push_back(word);

		return word_s;
	};
"
	
	
	
	
      end

      operation 336048 "parseAll"
	stereotype "template"
	class_operation cpp_inline public explicit_return_type "bool"
	nparams 3
	  param in name "XMLkeyword" explicit_type "char"
	  param inout name "arg" type class_ref 141232 // BaseObjectDescription
	  param inout name "vObj" explicit_type "helper::vector<RealObject*>"
	cpp_decl "    ${comment}template<class RealObject>
  ${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} * ${p0}${v0}, ${t1} * ${p1}${v1}, ${t2} & ${p2}${v2}${)}${const}${volatile}${throw}${abstract} {
		vObj.clear();

		const char *ptr_attr = NULL;
		ptr_attr = arg->getAttribute(XMLkeyword,NULL);

		if (ptr_attr == NULL)
			return false;

		std::string attr(ptr_attr);
		const helper::vector<std::string> listStrings = VectorObjectRef::tokenize(attr);

		for(unsigned int i=0 ; i<listStrings.size() ; i++)
		{
			RealObject* obj = ObjectRef::parseString<RealObject>(listStrings[i], arg);
			if(obj == NULL){
				vObj.clear();
				return false;
			}
			vObj.push_back(obj);
		}
		return true;
	};
"
	
	
	
	
	comment "/Return false if one of the object is invalid (wrong template, path, etc)"
      end

      operation 336176 "read"
	cpp_inline public explicit_return_type "std::istream"
	nparams 1
	  param inout name "is" explicit_type "std::istream"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
		std::string isStr;
		std::string subValue;
		is >> isStr;

		const helper::vector<std::string> listStrings = VectorObjectRef::tokenize(isStr);
		for(unsigned int i=0 ; i<listStrings.size() ; i++)
		{
			ObjectRef objRef;

			if (objRef.setPath(listStrings[i]))
				this->push_back(objRef);
			else
				std::cerr << \"Error, \" << listStrings[i] << \" is not a link. (Have you forgotten the @ ?\" << std::endl;
		}
        return is;
    };
"
	
	
	
	
      end

      operation 336304 "write"
	const cpp_inline public explicit_return_type "std::ostream"
	nparams 1
	  param inout name "os" explicit_type "std::ostream"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
		for(unsigned int i = 0 ; i < this->size(); i++)
		{
			os << this->at(i) << \" \";
			if(i+1 < this->size())
				os << \" \";
		}

        return os;
    };
"
	
	
	
	
      end

      operation 336432 "operator []"
	const cpp_inline public return_type class_ref 187568 // ObjectRef
	nparams 1
	  param in name "i" explicit_type "uint"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} & ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
    	return this->at(i);
	};
"
	
	
	
	
      end

      operation 336560 "operator []"
	cpp_inline public return_type class_ref 187568 // ObjectRef
	nparams 1
	  param in name "i" explicit_type "uint"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
    	return this->at(i);
    };
"
	
	
	
	
      end

      operation 336688 "operator <<"
	friend cpp_inline public explicit_return_type "std::ostream"
	nparams 2
	  param inout name "os" explicit_type "std::ostream"
	  param in name "ref" type class_ref 187696 // VectorObjectRef
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${v0}, const ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
        return ref.write(os);
    };
"
	
	
	
	
      end

      operation 336816 "operator >>"
	friend cpp_inline public explicit_return_type "std::istream"
	nparams 2
	  param inout name "is" explicit_type "std::istream"
	  param inout name "ref" type class_ref 187696 // VectorObjectRef
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} & ${name}${(}${t0} & ${p0}${v0}, ${t1} & ${p1}${v1}${)}${const}${volatile}${throw}${abstract} {
        return ref.read(is);
    };
"
	
	
	
	
      end

      operation 336944 "operator =="
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "value" type class_ref 187696 // VectorObjectRef
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
		for(unsigned int i = 0 ; i < this->size(); i++)
		{
			if(this->at(i) != value.at(i))
				return false;
		}

		return true;
    };
"
	
	
	
	
	comment "/ Two ObjectRefs is identical if they have the same reference (i.e the same pointer)"
      end

      operation 337072 "operator !="
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "value" type class_ref 187696 // VectorObjectRef
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
		for(unsigned int i = 0 ; i < this->size(); i++)
		{
			if(this->at(i) != value.at(i))
				return true;
		}

		return false;
    };
"
	
	
	
	
      end
    end

    class 187824 "typedef16"
      visibility package stereotype "typedef" explicit_base_type "std::vector<ObjectRef>"
      cpp_decl "${comment}typedef ${type} ${name};
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
    end

    class 188080 "DataVectorObjectRef"
      visibility package 
      nactuals 1
      actual class class_ref 170032 // Data
        rank 0 value class_ref 187696 // VectorObjectRef
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 169648 // <realization>
	relation 169648 -_-|>
	  stereotype "bind"
	  a public
	    cpp default "${type}"
	    classrelation_ref 169648 // <realization>
	  b parent class_ref 170032 // Data
      end

      class 188208 "Inherit"
	visibility package stereotype "typedef" base_type class_ref 187696 // VectorObjectRef
	cpp_decl "${comment}typedef sofa::core::objectmodel::Data<${type}> ${name};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	classrelation 169776 // <dependency>
	  relation 169776 -_->
	    a default
	      cpp default "#include in source"
	      classrelation_ref 169776 // <dependency>
	    b parent class_ref 187696 // VectorObjectRef
	end
      end

      operation 337840 "DataVectorObjectRef"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "init" type class_ref 179760 // BaseInitData
	cpp_decl "    ${comment}${inline}explicit ${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : Inherit(init)
    {
    };
"
	
	
	
	
	comment "* Constructor
        this constructor should be used through the initData() methods"
      end

      operation 337968 "DataVectorObjectRef"
	cpp_inline public explicit_return_type ""
	nparams 1
	  param in name "init" explicit_type "Inherit::InitData"
	cpp_decl "    ${comment}${inline}explicit ${name}${(}const ${t0} & ${p0}${v0}${)}${volatile}${throw} : Inherit(init)
    {
    };
"
	
	
	
	
	comment "* Constructor
        this constructor should be used through the initData() methods"
      end

      operation 338096 "setValue"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "v" explicit_type "std::string"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
		VectorObjectRef& objRefs = *this->beginEdit();
		ObjectRef objRef;
		if(objRef.setPath(v))
			objRefs.push_back(objRef);
		else
			this->getOwner()->serr << v << \"is not a correct link (Have you forgotten the @ ?)\" << this->getOwner()->sendl;
		this->endEdit();
    };
"
	
	
	
	
	comment "add a new reference"
      end

      operation 338224 "setValue"
	cpp_inline public explicit_return_type "void"
	nparams 1
	  param in name "v" explicit_type "helper::vector<std::string>"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} & ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {
		VectorObjectRef& objRefs = *this->beginEdit();
		objRefs.clear();
		for(unsigned int i=0 ; i<v.size() ; i++)
		{
			ObjectRef objRef;
			if(objRef.setPath(v[i]))
				objRefs.push_back(objRef);
			else
				this->getOwner()->serr << v[i] << \"is not a correct link (Have you forgotten the @ ?)\" << this->getOwner()->sendl;
		}

		this->endEdit();
    };
"
	
	
	
	
	comment "replace list of references"
      end

      operation 338352 "getValueString"
	const cpp_inline public explicit_return_type "std::string"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {
		const VectorObjectRef& objRefs = this->getValue();
		std::ostringstream res;
		res << objRefs;
		return res.str();
	};
"
	
	
	
	
      end

      operation 338480 "canBeLinked"
	const cpp_inline public explicit_return_type "bool"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} { 
		return false; 
	};
"
	
	
	
	
	comment "/ Avoid to be considered like object link in parsing"
      end
    end

    class 188336 "OmniEvent"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit} {
${members}};
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "*
 * @brief This event notifies about SensAble PHANTOM® device interaction."
      classrelation 169904 // <generalisation>
	relation 169904 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 169904 // <generalisation>
	  b parent class_ref 182064 // Event
      end

      class 188464 "State"
	visibility package stereotype "enum"
	cpp_decl "${comment}enum ${name} {
${items}
};
"
	java_decl ""
	php_decl ""
	python_2_2 python_decl ""
	idl_decl ""
	explicit_switch_type ""
	
	attribute 165168 "Button1"
	  public type class_ref 188464 // State
	  init_value "1"
	  cpp_decl "  ${name}${value},${comment}"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end

	attribute 165296 "Button2"
	  public type class_ref 188464 // State
	  init_value "2
	"
	  cpp_decl "  ${name}${value},${comment}"
	  java_decl ""
	  php_decl ""
	  python_decl ""
	  idl_decl ""
	end
      end

      operation 338608 "OmniEvent"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 4
	  param in name "id" explicit_type "uint"
	  param in name "position" explicit_type "Vector3"
	  param in name "orientation" explicit_type "Quat"
	  param in name "button" explicit_type "byte"
	cpp_decl "    ${comment}${inline}${name}${(}const ${t0} ${p0}${v0}, const ${t1} & ${p1}${v1}, const ${t2} & ${p2}${v2}, const ${t3} ${p3}${v3}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}const ${t0} ${p0}, const ${t1} & ${p1}, const ${t2} & ${p2}, const ${t3} ${p3}${)}
: sofa::core::objectmodel::Event()
	, m_deviceId(id)
	, m_position(position)
	, m_orientation(orientation)
	, m_buttonState(button)
${throw}{
  ${body}}
"
	
	
	
	
	comment "*
	 * @brief Constructor."
      end

      operation 338736 "~OmniEvent"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type ""
	nparams 0
	cpp_decl "    ${comment}${inline}${virtual}${name}${(}${)}${volatile}${throw};
"
	cpp_def "${comment}${inline}${class}::${name}${(}${)}${throw}{
  ${body}}
"
	
	
	
	
	comment "*
	 * @brief Destructor."
      end

      operation 338864 "getPosX"
	const cpp_inline public explicit_return_type "double"
	nparams 1
	  param in name "" explicit_type "void"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {return m_position[0];};
"
	
	
	
	
	comment "*
	 * @brief Get the PHANTOM® X coordinate"
      end

      operation 338992 "getPosY"
	const cpp_inline public explicit_return_type "double"
	nparams 1
	  param in name "" explicit_type "void"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {return m_position[1];};
"
	
	
	
	
	comment "*
	 * @brief Get the PHANTOM® Y coordinate"
      end

      operation 339120 "getPosZ"
	const cpp_inline public explicit_return_type "double"
	nparams 1
	  param in name "" explicit_type "void"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {return m_position[2];};
"
	
	
	
	
	comment "*
	 * @brief Get the PHANTOM® Z coordinate"
      end

      operation 339248 "getPosition"
	const cpp_inline public explicit_return_type "Vector3"
	nparams 1
	  param in name "" explicit_type "void"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {return m_position;};
"
	
	
	
	
	comment "*
	 * @brief Get the PHANTOM® coordinates."
      end

      operation 339376 "getOrientation"
	const cpp_inline public explicit_return_type "Quat"
	nparams 1
	  param in name "" explicit_type "void"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {return m_orientation;};
"
	
	
	
	
	comment "*
	 * @brief Get the PHANTOM® orientation."
      end

      operation 339504 "getButtonState"
	const cpp_inline public explicit_return_type "byte"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}${)}${const}${volatile}${throw}${abstract} {return m_buttonState;};
"
	
	
	
	
	comment "*
	 * @brief Get the PHANTOM® button state."
      end

      operation 339632 "getButton"
	const cpp_inline public explicit_return_type "bool"
	nparams 1
	  param in name "id" explicit_type "int"
	    defaultvalue "0"
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name}${(}const ${t0} ${p0}${v0}${)}${const}${volatile}${throw}${abstract} {return (bool) ((m_buttonState >> id) & 1);};
"
	
	
	
	
      end

      operation 339760 "getClassName"
	const cpp_virtual cpp_inline public explicit_return_type "char"
	nparams 0
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}const ${type} * ${name}${(}${)}${const}${volatile}${throw}${abstract} { return \"OmniEvent\"; };
"
	
	
	
	
      end

      attribute 165424 "m_deviceId"
	private explicit_type "byte"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end

      attribute 165552 "m_position"
	private explicit_type "Vector3"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
	comment "/< SensAble PHANTOM® coordinates in a Vec3d type."
      end

      attribute 165680 "m_orientation"
	private explicit_type "Quat"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
	comment "/< SensAble PHANTOM® orientation."
      end

      attribute 165808 "m_buttonState"
	private explicit_type "byte"
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
      end
    end

    class 188592 "typedef17"
      visibility package stereotype "typedef" explicit_base_type "sofa::helper::set<Tag>"
      cpp_decl "${comment}typedef ${type} ${name};
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
    end
  end

  deploymentview 128560 "objectmodel"
    //deployment diagram settings
    package_name_in_tab default show_context default write_horizontally default auto_label_position default draw_all_relations default shadow default
    draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
    artifact 137264 "Base"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 179376 // Base
      end
    end

    artifact 137392 "BaseClass"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 141360 // BaseClass
	class_ref 180272 // TClassParents
	class_ref 180400 // TClassParents<void>
	class_ref 180528 // TClassParents<std::pair<P1,P2> >
	class_ref 180656 // TClass
      end
    end

    artifact 137520 "BaseContext"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 180784 // typedef13
	class_ref 141104 // BaseContext
      end
    end

    artifact 137648 "BaseData"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 179632 // BaseData
      end
    end

    artifact 137776 "BaseNode"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 182192 // BaseNode
      end
    end

    artifact 137904 "BaseObject"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 128304 // BaseObject
      end
    end

    artifact 138032 "BaseObjectDescription"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 141232 // BaseObjectDescription
      end
    end

    artifact 138160 "BaseObjectTasks"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 182448 // BaseObjectTasks
      end
    end

    artifact 138288 "ClassInfo"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 177456 // ClassInfo
	class_ref 182832 // TClassInfo
      end
    end

    artifact 138416 "ConfigurationSetting"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 182960 // ConfigurationSetting
      end
    end

    artifact 138544 "Context"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 183088 // Context
      end
    end

    artifact 138672 "ContextObject"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 183728 // ContextObject
      end
    end

    artifact 138800 "Data"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 183856 // TData
	class_ref 184112 // DataContainer<T,false>
	class_ref 184240 // DataContainer<T,true>
	class_ref 170032 // Data
      end
    end

    artifact 139056 "DataFileName"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 178736 // DataFileName
	class_ref 185904 // DataFileNameVector
      end
    end

    artifact 139184 "DDGNode"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 133552 // DDGNode
      end
    end

    artifact 139312 "DetachNodeEvent"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 186160 // DetachNodeEvent
      end
    end

    artifact 139440 "Event"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 182064 // Event
      end
    end

    artifact 139568 "GLInitializedEvent"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 186288 // GLInitializedEvent
      end
    end

    artifact 139696 "JoystickEvent"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 186416 // JoystickEvent
      end
    end

    artifact 139824 "KeypressedEvent"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 187056 // KeypressedEvent
      end
    end

    artifact 139952 "KeyreleasedEvent"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 187184 // KeyreleasedEvent
      end
    end

    artifact 140080 "MouseEvent"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 187312 // MouseEvent
      end
    end

    artifact 140208 "ObjectRef"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 187568 // ObjectRef
	class_ref 187824 // typedef16
	class_ref 187696 // VectorObjectRef
	class_ref 135984 // DataObjectRef
	class_ref 188080 // DataVectorObjectRef
      end
    end

    artifact 140336 "OmniEvent"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 188336 // OmniEvent
      end
    end

    artifact 140464 "Tag"
      stereotype "source"
      cpp_h "#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H

${comment}
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
      cpp_src "${comment}
${includes}
${namespace_start}
${members}
${namespace_end}"
      associated_classes
	class_ref 180144 // Tag
	class_ref 188592 // typedef17
	class_ref 180016 // TagSet
      end
    end
  end

  package_ref 128816 // sofa helper

  package_ref 128944 // sofa defaulttype
end
