format 58
"Builder" // ProcessingLayer::MObject::Builder
  revision 21
  modified_by 5 "hiv"
  // class settings
  //class diagram settings
  draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization 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_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
  
  classview 128261 "Builder Workings"
    //class diagram settings
    draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization 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_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
    collaborationdiagram 128517 "build process"
      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
      comment "This figure shows the process of building and starting a RenderEngine"
      size A4
    end

    activity 128005 "building the Engine"
      activitydiagram 129413 "build flow"
	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 no shadow default
	show_infonote default drawing_language default show_stereotype_properties default
	size A4
      end

      parameter 128645 "build Request" explicit_type ""
	unordered 
	in
	flow 130309 "<flow>"
	  on activityaction_ref 128645 // activity action configure Tools
	end
      end

      activityaction 128645 "configure Tools"
	opaque_action
	flow 130821 "<flow>"
	  on activitynode_ref 129029 // fork
	end
      end

      expansionregion 128133 "establish partitioning"
	iterative
	activityaction 128773 "define segment"
	  opaque_action
	  pin 128133 "inContent" explicit_type ""
	    unordered 
	    in
	  end

	  flow 130693 "<flow>"
	    on expansionnode_ref 128133 // segments
	  end
	end

	expansionnode 128005 "segment Tool"
	   explicit_type ""
	  unordered is_control
	  flow 130565 "<flow>"
	    on activityaction_ref 128773 // activity action define segment
	  end
	end

	expansionnode 128133 "segments"
	   explicit_type ""
	  unordered is_control
	end
      end

      activityobject 128005 "Fixture"
	 explicit_type ""
	unordered 
	simplerelation 128389
	  -_->
	    on activity_ref 128005 // building the Engine
	end

	flow 130181 "<flow>"
	  on pin_ref 128133 // inContent
	end

	flow 131717 "<flow>"
	  on pin_ref 128133 // inContent
	end
      end

      activitynode 129029 fork ""
	flow 130949 "<flow>"
	  on expansionnode_ref 128005 // segment Tool
	end

	flow 131077 "<flow>"
	  on expansionnode_ref 128261 // build Tool
	end
      end

      expansionregion 128261 "build Processors"
	iterative
	expansionnode 128261 "build Tool"
	   explicit_type ""
	  unordered is_control
	  flow 131205 "<flow>"
	    on activityaction_ref 128901 // activity action create ProcNode
	  end
	end

	expansionnode 128389 "segments"
	   explicit_type ""
	  unordered is_control
	  flow 131333 "<flow>"
	    on activityaction_ref 128901 // activity action create ProcNode
	  end
	end

	activityaction 128901 "create ProcNode"
	  opaque_action
	  flow 131461 "<flow>"
	    on activityaction_ref 129029 // activity action connect
	  end
	end

	activityaction 129029 "connect"
	  opaque_action
	  flow 131845 "<flow>"
	    on expansionnode_ref 128517 // complete Render Engine
	  end
	end

	expansionnode 128517 "complete Render Engine"
	   explicit_type ""
	  unordered is_control
	  flow 131973 "<flow>"
	    on activitynode_ref 129157 // activity_final
	  end
	end
      end

      activitynode 129157 activity_final ""
      end

      activityobject 129157 "Timeline contents"
	 explicit_type ""
	unordered 
	flow 133125 "<flow>"
	  on pin_ref 128133 // inContent
	end
      end
    end

    classdiagram 129285 "Builder Tool (Visitor)"
      draw_all_relations no hide_attributes default hide_operations default show_members_full_definition yes show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default member_max_width 0 show_parameter_dir no 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_infonote default shadow default show_stereotype_properties default
      size A4
    end

    class 130565 "BuilderFacade"
      visibility public stereotype "boundary"
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl "${comment}${abstract}${local}interface ${name}${inherit} {
${members}};
"
      explicit_switch_type ""
      
      comment "Provides unified access to the builder functionality. While individual components of the builder subsystem may be called if necessary or suitable, it is usually better to do all extern invocations via the high level methods of this Facade"
      operation 128517 "buildEngine"
	public return_type class_ref 131333 // RenderEngine
	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 "Main Operation of the Builder: create a render engine for a given part of the timeline"
      end
    end

    class 130693 "ToolFactory"
      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 128773 "configure"
	public return_type class_ref 134149 // BuilderTool
	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 137221 // <dependency>
	relation 135685 -_->
	  a package
	    cpp default "#include in source"
	    classrelation_ref 137221 // <dependency>
	  b parent class_ref 134149 // BuilderTool
      end
    end

    class 130821 "ConManager"
      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 "Connection Manager, used to build the connections between render engine nodes, if these nodes need to cooperate besides the normal \"data pull\" operation. Esp., the Connection Manager knows how to wire up the effect's parameters with the corresponding ParamProviders (autmation) in the Session"
      operation 129029 "getConnection"
	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 "TODO"
      end
    end

    class 131077 "Assembler"
      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 "This is the actual building facility: provided the correct tools and associations, it serves to build and connect the individual ProcNode objects"
      operation 128901 "build"
	public return_type class_ref 131333 // RenderEngine
	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 132741 "State"
      abstract visibility public stereotype "interface"
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl "${comment}${@}${visibility}interface ${name}${extends} {
${members}}
"
      php_decl ""
      python_2_2 python_decl ""
      idl_decl "${comment}${abstract}${local}interface ${name}${inherit} {
${members}};
"
      explicit_switch_type ""
      
      operation 135813 "fetch"
	public explicit_return_type ""
	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 135941 "allocateBuffer"
	public explicit_return_type ""
	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 136197 "releaseBuffer"
	public explicit_return_type ""
	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 136325 "isCalculated"
	public explicit_return_type ""
	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 134021 "Buildable"
      abstract visibility public stereotype "interface"
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl "${comment}${@}${visibility}interface ${name}${extends} {
${members}}
"
      php_decl ""
      python_2_2 python_decl ""
      idl_decl "${comment}${abstract}${local}interface ${name}${inherit} {
${members}};
"
      explicit_switch_type ""
      
      operation 129669 "apply"
	abstract cpp_virtual public explicit_return_type "void"
	nparams 1
	  param inout name "providedTool" type class_ref 134149 // BuilderTool
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}${t0}& ${p0}${)}${const}${volatile} ${throw}${abstract};"
	
	
	
	
      end

      classrelation 146437 // <generalisation>
	relation 144261 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 146437 // <generalisation>
	  b parent class_ref 140165 // Visitable
      end
    end

    class 134149 "BuilderTool"
      abstract visibility public stereotype "interface"
      nactuals 1
      actual class class_ref 140293 // Applicable
        rank 0 explicit_value ""
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl "${comment}${@}${visibility}interface ${name}${extends} {
${members}}
"
      php_decl ""
      python_2_2 python_decl ""
      idl_decl "${comment}${abstract}${local}interface ${name}${inherit} {
${members}};
"
      explicit_switch_type ""
      
      comment "Used according to the visitor pattern: each Tool contains the concrete implementation for one task to be done to the various MObject classes"
      operation 129797 "treat"
	abstract cpp_virtual public explicit_return_type "void"
	nparams 1
	  param in name "mElement" type class_ref 134021 // Buildable
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}const ${t0}& ${p0}${)}${const}${volatile} ${throw}${abstract};"
	
	
	
	
	comment "This operation is to be overloaded for the specific MObject subclasses to be treated."
      end

      classrelation 146565 // <generalisation>
	relation 144389 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 146565 // <generalisation>
	  b parent class_ref 140037 // Tool
      end

      classrelation 146693 // <generalisation>
	relation 144517 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 146693 // <generalisation>
	  b parent class_ref 140293 // Applicable
      end
    end

    class 134277 "SegmentationTool"
      visibility package 
      nactuals 1
      actual class class_ref 140293 // Applicable
        rank 0 explicit_value ""
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Tool implementation for deriving a partitioning of the current timeline such, that each segement has a constant configuration. \"Constant\" means here, that any remaining changes over time can be represented by automation solely, without the need to change the node connections."
      classrelation 137605 // <realization>
	relation 135941 -_-|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 137605 // <realization>
	  b parent class_ref 134149 // BuilderTool
      end

      operation 129925 "treat"
	public explicit_return_type "void"
	nparams 1
	  param in name "something" type class_ref 134021 // Buildable
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}const ${t0}& ${p0}${)}${const}${volatile} ${throw}${abstract};"
	cpp_def "${comment}${inline}${type}
${class}::${name} ${(}const ${t0}& ${p0}${)}${const}${volatile} ${throw}${staticnl}
{
  ${body}
}

"
	
	
	
	
      end

      operation 130181 "treat"
	public explicit_return_type "void"
	nparams 1
	  param in name "clip" type class_ref 128901 // Clip
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}const ${t0}& ${p0}${)}${const}${volatile} ${throw}${abstract};"
	cpp_def "${comment}${inline}${type}
${class}::${name} ${(}const ${t0}& ${p0}${)}${const}${volatile} ${throw}${staticnl}
{
  ${body}
}

"
	
	
	
	
      end

      operation 130053 "treat"
	public explicit_return_type "void"
	nparams 1
	  param in name "effect" type class_ref 129029 // Effect
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}const ${t0}& ${p0}${)}${const}${volatile} ${throw}${abstract};"
	cpp_def "${comment}${inline}${type}
${class}::${name} ${(}const ${t0}& ${p0}${)}${const}${volatile} ${throw}${staticnl}
{
  ${body}
}

"
	
	
	
	
      end

      classrelation 139013 // segments (<directional composition>)
	relation 137221 *-->
	  stereotype "list"
	  a role_name "segments" multiplicity "*" protected
	    comment "the partitioning of the Timeline to be created by this tool."
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	    classrelation_ref 139013 // segments (<directional composition>)
	  b parent class_ref 135173 // Segment
      end

      classrelation 146821 // <generalisation>
	relation 144645 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 146821 // <generalisation>
	  b parent class_ref 140293 // Applicable
      end

      classrelation 163461 // <unidirectional association>
	relation 158341 --->
	  stereotype "create"
	  a role_name "" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value};
"
	    classrelation_ref 163461 // <unidirectional association>
	  b parent class_ref 147333 // Segmentation
      end
    end

    class 134405 "NodeCreatorTool"
      visibility package 
      nactuals 1
      actual class class_ref 140293 // Applicable
        rank 0 explicit_value ""
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      php_decl ""
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "This Tool implementation plays the central role in the buld process: given a MObject from Session, it is able to attach ProcNodes to the render engine under construction such as to reflect the properties of the MObject in the actual render."
      classrelation 137733 // <realization>
	relation 136069 -_-|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 137733 // <realization>
	  b parent class_ref 134149 // BuilderTool
      end

      operation 130309 "treat"
	public explicit_return_type "void"
	nparams 1
	  param inout name "something" type class_ref 134021 // Buildable
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}${t0}& ${p0}${)}${const}${volatile} ${throw}${abstract};"
	cpp_def "${comment}${inline}${type}
${class}::${name} ${(}${t0}& ${p0}${)}${const}${volatile} ${throw}${staticnl}
{
  ${body}
}

"
	
	
	
	
      end

      operation 130437 "treat"
	public explicit_return_type "void"
	nparams 1
	  param inout name "clip" type class_ref 128901 // Clip
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}${t0}& ${p0}${)}${const}${volatile} ${throw}${abstract};"
	cpp_def "${comment}${inline}${type}
${class}::${name} ${(}${t0}& ${p0}${)}${const}${volatile} ${throw}${staticnl}
{
  ${body}
}

"
	
	
	
	
      end

      operation 130565 "treat"
	public explicit_return_type "void"
	nparams 1
	  param inout name "effect" type class_ref 129029 // Effect
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}${t0}& ${p0}${)}${const}${volatile} ${throw}${abstract};"
	cpp_def "${comment}${inline}${type}
${class}::${name} ${(}${t0}& ${p0}${)}${const}${volatile} ${throw}${staticnl}
{
  ${body}
}

"
	
	
	
	
      end

      operation 130693 "treat"
	public explicit_return_type "void"
	nparams 1
	  param inout name "auto" type class_ref 129925 // Auto
	cpp_decl "    ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}${t0}& ${p0}${)}${const}${volatile} ${throw}${abstract};"
	cpp_def "${comment}${inline}${type}
${class}::${name} ${(}${t0}& ${p0}${)}${const}${volatile} ${throw}${staticnl}
{
  ${body}
}

"
	
	
	
	
      end

      attribute 129797 "proc"
	protected type class_ref 131461 // RenderGraph
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	php_decl ""
	python_decl ""
	idl_decl ""
	comment "holds the Processor (Render Engine Element) to be built by the current build step"
      end

      classrelation 146949 // <generalisation>
	relation 144773 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 146949 // <generalisation>
	  b parent class_ref 140293 // Applicable
      end
    end

    classdiagram 132868 "Builder Entities"
      draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization 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_infonote default shadow default show_stereotype_properties default
      size A4
    end
  end
end
