format 40
"RenderEngine" // ProcessingLayer::RenderEngine
  revision 16
  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_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
  //use case diagram settings
  package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow 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
  //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
  //object diagram settings
   write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow 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
  //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
  //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
  //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
  
  deploymentview 128005 "Engine Parts"
    //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
    deploymentdiagram 128261 "Overview Render Engine"
      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
      size A4
    end

    deploymentnode 128005 "timeline"
    end

    deploymentnode 128261 "playlist"
    end

    deploymentnode 128389 "proc"
    end

    deploymentnode 128517 "pnode"
    end

    deploymentnode 128645 "Frame"
    end

    deploymentnode 128773 "State"
    end
  end

  classview 128133 "Engine 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_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
    //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
    //object diagram settings
     write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow 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
    //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
    //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
    
    classdiagram 128389 "Render Entities"
      draw_all_relations no hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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
      size A4
    end

    classdiagram 129669 "Automation Entities"
      draw_all_relations default hide_attributes default hide_operations default show_members_full_definition yes show_members_visibility default show_members_stereotype default 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
      size A4
    end

    classdiagram 131973 "Render Mechanics"
      draw_all_relations no hide_attributes default hide_operations default show_members_full_definition yes show_members_visibility default show_members_stereotype default 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
      size A4
    end

    classdiagram 132357 "StateAdapter composition"
      draw_all_relations no hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default 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
      size A4
    end

    class 131333 "RenderEngine"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      operation 129413 "play"
	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 "TODO: will probably be handled differently (see Cehteh)"
      end

      classrelation 132485 // renderSegments (<directional aggregation by value>)
	relation 131845 *-->
	  stereotype "list"
	  a role_name "renderSegments" multiplicity "0..*" private
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	    classrelation_ref 132485 // renderSegments (<directional aggregation by value>)
	  b multiplicity "1" parent class_ref 131461 // Processor
      end

      classrelation 136197 // <generalisation>
	relation 134789 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 136197 // <generalisation>
	  b multiplicity "" parent class_ref 131461 // Processor
      end
    end

    class 131461 "Processor"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 132613 // output (<unidirectional association>)
	relation 131973 --->
	  stereotype "has_a"
	  a role_name "output" multiplicity "1" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	    classrelation_ref 132613 // output (<unidirectional association>)
	  b multiplicity "" parent class_ref 131589 // ExitNode
      end

      classrelation 136325 // <dependency>
	relation 134917 -_->
	  stereotype "uses"
	  a package
	    cpp default "#include in source"
	    classrelation_ref 136325 // <dependency>
	  b multiplicity "" parent class_ref 132741 // State
      end

      attribute 129413 "start"
	protected type class_ref 134917 // Time
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	idl_decl ""
	comment "begin of the timerange covered by this processor"
      end

      attribute 129541 "end"
	protected type class_ref 134917 // Time
	cpp_decl "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	java_decl ""
	idl_decl ""
	comment "end of the timerange (excl)"
      end
    end

    class 131589 "ExitNode"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "The output of the render pipeline. Pulling from such exit nodes actually ivokes the render process"
      classrelation 132869 // <generalisation>
	relation 132101 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 132869 // <generalisation>
	  b multiplicity "" parent class_ref 131717 // ProcNode
      end
    end

    class 131717 "ProcNode"
      abstract visibility public stereotype "interface"
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl "${comment}${@}${visibility}interface ${name}${extends} {
${members}}
"
      idl_decl "${comment}${abstract}${local}interface ${name}${inherit} {
${members}};
"
      explicit_switch_type ""
      
      comment "Key abstraction of the Render Engine: A Data processing Node"
      classrelation 136965 // datasrc (<unidirectional association>)
	relation 135429 --->
	  a role_name "datasrc" multiplicity "" protected
	    comment "The predecessor in a processing pipeline, i.e. a source to get data to be processed"
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} * ${name}${value};
"
	    classrelation_ref 136965 // datasrc (<unidirectional association>)
	  b multiplicity "1" parent class_ref 131717 // ProcNode
      end

      classrelation 137861 // params (<directional aggregation by value>)
	relation 136197 *-->
	  stereotype "vector"
	  a role_name "params" multiplicity "1..*" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${stereotype}<${type}> ${name}${value};
"
	    classrelation_ref 137861 // params (<directional aggregation by value>)
	  b multiplicity "" parent class_ref 134533 // Parameter
      end

      classrelation 152581 // predecessors (<directional aggregation by value>)
	relation 149125 *-->
	  stereotype "array"
	  a role_name "predecessors" multiplicity "*" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	    classrelation_ref 152581 // predecessors (<directional aggregation by value>)
	  b multiplicity "" parent class_ref 142725 // WiringDescriptor
      end

      operation 135685 "pull"
	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 136069 "process"
	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 131845 "Trafo"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 132997 // <generalisation>
	relation 132229 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 132997 // <generalisation>
	  b multiplicity "" parent class_ref 131717 // ProcNode
      end
    end

    class 131973 "Link"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 133253 // <generalisation>
	relation 132485 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 133253 // <generalisation>
	  b multiplicity "" parent class_ref 131717 // ProcNode
      end
    end

    class 132229 "Projector"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Special video processing node used to scale and translate image data."
      classrelation 133509 // <generalisation>
	relation 132741 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 133509 // <generalisation>
	  b multiplicity "" parent class_ref 131845 // Trafo
      end
    end

    class 132357 "Mask"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 133637 // <generalisation>
	relation 132869 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 133637 // <generalisation>
	  b multiplicity "" parent class_ref 131845 // Trafo
      end
    end

    class 132485 "PluginAdapter"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Adapter used to integrage an effects processor in the render pipeline"
      classrelation 133765 // <generalisation>
	relation 132997 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 133765 // <generalisation>
	  b multiplicity "" parent class_ref 131845 // Trafo
      end
    end

    class 135045 "CodecAdapter"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 138757 // <generalisation>
	relation 136965 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 138757 // <generalisation>
	  b multiplicity "" parent class_ref 131845 // Trafo
      end
    end

    class 133253 "Frame"
      abstract visibility public stereotype "interface"
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl "${comment}${@}${visibility}interface ${name}${extends} {
${members}}
"
      idl_decl "${comment}${abstract}${local}interface ${name}${inherit} {
${members}};
"
      explicit_switch_type ""
      
      comment "TODO: how to relate to Cehteh's Frame entity in the Backend?
The latter is the fundamental Frame entity, wheras this Object rather represents a buffer set containing frame date"
    end

    class 133381 "AFrame"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 135045 // <generalisation>
	relation 133893 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 135045 // <generalisation>
	  b multiplicity "" parent class_ref 133253 // Frame
      end
    end

    class 133509 "VFrame"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 135173 // <generalisation>
	relation 134021 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 135173 // <generalisation>
	  b multiplicity "" parent class_ref 133253 // Frame
      end
    end

    class 133637 "GLBuf"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 135301 // <generalisation>
	relation 134149 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 135301 // <generalisation>
	  b multiplicity "" parent class_ref 133253 // Frame
      end
    end

    class 133765 "Source"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Source Node: represents a media source to pull data from."
      classrelation 136069 // <generalisation>
	relation 134661 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 136069 // <generalisation>
	  b multiplicity "" parent class_ref 131717 // ProcNode
      end

      classrelation 141701 // <dependency>
	relation 139909 -_->
	  a default
	    cpp default "#include in header"
	    classrelation_ref 141701 // <dependency>
	  b multiplicity "" parent class_ref 136709 // Media
      end
    end

    class 142469 "StateProxy"
      visibility package stereotype "implementation"
      nformals 2
      formal name "WIRING" type "class" explicit_default_value ""
        explicit_extends ""
      formal name "POLICY" type "class" explicit_default_value ""
        explicit_extends ""
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 152453 // <generalisation>
	relation 148997 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 152453 // <generalisation>
	  b multiplicity "" parent class_ref 132741 // State
      end

      classrelation 153221 // <generalisation>
	relation 149765 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 153221 // <generalisation>
	  b multiplicity "" parent class_ref 143877 // InPlace
      end

      classrelation 154117 // wiring (<unidirectional association>)
	relation 150661 --->
	  a role_name "wiring" multiplicity "1" const_relation protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value};
"
	    classrelation_ref 154117 // wiring (<unidirectional association>)
	  b multiplicity "" parent class_ref 144005 // WiringTable
      end
    end

    class 142597 "StateAdapter"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 152325 // <generalisation>
	relation 148869 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 152325 // <generalisation>
	  b multiplicity "" parent class_ref 132741 // State
      end

      operation 135557 "retrieve"
	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

      classrelation 152709 // state (<unidirectional association>)
	relation 149253 --->
	  a role_name "state" multiplicity "1" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value};
"
	    classrelation_ref 152709 // state (<unidirectional association>)
	  b multiplicity "" parent class_ref 142469 // StateProxy
      end

      classrelation 152837 // <unidirectional association>
	relation 149381 --->
	  a role_name "" multiplicity "" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value};
"
	    classrelation_ref 152837 // <unidirectional association>
	  b multiplicity "" parent class_ref 133253 // Frame
      end
    end

    class 142725 "WiringDescriptor"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
    end

    class 143365 "NodeWiring"
      visibility package 
      nformals 1
      formal name "STATE" type "class" explicit_default_value ""
        explicit_extends ""
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 152965 // <generalisation>
	relation 149509 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 152965 // <generalisation>
	  b multiplicity "" parent class_ref 142725 // WiringDescriptor
      end

      classrelation 153093 // <dependency>
	relation 149637 -_->
	  a default
	    cpp default "Generated"
	    classrelation_ref 153093 // <dependency>
	  b multiplicity "" parent class_ref 142597 // StateAdapter
      end
    end

    class 143493 "InvocationStateBase"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 153733 // <generalisation>
	relation 150277 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 153733 // <generalisation>
	  b multiplicity "" parent class_ref 132741 // State
      end
    end

    class 143621 "Caching"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 153605 // <generalisation>
	relation 150149 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 153605 // <generalisation>
	  b multiplicity "" parent class_ref 143493 // InvocationStateBase
      end
    end

    class 143749 "Process"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 153477 // <generalisation>
	relation 150021 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 153477 // <generalisation>
	  b multiplicity "" parent class_ref 143621 // Caching
      end
    end

    class 143877 "InPlace"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 153349 // <generalisation>
	relation 149893 ---|>
	  a public
	    cpp default "${type}"
	    classrelation_ref 153349 // <generalisation>
	  b multiplicity "" parent class_ref 143749 // Process
      end
    end

    class 144005 "WiringTable"
      visibility package 
      nformals 1
      formal name "SIZ" type "int" explicit_default_value ""
        explicit_extends ""
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 153861 // <directional aggregation by value>
	relation 150405 *-->
	  stereotype "array"
	  a role_name "" multiplicity "SIZ" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type} ${name}${value};
"
	    classrelation_ref 153861 // <directional aggregation by value>
	  b multiplicity "" parent class_ref 144133 // BuffHandle
      end

      classrelation 153989 // <unidirectional association>
	relation 150533 --->
	  a role_name "" multiplicity "" protected
	    cpp default "    ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value};
"
	    classrelation_ref 153989 // <unidirectional association>
	  b multiplicity "" parent class_ref 142725 // WiringDescriptor
      end
    end

    class 144133 "BuffHandle"
      visibility package 
      cpp_decl "${comment}${template}class ${name}${inherit}
  {
${members}  };
${inlines}
"
      java_decl ""
      idl_decl ""
      explicit_switch_type ""
      
    end
  end
end
