From 8e46819c090ff286acb8e9a0ff53a3d1019de4a8 Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Sun, 7 Jun 2009 19:45:47 +0200 Subject: [PATCH] UML: export actual Version as HTML report --- doc/devel/uml/class128005.html | 7 +- doc/devel/uml/class128133.html | 3 +- doc/devel/uml/class128138.html | 2 +- doc/devel/uml/class128181.html | 8 +- doc/devel/uml/class128225.html | 2 +- doc/devel/uml/class128261.html | 7 +- doc/devel/uml/class128266.html | 2 +- doc/devel/uml/class128309.html | 5 +- doc/devel/uml/class128389.html | 3 +- doc/devel/uml/class128394.html | 2 +- doc/devel/uml/class128437.html | 6 +- doc/devel/uml/class128517.html | 5 +- doc/devel/uml/class128645.html | 13 +- doc/devel/uml/class128821.html | 2 +- doc/devel/uml/class128901.html | 2 +- doc/devel/uml/class128906.html | 1 + doc/devel/uml/class128949.html | 3 +- doc/devel/uml/class129029.html | 2 +- doc/devel/uml/class129333.html | 6 +- doc/devel/uml/class129413.html | 4 +- doc/devel/uml/class129541.html | 6 +- doc/devel/uml/class129797.html | 3 +- doc/devel/uml/class129925.html | 2 +- doc/devel/uml/class130309.html | 3 +- doc/devel/uml/class130437.html | 4 +- doc/devel/uml/class130565.html | 5 +- doc/devel/uml/class130821.html | 4 +- doc/devel/uml/class130949.html | 2 +- doc/devel/uml/class131077.html | 2 +- doc/devel/uml/class131333.html | 7 +- doc/devel/uml/class131461.html | 15 +-- doc/devel/uml/class131589.html | 2 +- doc/devel/uml/class131717.html | 16 ++- doc/devel/uml/class132229.html | 2 +- doc/devel/uml/class132485.html | 2 +- doc/devel/uml/class132741.html | 6 +- doc/devel/uml/class133253.html | 5 +- doc/devel/uml/class133765.html | 2 +- doc/devel/uml/class133893.html | 3 +- doc/devel/uml/class134021.html | 3 +- doc/devel/uml/class134149.html | 7 +- doc/devel/uml/class134277.html | 7 +- doc/devel/uml/class134405.html | 4 +- doc/devel/uml/class134533.html | 2 +- doc/devel/uml/class134661.html | 5 +- doc/devel/uml/class134789.html | 2 +- doc/devel/uml/class134917.html | 2 +- doc/devel/uml/class135173.html | 7 +- doc/devel/uml/class135301.html | 2 +- doc/devel/uml/class135429.html | 9 +- doc/devel/uml/class135557.html | 5 +- doc/devel/uml/class136325.html | 3 +- doc/devel/uml/class136453.html | 29 ++--- doc/devel/uml/class136581.html | 13 +- doc/devel/uml/class136709.html | 8 +- doc/devel/uml/class136837.html | 4 +- doc/devel/uml/class136965.html | 4 +- doc/devel/uml/class137093.html | 4 +- doc/devel/uml/class137221.html | 2 +- doc/devel/uml/class137349.html | 4 +- doc/devel/uml/class137477.html | 4 +- doc/devel/uml/class137605.html | 2 +- doc/devel/uml/class137733.html | 2 +- doc/devel/uml/class137861.html | 2 +- doc/devel/uml/class137989.html | 2 +- doc/devel/uml/class138117.html | 2 +- doc/devel/uml/class138245.html | 2 +- doc/devel/uml/class138373.html | 2 +- doc/devel/uml/class138501.html | 5 +- doc/devel/uml/class138629.html | 2 +- doc/devel/uml/class138757.html | 5 +- doc/devel/uml/class138885.html | 2 +- doc/devel/uml/class139013.html | 4 +- doc/devel/uml/class139141.html | 5 +- doc/devel/uml/class139397.html | 2 +- doc/devel/uml/class139525.html | 3 +- doc/devel/uml/class139653.html | 10 +- doc/devel/uml/class139781.html | 8 +- doc/devel/uml/class139909.html | 6 +- doc/devel/uml/class140421.html | 2 +- doc/devel/uml/class140549.html | 5 +- doc/devel/uml/class140677.html | 1 + doc/devel/uml/class140805.html | 1 + doc/devel/uml/class141701.html | 3 +- doc/devel/uml/class141829.html | 3 +- doc/devel/uml/class142469.html | 3 +- doc/devel/uml/class143365.html | 3 +- doc/devel/uml/class144005.html | 3 +- doc/devel/uml/class145285.html | 3 +- doc/devel/uml/class145541.html | 8 +- doc/devel/uml/class145669.html | 4 +- doc/devel/uml/class145925.html | 3 +- doc/devel/uml/class146053.html | 3 +- doc/devel/uml/class146309.html | 5 +- doc/devel/uml/class146565.html | 1 + doc/devel/uml/class146693.html | 5 +- doc/devel/uml/class146821.html | 5 +- doc/devel/uml/class147077.html | 5 +- doc/devel/uml/class147333.html | 24 ++++ doc/devel/uml/classdiagrams.html | 3 +- doc/devel/uml/classes.html | 3 +- doc/devel/uml/classes_list.html | 3 +- doc/devel/uml/fig128181.png | Bin 39718 -> 35072 bytes doc/devel/uml/fig129541.png | Bin 12086 -> 11432 bytes doc/devel/uml/fig129797.png | Bin 18260 -> 16746 bytes doc/devel/uml/fig130181.png | Bin 10701 -> 9234 bytes doc/devel/uml/fig130693.png | Bin 12650 -> 11090 bytes doc/devel/uml/fig130821.png | Bin 14498 -> 13295 bytes doc/devel/uml/fig130949.png | Bin 7478 -> 6705 bytes doc/devel/uml/fig131589.png | Bin 12406 -> 10449 bytes doc/devel/uml/fig132485.png | Bin 6985 -> 6196 bytes doc/devel/uml/fig132868.png | Bin 0 -> 30757 bytes doc/devel/uml/index.html | 208 ++++++++++++++++++++++++------- doc/devel/uml/index_60.html | 2 +- doc/devel/uml/index_65.html | 2 +- doc/devel/uml/index_66.html | 3 +- doc/devel/uml/index_67.html | 38 +++--- doc/devel/uml/index_69.html | 3 +- doc/devel/uml/index_70.html | 2 +- doc/devel/uml/index_71.html | 1 + doc/devel/uml/index_73.html | 2 +- doc/devel/uml/index_77.html | 2 +- doc/devel/uml/index_79.html | 3 +- doc/devel/uml/index_80.html | 4 +- doc/devel/uml/index_82.html | 4 +- doc/devel/uml/index_83.html | 3 +- doc/devel/uml/index_84.html | 5 +- doc/devel/uml/index_86.html | 24 ++-- doc/devel/uml/style.css | 2 +- 129 files changed, 495 insertions(+), 284 deletions(-) create mode 100644 doc/devel/uml/class147333.html create mode 100644 doc/devel/uml/fig132868.png diff --git a/doc/devel/uml/class128005.html b/doc/devel/uml/class128005.html index d033a8de1..646e844c8 100644 --- a/doc/devel/uml/class128005.html +++ b/doc/devel/uml/class128005.html @@ -16,11 +16,12 @@ -

Declaration :

Implementation class for the Session interface

Artifact : sessionimpl, Component(s) : Session

+

Implementation class for the Session interface

Declaration :

Artifact : sessionimpl, Component(s) : Session

-
Relation edls (<directional aggregation by value>)

Declaration :

  • Uml : # edls : Seq, multiplicity : 1..*
  • C++ : protected: <Seq> edls
+
Relation edls (<directional composition>)

Declaration :

  • Uml : # edls : Seq, multiplicity : 1..*
  • C++ : protected: <Seq> edls
Relation theFixture (<unidirectional association>)

Declaration :

  • Uml : # theFixture : Fixture, multiplicity : 1
  • C++ : protected: Fixture * theFixture
-
Relation pipes (<directional aggregation>)

Declaration :

  • Uml : # pipes : Pipe, multiplicity : *
  • C++ : protected: Pipe* pipes

the global ports (busses) of the session

+
Relation pipes (<directional aggregation>)

the global ports (busses) of the session

Declaration :

Stereotype: vector

+

All public operations : currEDL , getFixture

diff --git a/doc/devel/uml/class128133.html b/doc/devel/uml/class128133.html index 175eb30d6..118140660 100644 --- a/doc/devel/uml/class128133.html +++ b/doc/devel/uml/class128133.html @@ -19,7 +19,8 @@

Declaration :

Directly inherited by : Fixture

Artifact : edl, Component(s) : Session

-
Relation clips (<directional aggregation>)

Declaration :

+
Relation clips (<directional aggregation>)

Declaration :

Stereotype: list

+
Relation track (<unidirectional association>)

Declaration :

diff --git a/doc/devel/uml/class128138.html b/doc/devel/uml/class128138.html index 6cbff1e37..6f3344e8e 100644 --- a/doc/devel/uml/class128138.html +++ b/doc/devel/uml/class128138.html @@ -16,5 +16,5 @@ -

Declaration :

We can basically reuse the Thread class design from Cinelerra2, Thread becomes a baseclass for all Threads

+

We can basically reuse the Thread class design from Cinelerra2, Thread becomes a baseclass for all Threads

Declaration :

diff --git a/doc/devel/uml/class128181.html b/doc/devel/uml/class128181.html index 0a87b01fd..7743c8f03 100644 --- a/doc/devel/uml/class128181.html +++ b/doc/devel/uml/class128181.html @@ -18,10 +18,10 @@

Declaration :

-
Relation descriptor (descriptor)

Declaration :

type of this frame

-
Operation getFrame

Declaration :

mode = READ, WRITE, ...

-
Relation handle (<directional aggregation>)

Declaration :

weak pointer

-
Relation mappings (<directional aggregation>)

Declaration :

weak pointers

+
Relation descriptor (descriptor)

type of this frame

Declaration :

+
Operation getFrame

mode = READ, WRITE, ...

Declaration :

+
Relation handle (<directional aggregation>)

weak pointer

Declaration :

+
Relation mappings (<directional aggregation>)

weak pointers

Declaration :

Relation <aggregation>

Declaration :

All public operations : getFrame

diff --git a/doc/devel/uml/class128225.html b/doc/devel/uml/class128225.html index 0b6e60921..0d48fbf93 100644 --- a/doc/devel/uml/class128225.html +++ b/doc/devel/uml/class128225.html @@ -18,6 +18,6 @@

Declaration :

-
Relation frame (<unidirectional association>)

Declaration :

maybe weak reference

+
Relation frame (<unidirectional association>)

maybe weak reference

Declaration :

diff --git a/doc/devel/uml/class128261.html b/doc/devel/uml/class128261.html index f02717863..e506f8250 100644 --- a/doc/devel/uml/class128261.html +++ b/doc/devel/uml/class128261.html @@ -18,10 +18,13 @@

Declaration :

Artifact : fixture, Component(s) : Session

-
Relation effectiveTimeline (<directional aggregation by value>)

Declaration :

+
Relation effectiveTimeline (<directional composition>)

Declaration :

Stereotype: list

+
Operation getPlaylistForRender

Declaration :

Operation getAutomation

Declaration :

-
Relation track (<unidirectional association>)

Declaration :

+
Relation track (<unidirectional association>)

Declaration :

+
Relation <association>

Declaration :

Stereotype: partitioning

+

All public operations : getAutomation , getPlaylistForRender

diff --git a/doc/devel/uml/class128266.html b/doc/devel/uml/class128266.html index be0f14da2..5aa7dc687 100644 --- a/doc/devel/uml/class128266.html +++ b/doc/devel/uml/class128266.html @@ -16,7 +16,7 @@ -

Declaration :

I provided a reworked Condition class in my Cinelerra2 repository

+

I provided a reworked Condition class in my Cinelerra2 repository

Declaration :

Class Lock
diff --git a/doc/devel/uml/class128309.html b/doc/devel/uml/class128309.html index 52ecd0c18..be692dbcb 100644 --- a/doc/devel/uml/class128309.html +++ b/doc/devel/uml/class128309.html @@ -18,8 +18,9 @@

Declaration :

-
Relation handles (<directional aggregation by value>)

Declaration :

+
Relation handles (<directional composition>)

Declaration :

Stereotype: list

+
Attribut handles_available
-

Declaration :

  • Uml : - handles_available : int
  • C++ : private: int handles_available

initialized to the maximum number of filehandles the backend may use for mapped files. When no handles are available, the handle which is last in the handles list is closed and (re-)used.
Else this number is decremented for each new filehandle used and incremented for any one explicitly freed.

+

initialized to the maximum number of filehandles the backend may use for mapped files. When no handles are available, the handle which is last in the handles list is closed and (re-)used.
Else this number is decremented for each new filehandle used and incremented for any one explicitly freed.

Declaration :

diff --git a/doc/devel/uml/class128389.html b/doc/devel/uml/class128389.html index 1adc7425d..16c19b700 100644 --- a/doc/devel/uml/class128389.html +++ b/doc/devel/uml/class128389.html @@ -18,7 +18,8 @@

Declaration :

Artifact : track, Diagram : Session structure

-
Relation subTracks (<directional aggregation by value>)

Declaration :

Child tracks in a tree structure

+
Relation subTracks (<directional composition>)

Child tracks in a tree structure

Declaration :

Stereotype: vector

+

All public operations : apply , apply , dispatchOp

diff --git a/doc/devel/uml/class128394.html b/doc/devel/uml/class128394.html index 7b7e1a826..ecd1cc4ae 100644 --- a/doc/devel/uml/class128394.html +++ b/doc/devel/uml/class128394.html @@ -16,7 +16,7 @@ -

Declaration :

I provided a reworked Mutex class in my Cinelerra2 repository

+

I provided a reworked Mutex class in my Cinelerra2 repository

Declaration :

Class Lock
diff --git a/doc/devel/uml/class128437.html b/doc/devel/uml/class128437.html index 4e790db31..5c53683d2 100644 --- a/doc/devel/uml/class128437.html +++ b/doc/devel/uml/class128437.html @@ -19,7 +19,9 @@

Declaration :

Relation <association>

Declaration :

-
Relation checked_in (<directional aggregation by value>)

Declaration :

  • Uml : # checked_in : FileMap, multiplicity : *
  • C++ : protected: FileMap checked_in

checked_in objects are subject of cache aging and must be not in use

-
Relation checked_out (<directional aggregation by value>)

Declaration :

  • Uml : # checked_out : FileMap, multiplicity : *
  • C++ : protected: list<FileMap> checked_out

this list keeps all mappings which are in use, and thus prevents them from Cache aging

+
Relation checked_in (<directional composition>)

checked_in objects are subject of cache aging and must be not in use

Declaration :

Stereotype: list

+ +
Relation checked_out (<directional composition>)

this list keeps all mappings which are in use, and thus prevents them from Cache aging

Declaration :

Stereotype: list

+
diff --git a/doc/devel/uml/class128517.html b/doc/devel/uml/class128517.html index 892d720be..ea076d171 100644 --- a/doc/devel/uml/class128517.html +++ b/doc/devel/uml/class128517.html @@ -17,10 +17,11 @@

Declaration :

Directly inherited by : AbstractMO Clip Effect Label Track

-

Artifact : mobject, Component(s) : Session

+

Artifact : mobject, Component(s) : Session

Stereotype: interface

+
Attribut length
-

Declaration :

  • Uml : # length : Time
  • C++ : protected: Time length

TODO: how to represent time intervals?

+

TODO: how to represent time intervals?

Declaration :

All public operations : apply , apply , dispatchOp

diff --git a/doc/devel/uml/class128645.html b/doc/devel/uml/class128645.html index 7b271a2ee..27413648f 100644 --- a/doc/devel/uml/class128645.html +++ b/doc/devel/uml/class128645.html @@ -16,13 +16,14 @@ -

Declaration :

Directly inherited by : ExplicitPlacement

-

used to specify the position of a MObject in the EDL. This can be done in various ways (absolute, relative).
Placement at the same time acts as (refcounting) smart pointer for accessing the MObject.

Artifact : placement

+

used to specify the position of a MObject in the EDL. This can be done in various ways (absolute, relative).
Placement at the same time acts as (refcounting) smart pointer for accessing the MObject.

Declaration :

Directly inherited by : ExplicitPlacement

+

Artifact : placement

Stereotype: interface

+
-
Operation resolve

Declaration :

  • Uml : + resolve() : ExplicitPlacement [ProcessingLayer::MObject]&
  • C++ : public: ExplicitPlacement [ProcessingLayer::MObject]& resolve ()

create an actual (explicit) placement while trying to satisfy the network of adjacent objects and placements.

-
Relation subject (<unidirectional association>)

Declaration :

  • Uml : # subject : MObject, multiplicity : 1
  • C++ : protected: MObject* subject

Placement acts as smart pointer

-
Operation chain

Declaration :

  • Uml : + chain(in style : ) :
  • C++ : public: chain (const & style)

create and add another Placement for this media object, thus increasingly constraining the (possible) position of this object.

-
Relation chain (<unidirectional association>)

Declaration :

Chain of additional Placements further constraining the position of this MObject

+
Operation resolve

create an actual (explicit) placement while trying to satisfy the network of adjacent objects and placements.

Declaration :

+
Relation subject (<unidirectional association>)

Placement acts as smart pointer

Declaration :

+
Operation chain

create and add another Placement for this media object, thus increasingly constraining the (possible) position of this object.

Declaration :

+
Relation chain (<unidirectional association>)

Chain of additional Placements further constraining the position of this MObject

Declaration :

All public operations : chain , resolve

diff --git a/doc/devel/uml/class128821.html b/doc/devel/uml/class128821.html index 26d9d7275..d6bdeb84a 100644 --- a/doc/devel/uml/class128821.html +++ b/doc/devel/uml/class128821.html @@ -16,7 +16,7 @@ -

Declaration :

Frames are just a low level lump of continous memory, most parts are opaque. Frames are memory sensitive, they will be small constant sized structures which can be efficently managed in a pool.

+

Frames are just a low level lump of continous memory, most parts are opaque. Frames are memory sensitive, they will be small constant sized structures which can be efficently managed in a pool.

Declaration :

Relation <directional aggregation>

Declaration :

Relation <directional aggregation>

Declaration :

diff --git a/doc/devel/uml/class128901.html b/doc/devel/uml/class128901.html index 9cc9def6f..3b1c46b47 100644 --- a/doc/devel/uml/class128901.html +++ b/doc/devel/uml/class128901.html @@ -19,7 +19,7 @@

Declaration :

Directly inherited by : CompoundClip SimpleClip

Artifact : clip

-
Relation source (<unidirectional association>)

Declaration :

  • Uml : # source : Media, multiplicity : 1
  • C++ : protected: Media* source

the media source this clip referes to

+
Relation source (<unidirectional association>)

the media source this clip referes to

Declaration :

  • Uml : # source : Media, multiplicity : 1
  • C++ : protected: Media* source

All public operations : apply , apply , dispatchOp

diff --git a/doc/devel/uml/class128906.html b/doc/devel/uml/class128906.html index 2877c4770..81b5fdc34 100644 --- a/doc/devel/uml/class128906.html +++ b/doc/devel/uml/class128906.html @@ -17,5 +17,6 @@

Declaration :

Directly inherited by : FileReference FrameReference

+

Stereotype: auxiliary

diff --git a/doc/devel/uml/class128949.html b/doc/devel/uml/class128949.html index 29a9702fc..eb6b0e313 100644 --- a/doc/devel/uml/class128949.html +++ b/doc/devel/uml/class128949.html @@ -16,7 +16,8 @@ -

Declaration :

A FrameDescriptor implements the higher level interfaces for frames. Further refinements are made by subclassing and policy classes

+

A FrameDescriptor implements the higher level interfaces for frames. Further refinements are made by subclassing and policy classes

Declaration :

  • C++ : class FrameDescriptor
  • Java : package interface FrameDescriptor

Stereotype: interface

+
Relation <aggregation>

Declaration :

diff --git a/doc/devel/uml/class129029.html b/doc/devel/uml/class129029.html index b04d54df7..2c20d1a0f 100644 --- a/doc/devel/uml/class129029.html +++ b/doc/devel/uml/class129029.html @@ -19,7 +19,7 @@

Declaration :

Artifact : effect

Attribut plugin
-

Declaration :

  • Uml : # plugin : string
  • C++ : protected: string plugin

Identifier of the Plugin to be used

+

Identifier of the Plugin to be used

Declaration :

  • Uml : # plugin : string
  • C++ : protected: string plugin

All public operations : apply , apply , dispatchOp

diff --git a/doc/devel/uml/class129333.html b/doc/devel/uml/class129333.html index 1425f3c9b..3eac15183 100644 --- a/doc/devel/uml/class129333.html +++ b/doc/devel/uml/class129333.html @@ -16,11 +16,11 @@ -

Declaration :

This is the Factory for Files, whenever something wants to use some file (or temporary storage), This Factory will hand out some smart/shared pointer to a File object which will be used to retrieve Frames.

+

This is the Factory for Files, whenever something wants to use some file (or temporary storage), This Factory will hand out some smart/shared pointer to a File object which will be used to retrieve Frames.

Declaration :

  • C++ : class FileProvider
Relation files (<aggregation>)

Declaration :

  • Uml : # files : File, multiplicity : *
  • C++ : protected: File * files
-
Operation useFile

Declaration :

Announces that the application intends to use this file with mode (READ|WRITE|READWRITE)

-
Operation useTemporaryStorage

Declaration :

Provides a pool for interminate frames

+
Operation useFile

Announces that the application intends to use this file with mode (READ|WRITE|READWRITE)

Declaration :

+
Operation useTemporaryStorage

Provides a pool for interminate frames

Declaration :

All public operations : useFile , useTemporaryStorage

diff --git a/doc/devel/uml/class129413.html b/doc/devel/uml/class129413.html index b8fa2c81b..5c0d8e925 100644 --- a/doc/devel/uml/class129413.html +++ b/doc/devel/uml/class129413.html @@ -20,9 +20,9 @@
Relation anchor (<unidirectional association>)

Declaration :

Attribut relType
-

Declaration :

the kind of relation denoted by this Placement

+

the kind of relation denoted by this Placement

Declaration :

Attribut offset
-

Declaration :

Offset the actual position by this (time) value relative to the anchor point. TODO: Representation?

Class RelType
+

Offset the actual position by this (time) value relative to the anchor point. TODO: Representation?

Declaration :

Class RelType
diff --git a/doc/devel/uml/class129541.html b/doc/devel/uml/class129541.html index 40d20683a..8e7441336 100644 --- a/doc/devel/uml/class129541.html +++ b/doc/devel/uml/class129541.html @@ -16,11 +16,11 @@ -

Declaration :

Directly inherited by : Constraint Wish

-

a directive to place a MObject in a specific way

Artifact : allocation

+

a directive to place a MObject in a specific way

Declaration :

Directly inherited by : Constraint Wish

+

Artifact : allocation

Attribut repr
-

Declaration :

  • Uml : # repr : string
  • C++ : protected: string repr

human readable representation of the condition characterizing this allocaton, e.g. "t >= 10"

+

human readable representation of the condition characterizing this allocaton, e.g. "t >= 10"

Declaration :

  • Uml : # repr : string
  • C++ : protected: string repr
Operation get_repr

Declaration :

  • Uml : + get_repr() : string
  • C++ : public: inline const string getRepr () const

All public operations : get_repr

diff --git a/doc/devel/uml/class129797.html b/doc/devel/uml/class129797.html index 934410392..b651b6ffa 100644 --- a/doc/devel/uml/class129797.html +++ b/doc/devel/uml/class129797.html @@ -16,7 +16,8 @@ -

Declaration :

Artifact : explicitplacement

+

Declaration :

  • C++ : class ExplicitPlacement : public Placement
  • Java : public interface ExplicitPlacement

Artifact : explicitplacement

Stereotype: interface

+
Attribut time

Declaration :

  • Uml : # time : Time
  • C++ : protected: Time time
diff --git a/doc/devel/uml/class129925.html b/doc/devel/uml/class129925.html index 3052beb5b..91945b847 100644 --- a/doc/devel/uml/class129925.html +++ b/doc/devel/uml/class129925.html @@ -16,7 +16,7 @@ -

Declaration :

Automation data for some parameter (i.e. a time varying function)

Artifact : auto

+

Automation data for some parameter (i.e. a time varying function)

Declaration :

Artifact : auto

Operation getValue

Declaration :

  • Uml : + getValue() : VAL
  • C++ : public: VAL getValue () const

All public operations : apply , apply , dispatchOp , getValue , getValue

diff --git a/doc/devel/uml/class130309.html b/doc/devel/uml/class130309.html index 5c515d659..bd7b1b3d1 100644 --- a/doc/devel/uml/class130309.html +++ b/doc/devel/uml/class130309.html @@ -16,5 +16,6 @@ -

Declaration :

  • C++ : class ControllerFacade

Provides unified access to the Proc-Subsystem Controller. Especially, this Facade class provides the functions to get a render engine to carry out actual renderings.

Artifact : controllerfacade, Component(s) : ControllerFacade

+

Provides unified access to the Proc-Subsystem Controller. Especially, this Facade class provides the functions to get a render engine to carry out actual renderings.

Declaration :

  • C++ : class ControllerFacade

Artifact : controllerfacade, Component(s) : ControllerFacade

Stereotype: boundary

+ diff --git a/doc/devel/uml/class130437.html b/doc/devel/uml/class130437.html index f70da5140..9e90254ce 100644 --- a/doc/devel/uml/class130437.html +++ b/doc/devel/uml/class130437.html @@ -16,9 +16,9 @@ -

Declaration :

  • C++ : class PathManager

While building a render engine, this Strategy class decides on the actual render strategy in accordance to the current controller settings (system state)

Artifact : pathmanager, Component(s) : RenderPathManager

+

While building a render engine, this Strategy class decides on the actual render strategy in accordance to the current controller settings (system state)

Declaration :

  • C++ : class PathManager

Artifact : pathmanager, Component(s) : RenderPathManager

-
Operation buildProcessor

Declaration :

+
Operation buildProcessor

Declaration :

All public operations : buildProcessor

diff --git a/doc/devel/uml/class130565.html b/doc/devel/uml/class130565.html index 9e783f8e1..be15e2b15 100644 --- a/doc/devel/uml/class130565.html +++ b/doc/devel/uml/class130565.html @@ -16,9 +16,10 @@ -

Declaration :

  • C++ : class BuilderFacade

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

Artifact : builderfacade, Component(s) : Controller

+

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

Declaration :

  • C++ : class BuilderFacade

Artifact : builderfacade, Component(s) : Controller

Stereotype: boundary

+
-
Operation buildEngine

Declaration :

Main Operation of the Builder: create a render engine for a given part of the timeline

+
Operation buildEngine

Main Operation of the Builder: create a render engine for a given part of the timeline

Declaration :

All public operations : buildEngine

diff --git a/doc/devel/uml/class130821.html b/doc/devel/uml/class130821.html index f5856aaab..d56ad24bb 100644 --- a/doc/devel/uml/class130821.html +++ b/doc/devel/uml/class130821.html @@ -16,9 +16,9 @@ -

Declaration :

  • C++ : class ConManager

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

Artifact : conmanager

+

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

Declaration :

  • C++ : class ConManager

Artifact : conmanager

-
Operation getConnection

Declaration :

  • Uml : + getConnection() : int
  • C++ : public: int getConnection ()

TODO

+
Operation getConnection

TODO

Declaration :

  • Uml : + getConnection() : int
  • C++ : public: int getConnection ()

All public operations : getConnection

diff --git a/doc/devel/uml/class130949.html b/doc/devel/uml/class130949.html index 05f451c34..05255113d 100644 --- a/doc/devel/uml/class130949.html +++ b/doc/devel/uml/class130949.html @@ -16,7 +16,7 @@ -

Declaration :

  • C++ : class RenderState

Encapsulates the logic used to get a "current render process" in accordance to the currentyl applicable controller settings. The provided StateProxy serves to hold any mutalbe state used in the render process, so the rest of the render engine can be stateless.

Artifact : renderstate

+

Encapsulates the logic used to get a "current render process" in accordance to the currentyl applicable controller settings. The provided StateProxy serves to hold any mutalbe state used in the render process, so the rest of the render engine can be stateless.

Declaration :

  • C++ : class RenderState

Artifact : renderstate

Operation getStateProxy

Declaration :

  • Uml : + getStateProxy() : State
  • C++ : public: State getStateProxy ()

All public operations : getStateProxy

diff --git a/doc/devel/uml/class131077.html b/doc/devel/uml/class131077.html index a5d40eab9..7dd483052 100644 --- a/doc/devel/uml/class131077.html +++ b/doc/devel/uml/class131077.html @@ -16,7 +16,7 @@ -

Declaration :

  • C++ : class Assembler

This is the actual building facility: provided the correct tools and associations, it serves to build and connect the individual ProcNode objects

Artifact : assembler

+

This is the actual building facility: provided the correct tools and associations, it serves to build and connect the individual ProcNode objects

Declaration :

  • C++ : class Assembler

Artifact : assembler

Operation build

Declaration :

All public operations : build

diff --git a/doc/devel/uml/class131333.html b/doc/devel/uml/class131333.html index 70d8c0609..936641c7e 100644 --- a/doc/devel/uml/class131333.html +++ b/doc/devel/uml/class131333.html @@ -16,10 +16,11 @@ -

Declaration :

Artifact : renderengine

+

Declaration :

Artifact : renderengine

-
Operation play

Declaration :

  • Uml : + play() : void
  • C++ : public: void play ()

TODO: will probably be handled differently (see Cehteh)

-
Relation renderSegments (<directional aggregation by value>)

Declaration :

  • Uml : - renderSegments : Processor, multiplicity : 0..*
  • C++ : private: list<Processor> renderSegments
+
Operation play

TODO: will probably be handled differently (see Cehteh)

Declaration :

  • Uml : + play() : void
  • C++ : public: void play ()
+
Relation renderSegments (<directional composition>)

Declaration :

Stereotype: list

+

All public operations : play

diff --git a/doc/devel/uml/class131461.html b/doc/devel/uml/class131461.html index da8373b8e..0463e56d1 100644 --- a/doc/devel/uml/class131461.html +++ b/doc/devel/uml/class131461.html @@ -4,25 +4,26 @@ -Class Processor +Class RenderGraph -
Class Processor
+
Class RenderGraph

-

Declaration :

  • C++ : class Processor

Directly inherited by : RenderEngine

-

Artifact : processor

+

Declaration :

  • C++ : class RenderGraph

Directly inherited by : RenderEngine

+

Artifact : rendergraph

-
Relation output (<unidirectional association>)

Declaration :

+
Relation pipes (<unidirectional association>)

Declaration :

Stereotype: list

+
Attribut start
-

Declaration :

  • Uml : # start : Time
  • C++ : protected: Time start

begin of the timerange covered by this processor

+

begin of the timerange covered by this processor

Declaration :

  • Uml : # start : Time
  • C++ : protected: Time start
Attribut end
-

Declaration :

  • Uml : # end : Time
  • C++ : protected: Time end

end of the timerange (excl)

+

end of the timerange (excl)

Declaration :

  • Uml : # end : Time
  • C++ : protected: Time end
diff --git a/doc/devel/uml/class131589.html b/doc/devel/uml/class131589.html index 86ae3636b..b459ef44a 100644 --- a/doc/devel/uml/class131589.html +++ b/doc/devel/uml/class131589.html @@ -16,7 +16,7 @@ -

Declaration :

The output of the render pipeline. Pulling from such exit nodes actually ivokes the render process

Artifact : exitnode

+

The output of the render pipeline. Pulling from such exit nodes actually ivokes the render process

Declaration :

Artifact : exitnode

All public operations : process , pull

diff --git a/doc/devel/uml/class131717.html b/doc/devel/uml/class131717.html index 2a2783381..faf08fb65 100644 --- a/doc/devel/uml/class131717.html +++ b/doc/devel/uml/class131717.html @@ -16,14 +16,18 @@ -

Declaration :

  • C++ : class ProcNode
  • Java : public interface ProcNode

Directly inherited by : ExitNode Link Source Trafo

-

Key abstraction of the Render Engine: A Data processing Node

Artifact : procnode

+

Key abstraction of the Render Engine: A Data processing Node

Declaration :

  • C++ : class ProcNode
  • Java : public interface ProcNode

Directly inherited by : ExitNode Link Source Trafo

+

Artifact : procnode

Stereotype: interface

+
-
Relation datasrc (<unidirectional association>)

Declaration :

The predecessor in a processing pipeline, i.e. a source to get data to be processed

-
Relation params (<directional aggregation by value>)

Declaration :

-
Relation predecessors (<directional aggregation by value>)

Declaration :

+
Relation datasrc (<unidirectional association>)

The predecessor in a processing pipeline, i.e. a source to get data to be processed

Declaration :

+
Relation params (<directional composition>)

Declaration :

Stereotype: vector

+ +
Relation predecessors (<directional composition>)

Declaration :

Stereotype: array

+
Operation pull

Declaration :

  • Uml : + pull() :
  • C++ : public: pull ()
-
Operation process

Declaration :

  • Uml : + process() :
  • C++ : public: process ()
+
Operation process

Declaration :

  • Uml : + process() :
  • C++ : public: process ()
+
Relation <unidirectional association>

Declaration :

All public operations : process , pull

diff --git a/doc/devel/uml/class132229.html b/doc/devel/uml/class132229.html index 8fc999275..cf51e3c81 100644 --- a/doc/devel/uml/class132229.html +++ b/doc/devel/uml/class132229.html @@ -16,7 +16,7 @@ -

Declaration :

  • C++ : class Projector : public Trafo

Special video processing node used to scale and translate image data.

Artifact : projector

+

Special video processing node used to scale and translate image data.

Declaration :

  • C++ : class Projector : public Trafo

Artifact : projector

All public operations : process , pull

diff --git a/doc/devel/uml/class132485.html b/doc/devel/uml/class132485.html index 54bafe5c9..ff9264b69 100644 --- a/doc/devel/uml/class132485.html +++ b/doc/devel/uml/class132485.html @@ -16,7 +16,7 @@ -

Declaration :

  • C++ : class PluginAdapter : public Trafo

Adapter used to integrage an effects processor in the render pipeline

Artifact : pluginadapter

+

Adapter used to integrage an effects processor in the render pipeline

Declaration :

  • C++ : class PluginAdapter : public Trafo

Artifact : pluginadapter

All public operations : process , pull

diff --git a/doc/devel/uml/class132741.html b/doc/devel/uml/class132741.html index 89bb5e220..dcae6fe88 100644 --- a/doc/devel/uml/class132741.html +++ b/doc/devel/uml/class132741.html @@ -17,9 +17,11 @@

Declaration :

  • C++ : class State
  • Java : public interface State

Directly inherited by : StateAdapter StateProxy

-

Artifact : stateproxy, Component(s) : Builder

+

Artifact : stateproxy, Component(s) : Builder

Stereotype: interface

+
-
Relation currFrame (<unidirectional association>)

Declaration :

  • Uml : # currFrame : Frame
  • C++ : protected: Frame * currFrame
+
Relation currFrame (<unidirectional association>)

Declaration :

  • Uml : # currFrame : Frame
  • C++ : protected: Frame * currFrame

Stereotype: vector

+
Operation fetch

Declaration :

  • Uml : + fetch() :
  • C++ : public: fetch ()
Operation allocateBuffer

Declaration :

  • Uml : + allocateBuffer() :
  • C++ : public: allocateBuffer ()
Operation releaseBuffer

Declaration :

  • Uml : + releaseBuffer() :
  • C++ : public: releaseBuffer ()
diff --git a/doc/devel/uml/class133253.html b/doc/devel/uml/class133253.html index d34dc0fb5..7675db614 100644 --- a/doc/devel/uml/class133253.html +++ b/doc/devel/uml/class133253.html @@ -16,6 +16,7 @@ -

Declaration :

  • C++ : class Frame
  • Java : public interface Frame

Directly inherited by : AFrame GLBuf VFrame

-

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

Artifact : frame

+

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

Declaration :

  • C++ : class Frame
  • Java : public interface Frame

Directly inherited by : AFrame GLBuf VFrame

+

Artifact : frame

Stereotype: interface

+ diff --git a/doc/devel/uml/class133765.html b/doc/devel/uml/class133765.html index b6f9bde2d..d4b581b4c 100644 --- a/doc/devel/uml/class133765.html +++ b/doc/devel/uml/class133765.html @@ -16,7 +16,7 @@ -

Declaration :

Source Node: represents a media source to pull data from.

Artifact : source

+

Source Node: represents a media source to pull data from.

Declaration :

Artifact : source

All public operations : process , pull

diff --git a/doc/devel/uml/class133893.html b/doc/devel/uml/class133893.html index ba0cbda57..8db886c76 100644 --- a/doc/devel/uml/class133893.html +++ b/doc/devel/uml/class133893.html @@ -16,7 +16,8 @@ -

Declaration :

  • C++ : enum RelType
  • Java : public enum RelType

the possible kinds of RelativePlacements

nested in RelativeLocation

+

the possible kinds of RelativePlacements

Declaration :

  • C++ : enum RelType
  • Java : public enum RelType

nested in RelativeLocation

+

Stereotype: enum

Items :

  • SAMETIME
  • diff --git a/doc/devel/uml/class134021.html b/doc/devel/uml/class134021.html index 01a81da6f..f9732546a 100644 --- a/doc/devel/uml/class134021.html +++ b/doc/devel/uml/class134021.html @@ -17,7 +17,8 @@

    Declaration :

    • C++ : class Buildable : public Visitable
    • Java : public interface Buildable

    Directly inherited by : MObject

    -

    Artifact : buildable

    +

    Artifact : buildable

    Stereotype: interface

    +
    Operation apply

    Declaration :

    • Uml : abstract, + apply(inout providedTool : BuilderTool) : void
    • C++ : public: virtual void apply (BuilderTool& providedTool) = 0

    All public operations : apply , apply , dispatchOp

    diff --git a/doc/devel/uml/class134149.html b/doc/devel/uml/class134149.html index ec9c026f4..dc49f9771 100644 --- a/doc/devel/uml/class134149.html +++ b/doc/devel/uml/class134149.html @@ -16,10 +16,11 @@ -

    Declaration :

    • C++ : class BuilderTool : public Tool, public Applicable<>
    • Java : public interface BuilderTool

    Directly inherited by : NodeCreatorTool SegmentationTool

    -

    Used according to the visitor pattern: each Tool contains the concrete implementation for one task to be done to the various MObject classes

    Artifact : buildertool

    +

    Used according to the visitor pattern: each Tool contains the concrete implementation for one task to be done to the various MObject classes

    Declaration :

    • C++ : class BuilderTool : public Tool, public Applicable<>
    • Java : public interface BuilderTool

    Directly inherited by : NodeCreatorTool SegmentationTool

    +

    Artifact : buildertool

    Stereotype: interface

    +
    -
    Operation treat

    Declaration :

    • Uml : abstract, + treat(in mElement : Buildable) : void
    • C++ : public: virtual void treat (const Buildable& mElement) = 0

    This operation is to be overloaded for the specific MObject subclasses to be treated.

    +
    Operation treat

    This operation is to be overloaded for the specific MObject subclasses to be treated.

    Declaration :

    • Uml : abstract, + treat(in mElement : Buildable) : void
    • C++ : public: virtual void treat (const Buildable& mElement) = 0

    All public operations : treat , treat

    diff --git a/doc/devel/uml/class134277.html b/doc/devel/uml/class134277.html index 6c87e8635..4b7d1cd77 100644 --- a/doc/devel/uml/class134277.html +++ b/doc/devel/uml/class134277.html @@ -16,12 +16,15 @@ -

    Declaration :

    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.

    Artifact : segmentationtool

    +

    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.

    Declaration :

    Artifact : segmentationtool

    Operation treat

    Declaration :

    • Uml : + treat(in something : Buildable) : void
    • C++ : public: void treat (const Buildable& something)
    Operation treat

    Declaration :

    • Uml : + treat(in clip : Clip) : void
    • C++ : public: void treat (const Clip& clip)
    Operation treat

    Declaration :

    • Uml : + treat(in effect : Effect) : void
    • C++ : public: void treat (const Effect& effect)
    -
    Relation segments (<directional aggregation by value>)

    Declaration :

    • Uml : # segments : Segment, multiplicity : *
    • C++ : protected: list<Segment> segments

    the partitioning of the Timeline to be created by this tool.

    +
    Relation segments (<directional composition>)

    the partitioning of the Timeline to be created by this tool.

    Declaration :

    • Uml : # segments : Segment, multiplicity : *
    • C++ : protected: list<Segment> segments

    Stereotype: list

    + +
    Relation <unidirectional association>

    Declaration :

    Stereotype: create

    +

    All public operations : treat , treat , treat , treat , treat

    diff --git a/doc/devel/uml/class134405.html b/doc/devel/uml/class134405.html index 8030835d6..427a1e23a 100644 --- a/doc/devel/uml/class134405.html +++ b/doc/devel/uml/class134405.html @@ -16,14 +16,14 @@ -

    Declaration :

    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.

    Artifact : nodecreatertool

    +

    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.

    Declaration :

    Artifact : nodecreatertool

    Operation treat

    Declaration :

    • Uml : + treat(inout something : Buildable) : void
    • C++ : public: void treat (Buildable& something)
    Operation treat

    Declaration :

    • Uml : + treat(inout clip : Clip) : void
    • C++ : public: void treat (Clip& clip)
    Operation treat

    Declaration :

    • Uml : + treat(inout effect : Effect) : void
    • C++ : public: void treat (Effect& effect)
    Operation treat

    Declaration :

    • Uml : + treat(inout auto : Auto) : void
    • C++ : public: void treat (Auto& auto)
    Attribut proc
    -

    Declaration :

    holds the Processor (Render Engine Element) to be built by the current build step

    +

    holds the Processor (Render Engine Element) to be built by the current build step

    Declaration :

    All public operations : treat , treat , treat , treat , treat , treat

    diff --git a/doc/devel/uml/class134533.html b/doc/devel/uml/class134533.html index cc2ba0f55..41bf3599e 100644 --- a/doc/devel/uml/class134533.html +++ b/doc/devel/uml/class134533.html @@ -16,7 +16,7 @@ -

    Declaration :

    • C++ : template<class VAL> class Parameter

    Descriptor and access object for a plugin parameter. Parameters may be provided with values from the session, and this values may be automated.

    Artifact : parameter, Component(s) : ProcNode

    +

    Descriptor and access object for a plugin parameter. Parameters may be provided with values from the session, and this values may be automated.

    Declaration :

    • C++ : template<class VAL> class Parameter

    Artifact : parameter, Component(s) : ProcNode

    Operation getValue

    Declaration :

    • Uml : + getValue() : VAL
    • C++ : public: VAL getValue () const
    Relation <association>

    Declaration :

    diff --git a/doc/devel/uml/class134661.html b/doc/devel/uml/class134661.html index 1933e5d2e..42afe7bb0 100644 --- a/doc/devel/uml/class134661.html +++ b/doc/devel/uml/class134661.html @@ -16,8 +16,9 @@ -

    Declaration :

    • C++ : template<class VAL> class ParamProvider
    • Java : public interface ParamProvider<VAL>

    Directly inherited by : Auto

    -

    A facility to get the actual value of a plugin/effect parameter

    Artifact : paramprovider, Component(s) : Session

    +

    A facility to get the actual value of a plugin/effect parameter

    Declaration :

    • C++ : template<class VAL> class ParamProvider
    • Java : public interface ParamProvider<VAL>

    Directly inherited by : Auto

    +

    Artifact : paramprovider, Component(s) : Session

    Stereotype: interface

    +
    Relation param (<association>)

    Declaration :

    Relation ipo (<unidirectional association>)

    Declaration :

    diff --git a/doc/devel/uml/class134789.html b/doc/devel/uml/class134789.html index 5da6a8542..c3f469971 100644 --- a/doc/devel/uml/class134789.html +++ b/doc/devel/uml/class134789.html @@ -16,5 +16,5 @@ -

    Declaration :

    • C++ : template<class VAL> class Interpolator

    Provides the implementation for getting the acutal value of a time varying or automated effect/plugin parameter

    Artifact : interpolator

    +

    Provides the implementation for getting the acutal value of a time varying or automated effect/plugin parameter

    Declaration :

    • C++ : template<class VAL> class Interpolator

    Artifact : interpolator

    diff --git a/doc/devel/uml/class134917.html b/doc/devel/uml/class134917.html index c2d5f5781..cfbb6bb3e 100644 --- a/doc/devel/uml/class134917.html +++ b/doc/devel/uml/class134917.html @@ -16,5 +16,5 @@ -

    Declaration :

    • C++ : class Time

    denotes a temporal position (time point), based on timeline start.

    investigate posix.4 realtime timers, wrap these here

    Artifact : time, Component(s) : CommonLib

    +

    denotes a temporal position (time point), based on timeline start.

    investigate posix.4 realtime timers, wrap these here

    Declaration :

    • C++ : class Time

    Artifact : time, Component(s) : CommonLib

    diff --git a/doc/devel/uml/class135173.html b/doc/devel/uml/class135173.html index d4c848734..9f75dca8e 100644 --- a/doc/devel/uml/class135173.html +++ b/doc/devel/uml/class135173.html @@ -21,7 +21,10 @@
    Attribut start

    Declaration :

    • Uml : # start : Time
    • C++ : protected: Time start
    Attribut length
    -

    Declaration :

    • Uml : # length : Time
    • C++ : protected: Time length

    duration (span) of this timeline segment.

    -
    Relation elements (<directional aggregation>)

    Declaration :

    relevant MObjects comprising this segment. TODO: actually necessary??

    +

    duration (span) of this timeline segment.

    Declaration :

    • Uml : # length : Time
    • C++ : protected: Time length
    +
    Relation elements (<directional aggregation>)

    relevant MObjects comprising this segment. TODO: actually necessary??

    Declaration :

    Stereotype: list

    + +
    Relation <unidirectional association>

    Declaration :

    Stereotype: correspondance

    +
    diff --git a/doc/devel/uml/class135301.html b/doc/devel/uml/class135301.html index 178a99fd4..286141bf3 100644 --- a/doc/devel/uml/class135301.html +++ b/doc/devel/uml/class135301.html @@ -16,5 +16,5 @@ -

    Declaration :

    • C++ : template<class T> class Factory

    a template for generating functor-like Factory objects, used to encapsulate object creation and providing access via smart-pointers only.

    +

    a template for generating functor-like Factory objects, used to encapsulate object creation and providing access via smart-pointers only.

    Declaration :

    • C++ : template<class T> class Factory
    diff --git a/doc/devel/uml/class135429.html b/doc/devel/uml/class135429.html index 538ad35b0..f78af5ebf 100644 --- a/doc/devel/uml/class135429.html +++ b/doc/devel/uml/class135429.html @@ -16,13 +16,14 @@ -

    Declaration :

    • C++ : class Appconfig

    Singleton to hold inevitable global flags and constants and for performing erarly (static) global initialization tasks.

    Artifact : appconfig

    +

    Singleton to hold inevitable global flags and constants and for performing erarly (static) global initialization tasks.

    Declaration :

    • C++ : class Appconfig

    Artifact : appconfig

    Stereotype: singleton

    +
    Attribut theApp_
    -

    Declaration :

    holds the single instance and triggers initialization

    -
    Operation Appconfig

    Declaration :

    • Uml : - Appconfig() :
    • C++ : private: Appconfig ()

    perform initialization on first access.
    A call is placed in static initialization code
    included in lumiera.h

    +

    holds the single instance and triggers initialization

    Declaration :

    +
    Operation Appconfig

    perform initialization on first access.
    A call is placed in static initialization code
    included in lumiera.h

    Declaration :

    • Uml : - Appconfig() :
    • C++ : private: Appconfig ()
    Operation instance

    Declaration :

    • Uml : static, - instance() : Appconfig*
    • C++ : private: static Appconfig* instance ()
    -
    Operation get

    Declaration :

    • Uml : static, + get(inout key : string) : string
    • C++ : public: static string get (string & key)

    access the configuation value for a given key.
    @return empty string for unknown keys, else the corresponding configuration value

    +
    Operation get

    access the configuation value for a given key.
    @return empty string for unknown keys, else the corresponding configuration value

    Declaration :

    • Uml : static, + get(inout key : string) : string
    • C++ : public: static string get (string & key)

    All public operations : get

    diff --git a/doc/devel/uml/class135557.html b/doc/devel/uml/class135557.html index cb97dca6f..596d71978 100644 --- a/doc/devel/uml/class135557.html +++ b/doc/devel/uml/class135557.html @@ -20,9 +20,10 @@

    Artifact : error, Component(s) : CommonLib

    Operation what

    Declaration :

    • Uml : + what() : const char*
    • C++ : public: virtual const char* what () const
    -
    Operation rootCause

    Declaration :

    • Uml : + rootCause() : std::exception
    • C++ : public: std::exception rootCause ()

    If this exception was caused by a chain of further exceptions,
    return the first one registered in this throw sequence.
    This works only, if every exceptions thrown as a consequence
    of another exception is propperly constructed by passing
    the original exception to the constructor

    +
    Operation rootCause

    If this exception was caused by a chain of further exceptions,
    return the first one registered in this throw sequence.
    This works only, if every exceptions thrown as a consequence
    of another exception is propperly constructed by passing
    the original exception to the constructor

    Declaration :

    • Uml : + rootCause() : std::exception
    • C++ : public: std::exception rootCause ()
    Attribut cause
    -

    Declaration :

    a copy of the first exception encountered in this exception chain

    +

    a copy of the first exception encountered in this exception chain

    Declaration :

    Stereotype: auto_ptr

    +

    All public operations : rootCause , what , what

    diff --git a/doc/devel/uml/class136325.html b/doc/devel/uml/class136325.html index 002984e29..0fa282d7b 100644 --- a/doc/devel/uml/class136325.html +++ b/doc/devel/uml/class136325.html @@ -17,9 +17,10 @@

    Declaration :

    • C++ : class std::exception

    Directly inherited by : Error

    +

    Stereotype: auxiliary

    -
    Operation what

    Declaration :

    • Uml : + what() : const char*
    • C++ : public: virtual const char* what () const

    the base class of all exceptions thrown by the standard library

    +
    Operation what

    the base class of all exceptions thrown by the standard library

    Declaration :

    • Uml : + what() : const char*
    • C++ : public: virtual const char* what () const

    All public operations : what

    diff --git a/doc/devel/uml/class136453.html b/doc/devel/uml/class136453.html index 610053bbe..37d311511 100644 --- a/doc/devel/uml/class136453.html +++ b/doc/devel/uml/class136453.html @@ -16,28 +16,29 @@ -

    Declaration :

    • C++ : class Asset
    • Java : public interface Asset

    Directly inherited by : Media Meta Proc Struct

    -

    Superinterface describing especially the bookeeping properties of Assets

    Artifact : asset

    +

    Superinterface describing especially the bookeeping properties of Assets

    Declaration :

    • C++ : class Asset
    • Java : public interface Asset

    Directly inherited by : Media Meta Proc Struct

    +

    Artifact : asset

    Stereotype: interface

    +
    Attribut id
    -

    Declaration :

    • Uml : + id : long
    • C++ : public: const long id

    Asset primary key.

    +

    Asset primary key.

    Declaration :

    • Uml : + id : long
    • C++ : public: const long id
    Attribut name
    -

    Declaration :

    • Uml : + name : string
    • C++ : public: const string name

    element ID, comprehensible but sanitized. The tuple (category, name, org) is unique.

    -
    Relation category (<unidirectional association>)

    Declaration :

    • Uml : + category : Category, multiplicity : 1
    • C++ : public: const Category* category

    primary tree like classification of the asset

    +

    element ID, comprehensible but sanitized. The tuple (category, name, org) is unique.

    Declaration :

    • Uml : + name : string
    • C++ : public: const string name
    +
    Relation category (<unidirectional association>)

    primary tree like classification of the asset

    Declaration :

    • Uml : + category : Category, multiplicity : 1
    • C++ : public: const Category* category
    Attribut org
    -

    Declaration :

    • Uml : + org : string
    • C++ : public: const string org

    origin or authorship id. Can be a project abbreviation, a package id or just the authors nickname or UID. This allows for the compnent name to be more generic (e.g. "blur"). Default for all assets provided by the core Lumiera codebase is "lumi".

    +

    origin or authorship id. Can be a project abbreviation, a package id or just the authors nickname or UID. This allows for the compnent name to be more generic (e.g. "blur"). Default for all assets provided by the core Lumiera codebase is "lumi".

    Declaration :

    • Uml : + org : string
    • C++ : public: const string org
    Attribut version
    -

    Declaration :

    • Uml : + version : uint
    • C++ : public: const unsigned int version

    version number of the thing or concept represented by this asset. Of each unique tuple (name, category, org) there will be only one version in the whole system. Version 0 is reserved for internal purposes. Versions are considered to be ordered, and any higher version is supposed to be fully backwards compatible to all previous versions.

    +

    version number of the thing or concept represented by this asset. Of each unique tuple (name, category, org) there will be only one version in the whole system. Version 0 is reserved for internal purposes. Versions are considered to be ordered, and any higher version is supposed to be fully backwards compatible to all previous versions.

    Declaration :

    • Uml : + version : uint
    • C++ : public: const unsigned int version
    Attribut groups
    -

    Declaration :

    • Uml : # groups : set<string>
    • C++ : protected: set<string> groups

    additional classification, selections or departments this asset belongs to. Groups are optional, non-exclusive and may be overlapping.

    +

    additional classification, selections or departments this asset belongs to. Groups are optional, non-exclusive and may be overlapping.

    Declaration :

    • Uml : # groups : set<string>
    • C++ : protected: set<string> groups
    Attribut shortDesc
    -

    Declaration :

    • Uml : # shortDesc : string
    • C++ : protected: const string shortDesc

    user visible Name-ID. To be localized.

    +

    user visible Name-ID. To be localized.

    Declaration :

    • Uml : # shortDesc : string
    • C++ : protected: const string shortDesc
    Attribut longDesc
    -

    Declaration :

    • Uml : # longDesc : string
    • C++ : protected: const string longDesc

    user visible qualification of the thing, unit or concept represented by this asset. perferably "in one line". To be localized.

    -
    Operation getParents

    Declaration :

    • Uml : + getParents() : vector<PAsset>
    • C++ : public: vector<PAsset> getParents ()

    List of entities this asset depends on or requires to be functional. May be empty. The head of this list can be considered the primary prerequisite

    -
    Operation getDependant

    Declaration :

    • Uml : + getDependant() : vector<PAsset>
    • C++ : public: vector<PAsset> getDependant ()

    All the other assets requiring this asset to be functional. For example, all the clips depending on a given media file. May be empty. The dependency relation is transitive.

    -
    Operation isActive

    Declaration :

    • Uml : + isActive() : bool
    • C++ : public: bool isActive ()

    weather this asset is swithced on and consequently included in the fixture and participates in rendering

    -
    Operation enable

    Declaration :

    • Uml : + enable(in bool : ) : void, exceptions : State
    • C++ : public: void enable () throw (State)

    change the enabled status of this asset. Note the corresponding #isActive predicate may depend on the enablement status of parent assets as well

    +

    user visible qualification of the thing, unit or concept represented by this asset. perferably "in one line". To be localized.

    Declaration :

    • Uml : # longDesc : string
    • C++ : protected: const string longDesc
    +
    Operation getParents

    List of entities this asset depends on or requires to be functional. May be empty. The head of this list can be considered the primary prerequisite

    Declaration :

    • Uml : + getParents() : vector<PAsset>
    • C++ : public: vector<PAsset> getParents ()
    +
    Operation getDependant

    All the other assets requiring this asset to be functional. For example, all the clips depending on a given media file. May be empty. The dependency relation is transitive.

    Declaration :

    • Uml : + getDependant() : vector<PAsset>
    • C++ : public: vector<PAsset> getDependant ()
    +
    Operation isActive

    weather this asset is swithced on and consequently included in the fixture and participates in rendering

    Declaration :

    • Uml : + isActive() : bool
    • C++ : public: bool isActive ()
    +
    Operation enable

    change the enabled status of this asset. Note the corresponding #isActive predicate may depend on the enablement status of parent assets as well

    Declaration :

    • Uml : + enable(in bool : ) : void, exceptions : State
    • C++ : public: void enable () throw (State)

    All public operations : enable , getDependant , getParents , isActive

    diff --git a/doc/devel/uml/class136581.html b/doc/devel/uml/class136581.html index f9cfcc755..27db85e0f 100644 --- a/doc/devel/uml/class136581.html +++ b/doc/devel/uml/class136581.html @@ -16,14 +16,15 @@ -

    Declaration :

    • C++ : class AssetManager

    Facade for the Asset subsystem

    Artifact : assetmanager

    +

    Facade for the Asset subsystem

    Declaration :

    • C++ : class AssetManager

    Artifact : assetmanager

    Stereotype: boundary

    +
    Operation getID

    Declaration :

    • Uml : static, + getID(in idi : Asset) :
    • C++ : public: static getID ()
    -
    Operation getAsset

    Declaration :

    • Uml : + getAsset(in id : long) : KIND, exceptions : Invalid
    • C++ : public: template<class KIND> KIND getAsset (long & id) throw (Invalid)

    find and return corresponging object

    -
    Operation known

    Declaration :

    • Uml : + known(in id : long) : bool
    • C++ : public: bool known (long id)

    @return true if the given id is registered in the internal asset DB

    -
    Operation remove

    Declaration :

    • Uml : + remove(in id : long) : void, exceptions : Invalid, State
    • C++ : public: void remove (long id) throw (Invalid, State)

    remove the given asset <i>together with all its dependants</i> from the internal DB

    -
    Operation reg

    Declaration :

    • Uml : static, # reg(inout name : string, inout category : string, inout org : string, inout uint : version) : long, exceptions : Invalid
    • C++ : protected: static long reg (string & name, string & category, string & org, version& uint) throw (Invalid)

    registers an asset object in the internal DB, providing its unique key

    -
    Relation registry (<unidirectional association>)

    Declaration :

    • Uml : # registry : DB, multiplicity : 1
    • C++ : protected: DB* registry

    @internal Table or DB holding all registered asset instances.

    +
    Operation getAsset

    find and return corresponging object

    Declaration :

    • Uml : + getAsset(in id : long) : KIND, exceptions : Invalid
    • C++ : public: template<class KIND> KIND getAsset (long & id) throw (Invalid)
    +
    Operation known

    @return true if the given id is registered in the internal asset DB

    Declaration :

    • Uml : + known(in id : long) : bool
    • C++ : public: bool known (long id)
    +
    Operation remove

    remove the given asset <i>together with all its dependants</i> from the internal DB

    Declaration :

    • Uml : + remove(in id : long) : void, exceptions : Invalid, State
    • C++ : public: void remove (long id) throw (Invalid, State)
    +
    Operation reg

    registers an asset object in the internal DB, providing its unique key

    Declaration :

    • Uml : static, # reg(inout name : string, inout category : string, inout org : string, inout uint : version) : long, exceptions : Invalid
    • C++ : protected: static long reg (string & name, string & category, string & org, version& uint) throw (Invalid)
    +
    Relation registry (<unidirectional association>)

    @internal Table or DB holding all registered asset instances.

    Declaration :

    • Uml : # registry : DB, multiplicity : 1
    • C++ : protected: DB* registry

    All public operations : getAsset , getID , known , remove

    diff --git a/doc/devel/uml/class136709.html b/doc/devel/uml/class136709.html index b07b2cdc6..07f4ded09 100644 --- a/doc/devel/uml/class136709.html +++ b/doc/devel/uml/class136709.html @@ -16,11 +16,11 @@ -

    Declaration :

    • C++ : class Media : public Asset

    Directly inherited by : Clip CompoundMedia Unknown

    -

    key abstraction: media-like assets

    Artifact : media

    +

    key abstraction: media-like assets

    Declaration :

    • C++ : class Media : public Asset

    Directly inherited by : Clip CompoundMedia Unknown

    +

    Artifact : media

    -
    Operation createClip

    Declaration :

    • Uml : + createClip() : Clip
    • C++ : public: Clip createClip ()

    create a (possibly compound) Clip refering to this media, ready to be added to the EDL.

    -
    Operation howtoProc

    Declaration :

    @return descriptor how to build a render pipeline corresponding to this media

    +
    Operation createClip

    create a (possibly compound) Clip refering to this media, ready to be added to the EDL.

    Declaration :

    • Uml : + createClip() : Clip
    • C++ : public: Clip createClip ()
    +
    Operation howtoProc

    @return descriptor how to build a render pipeline corresponding to this media

    Declaration :

    All public operations : createClip , enable , getDependant , getParents , howtoProc , isActive

    diff --git a/doc/devel/uml/class136837.html b/doc/devel/uml/class136837.html index 32eeedace..ee7c013c5 100644 --- a/doc/devel/uml/class136837.html +++ b/doc/devel/uml/class136837.html @@ -16,8 +16,8 @@ -

    Declaration :

    • C++ : class Proc : public Asset

    Directly inherited by : Codec Effect

    -

    key abstraction: data processing asset

    Artifact : proc

    +

    key abstraction: data processing asset

    Declaration :

    • C++ : class Proc : public Asset

    Directly inherited by : Codec Effect

    +

    Artifact : proc

    All public operations : enable , getDependant , getParents , isActive

    diff --git a/doc/devel/uml/class136965.html b/doc/devel/uml/class136965.html index b705413c0..6d8310a27 100644 --- a/doc/devel/uml/class136965.html +++ b/doc/devel/uml/class136965.html @@ -16,8 +16,8 @@ -

    Declaration :

    • C++ : class Struct : public Asset

    Directly inherited by : Pipe ProcPatt Track

    -

    key abstraction: structural asset

    Artifact : struct

    +

    key abstraction: structural asset

    Declaration :

    • C++ : class Struct : public Asset

    Directly inherited by : Pipe ProcPatt Track

    +

    Artifact : struct

    All public operations : enable , getDependant , getParents , isActive

    diff --git a/doc/devel/uml/class137093.html b/doc/devel/uml/class137093.html index 6fc18f4e0..c57edd68a 100644 --- a/doc/devel/uml/class137093.html +++ b/doc/devel/uml/class137093.html @@ -16,8 +16,8 @@ -

    Declaration :

    • C++ : class Meta : public Asset

    Directly inherited by : Dataset

    -

    key abstraction: metadata and organisational asset

    Artifact : meta

    +

    key abstraction: metadata and organisational asset

    Declaration :

    • C++ : class Meta : public Asset

    Directly inherited by : Dataset

    +

    Artifact : meta

    All public operations : enable , getDependant , getParents , isActive

    diff --git a/doc/devel/uml/class137221.html b/doc/devel/uml/class137221.html index 6bac4b8ca..273e26211 100644 --- a/doc/devel/uml/class137221.html +++ b/doc/devel/uml/class137221.html @@ -16,5 +16,5 @@ -

    Declaration :

    • C++ : class Category

    tree like classification of Assets

    Artifact : category

    +

    tree like classification of Assets

    Declaration :

    • C++ : class Category

    Artifact : category

    diff --git a/doc/devel/uml/class137349.html b/doc/devel/uml/class137349.html index 7d1b67bef..5239eaf48 100644 --- a/doc/devel/uml/class137349.html +++ b/doc/devel/uml/class137349.html @@ -16,9 +16,9 @@ -

    Declaration :

    • C++ : class Clip : public Media

    bookkeeping (asset) view of a media clip.

    Artifact : clip

    +

    bookkeeping (asset) view of a media clip.

    Declaration :

    • C++ : class Clip : public Media

    Artifact : clip

    -
    Relation source (<unidirectional association>)

    Declaration :

    • Uml : # source : Media, multiplicity : 1
    • C++ : protected: const Media* source

    media source of this clip

    +
    Relation source (<unidirectional association>)

    media source of this clip

    Declaration :

    • Uml : # source : Media, multiplicity : 1
    • C++ : protected: const Media* source

    All public operations : createClip , enable , getDependant , getParents , howtoProc , isActive

    diff --git a/doc/devel/uml/class137477.html b/doc/devel/uml/class137477.html index 8f5631895..b1b8d8b30 100644 --- a/doc/devel/uml/class137477.html +++ b/doc/devel/uml/class137477.html @@ -16,8 +16,8 @@ -

    Declaration :

    • C++ : class Unknown : public Media

    Directly inherited by : Preview

    -

    placeholder for unknown or unavailable media source

    Artifact : unknown

    +

    placeholder for unknown or unavailable media source

    Declaration :

    • C++ : class Unknown : public Media

    Directly inherited by : Preview

    +

    Artifact : unknown

    All public operations : createClip , enable , getDependant , getParents , howtoProc , isActive

    diff --git a/doc/devel/uml/class137605.html b/doc/devel/uml/class137605.html index f8942d22a..9d793649b 100644 --- a/doc/devel/uml/class137605.html +++ b/doc/devel/uml/class137605.html @@ -16,7 +16,7 @@ -

    Declaration :

    • C++ : class Preview : public Unknown

    alternative version of the media data, probably with lower resolution

    Artifact : preview

    +

    alternative version of the media data, probably with lower resolution

    Declaration :

    • C++ : class Preview : public Unknown

    Artifact : preview

    All public operations : createClip , enable , getDependant , getParents , howtoProc , isActive

    diff --git a/doc/devel/uml/class137733.html b/doc/devel/uml/class137733.html index 9e9122764..e1c77a7e1 100644 --- a/doc/devel/uml/class137733.html +++ b/doc/devel/uml/class137733.html @@ -16,7 +16,7 @@ -

    Declaration :

    • C++ : class Effect : public Proc

    Effect or media processing component

    Artifact : effect

    +

    Effect or media processing component

    Declaration :

    • C++ : class Effect : public Proc

    Artifact : effect

    All public operations : enable , getDependant , getParents , isActive

    diff --git a/doc/devel/uml/class137861.html b/doc/devel/uml/class137861.html index e492ab185..3daa3239c 100644 --- a/doc/devel/uml/class137861.html +++ b/doc/devel/uml/class137861.html @@ -16,7 +16,7 @@ -

    Declaration :

    • C++ : class Codec : public Proc

    description of some media data decoder or encoder facility

    Artifact : codec

    +

    description of some media data decoder or encoder facility

    Declaration :

    • C++ : class Codec : public Proc

    Artifact : codec

    All public operations : enable , getDependant , getParents , isActive

    diff --git a/doc/devel/uml/class137989.html b/doc/devel/uml/class137989.html index 5ee601cc6..95d34e58f 100644 --- a/doc/devel/uml/class137989.html +++ b/doc/devel/uml/class137989.html @@ -16,7 +16,7 @@ -

    Declaration :

    • C++ : class Track : public Struct

    structural asset holding the configuration of a track in the EDL

    Artifact : track

    +

    structural asset holding the configuration of a track in the EDL

    Declaration :

    • C++ : class Track : public Struct

    Artifact : track

    All public operations : enable , getDependant , getParents , isActive

    diff --git a/doc/devel/uml/class138117.html b/doc/devel/uml/class138117.html index a0c0efcf7..6303d6c05 100644 --- a/doc/devel/uml/class138117.html +++ b/doc/devel/uml/class138117.html @@ -16,7 +16,7 @@ -

    Declaration :

    • C++ : class Pipe : public Struct

    structural asset representing a basic building block within the high level model: a port for building a processing chain and generating media output

    Artifact : pipe

    +

    structural asset representing a basic building block within the high level model: a port for building a processing chain and generating media output

    Declaration :

    • C++ : class Pipe : public Struct

    Artifact : pipe

    Relation wiringTemplate (<unidirectional association>)

    Declaration :

    • Uml : # wiringTemplate : ProcPatt, multiplicity : 0..1
    • C++ : protected: ProcPatt* wiringTemplate

    All public operations : enable , getDependant , getParents , isActive

    diff --git a/doc/devel/uml/class138245.html b/doc/devel/uml/class138245.html index cc00110c8..42565060f 100644 --- a/doc/devel/uml/class138245.html +++ b/doc/devel/uml/class138245.html @@ -16,7 +16,7 @@ -

    Declaration :

    • C++ : class Dataset : public Meta

    meta asset describing a collection of control data

    Artifact : dataset

    +

    meta asset describing a collection of control data

    Declaration :

    • C++ : class Dataset : public Meta

    Artifact : dataset

    All public operations : enable , getDependant , getParents , isActive

    diff --git a/doc/devel/uml/class138373.html b/doc/devel/uml/class138373.html index 59b8657a5..9e4e8f0ea 100644 --- a/doc/devel/uml/class138373.html +++ b/doc/devel/uml/class138373.html @@ -16,5 +16,5 @@ -

    Declaration :

    • C++ : class DB

    Implementation of the registry holding all Asset instances known to the Asset Manager subsystem. As of 8/2007 implemented by a hashtable.

    Artifact : db

    +

    Implementation of the registry holding all Asset instances known to the Asset Manager subsystem. As of 8/2007 implemented by a hashtable.

    Declaration :

    • C++ : class DB

    Artifact : db

    diff --git a/doc/devel/uml/class138501.html b/doc/devel/uml/class138501.html index fd0b56e89..420f671ef 100644 --- a/doc/devel/uml/class138501.html +++ b/doc/devel/uml/class138501.html @@ -16,9 +16,10 @@ -

    Declaration :

    • C++ : class CompoundMedia : public Media

    compound of several elementary media tracks,
    e.g. the individual media streams found in one media file

    Artifact : compoundmedia

    +

    compound of several elementary media tracks,
    e.g. the individual media streams found in one media file

    Declaration :

    • C++ : class CompoundMedia : public Media

    Artifact : compoundmedia

    -
    Relation tracks (<directional aggregation>)

    Declaration :

    • Uml : # tracks : Media, multiplicity : 1..*
    • C++ : protected: vector<Media *> tracks

    elementary media assets comprising this compound

    +
    Relation tracks (<directional aggregation>)

    elementary media assets comprising this compound

    Declaration :

    • Uml : # tracks : Media, multiplicity : 1..*
    • C++ : protected: vector<Media *> tracks

    Stereotype: vector

    +

    All public operations : createClip , enable , getDependant , getParents , howtoProc , isActive

    diff --git a/doc/devel/uml/class138629.html b/doc/devel/uml/class138629.html index 83cab8165..07422105d 100644 --- a/doc/devel/uml/class138629.html +++ b/doc/devel/uml/class138629.html @@ -16,7 +16,7 @@ -

    Declaration :

    • C++ : class CompoundClip : public Clip

    Clip MObject which is actually a compound of several elementary clips,
    e.g. the several streams found within multichannels media.

    Artifact : compoundclip, Diagram : Session structure

    +

    Clip MObject which is actually a compound of several elementary clips,
    e.g. the several streams found within multichannels media.

    Declaration :

    • C++ : class CompoundClip : public Clip

    Artifact : compoundclip, Diagram : Session structure

    Relation components (<directional aggregation>)

    Declaration :

    • Uml : # components : Clip, multiplicity : 1..*
    • C++ : protected: Clip* components

    All public operations : apply , apply , dispatchOp

    diff --git a/doc/devel/uml/class138757.html b/doc/devel/uml/class138757.html index d4594382d..786f86aa2 100644 --- a/doc/devel/uml/class138757.html +++ b/doc/devel/uml/class138757.html @@ -16,9 +16,10 @@ -

    Declaration :

    • C++ : class ProcPatt : public Struct

    special type of structural Asset representing information how to build some part of the render engine's processing nodes network.

    Artifact : procpatt

    +

    special type of structural Asset representing information how to build some part of the render engine's processing nodes network.

    Declaration :

    • C++ : class ProcPatt : public Struct

    Artifact : procpatt

    -
    Relation instructions (<directional aggregation by value>)

    Declaration :

    +
    Relation instructions (<directional composition>)

    Declaration :

    Stereotype: vector

    +

    All public operations : enable , getDependant , getParents , isActive

    diff --git a/doc/devel/uml/class138885.html b/doc/devel/uml/class138885.html index ce532c0e7..efb3765a6 100644 --- a/doc/devel/uml/class138885.html +++ b/doc/devel/uml/class138885.html @@ -16,7 +16,7 @@ -

    Declaration :

    • C++ : class SimpleClip : public Clip

    Elementary clip consisting of only one media stream

    Artifact : simpleclip

    +

    Elementary clip consisting of only one media stream

    Declaration :

    • C++ : class SimpleClip : public Clip

    Artifact : simpleclip

    All public operations : apply , apply , dispatchOp

    diff --git a/doc/devel/uml/class139013.html b/doc/devel/uml/class139013.html index 9c8b83182..77b78ca2c 100644 --- a/doc/devel/uml/class139013.html +++ b/doc/devel/uml/class139013.html @@ -16,6 +16,6 @@ -

    Declaration :

    • C++ : class BuildInstruct

    Directly inherited by : DoAttach DoRecurse

    -

    (Interface) building instructions to be executed by the Builder on the render node network under construction.

    Artifact : buildinstruct

    +

    (Interface) building instructions to be executed by the Builder on the render node network under construction.

    Declaration :

    • C++ : class BuildInstruct

    Directly inherited by : DoAttach DoRecurse

    +

    Artifact : buildinstruct

    diff --git a/doc/devel/uml/class139141.html b/doc/devel/uml/class139141.html index e1b79bcb6..167bf32f8 100644 --- a/doc/devel/uml/class139141.html +++ b/doc/devel/uml/class139141.html @@ -18,8 +18,9 @@

    Declaration :

    Artifact : buildinstruct

    -
    Relation nodes (<directional aggregation>)

    Declaration :

    • Uml : + nodes : Proc, multiplicity : 1..*
    • C++ : public: const Proc* nodes
    +
    Relation nodes (<directional aggregation>)

    Declaration :

    • Uml : + nodes : Proc, multiplicity : 1..*
    • C++ : public: const Proc* nodes

    Stereotype: vector

    +
    Attribut point
    -

    Declaration :

    • Uml : + point : string
    • C++ : public: const string point

    identifying the point where the nodes should be attached

    +

    identifying the point where the nodes should be attached

    Declaration :

    • Uml : + point : string
    • C++ : public: const string point
    diff --git a/doc/devel/uml/class139397.html b/doc/devel/uml/class139397.html index 1bfe82fbf..64f6abd05 100644 --- a/doc/devel/uml/class139397.html +++ b/doc/devel/uml/class139397.html @@ -16,7 +16,7 @@ -

    Declaration :

    • C++ : class MediaFactory

    Depends on BackendLayer

    Depends on BackendLayer

    specialized Asset Factory for configuring (new) media asset instances based on existing media files on disk; can create placeholder assets as well

    Artifact : media

    +

    specialized Asset Factory for configuring (new) media asset instances based on existing media files on disk; can create placeholder assets as well

    Declaration :

    • C++ : class MediaFactory

    Depends on BackendLayer

    Depends on BackendLayer

    Artifact : media

    diff --git a/doc/devel/uml/class139525.html b/doc/devel/uml/class139525.html index 603d8d16b..7769856e0 100644 --- a/doc/devel/uml/class139525.html +++ b/doc/devel/uml/class139525.html @@ -16,5 +16,6 @@ -

    Declaration :

    • C++ : class MediaAccessFacade

    provides functions for querying (opening) a media file, detecting the channels or streams found within this file, etc. Delegating to the actual backend functions

    Artifact : mediaaccessfacade, Component(s) : Media Access

    +

    provides functions for querying (opening) a media file, detecting the channels or streams found within this file, etc. Delegating to the actual backend functions

    Declaration :

    • C++ : class MediaAccessFacade

    Artifact : mediaaccessfacade, Component(s) : Media Access

    Stereotype: boundary

    + diff --git a/doc/devel/uml/class139653.html b/doc/devel/uml/class139653.html index 076a6ee5b..c5d179e40 100644 --- a/doc/devel/uml/class139653.html +++ b/doc/devel/uml/class139653.html @@ -16,12 +16,12 @@ -

    Declaration :

    • C++ : class Session

    Directly inherited by : SessionImpl

    -

    Primary Interface for all editing tasks.
    The session contains defaults, all the assets being edited, and a set of EDL with the individual MObjects to be manipulated and rendered.

    Artifact : session

    +

    Primary Interface for all editing tasks.
    The session contains defaults, all the assets being edited, and a set of EDL with the individual MObjects to be manipulated and rendered.

    Declaration :

    • C++ : class Session

    Directly inherited by : SessionImpl

    +

    Artifact : session

    -
    Operation currEDL

    Declaration :

    • Uml : + currEDL() : Seq
    • C++ : public: Seq currEDL ()

    The EDL currently in focus. In most cases, Session and EDL are almost the same, just EDL emphasizes the collection aspect. But generally (for larger editing projects) one Session can contain several EDLs, which may even be nested. At any given time, only one of these EDLs has focus and recieves the editing commands.

    -
    Operation getFixture

    Declaration :

    • Uml : + getFixture() : Fixture&
    • C++ : public: Fixture& getFixture ()

    While the session can be comprised of several EDLs,
    there is only one Fixture, which represents the actual
    configuration of all Objects to be rendered

    -
    Relation current (<unidirectional association>)

    Declaration :

    Standard access path to get at the current session via the Session Manager, which acts as a "PImpl" smart pointer

    +
    Operation currEDL

    The EDL currently in focus. In most cases, Session and EDL are almost the same, just EDL emphasizes the collection aspect. But generally (for larger editing projects) one Session can contain several EDLs, which may even be nested. At any given time, only one of these EDLs has focus and recieves the editing commands.

    Declaration :

    • Uml : + currEDL() : Seq
    • C++ : public: Seq currEDL ()
    +
    Operation getFixture

    While the session can be comprised of several EDLs,
    there is only one Fixture, which represents the actual
    configuration of all Objects to be rendered

    Declaration :

    • Uml : + getFixture() : Fixture&
    • C++ : public: Fixture& getFixture ()
    +
    Relation current (<unidirectional association>)

    Standard access path to get at the current session via the Session Manager, which acts as a "PImpl" smart pointer

    Declaration :

    Relation defaults (<unidirectional association>)

    Declaration :

    All public operations : currEDL , getFixture

    diff --git a/doc/devel/uml/class139781.html b/doc/devel/uml/class139781.html index 60bd83878..f731b1ac4 100644 --- a/doc/devel/uml/class139781.html +++ b/doc/devel/uml/class139781.html @@ -18,10 +18,10 @@

    Declaration :

    • C++ : class SessManager

    Artifact : sessmanager

    -
    Operation clear

    Declaration :

    • Uml : + clear() : void
    • C++ : public: void clear ()

    clear current session contents
    without resetting overall session config.
    Afterwards, the session will contain only one
    empty EDL, while all Assets are retained.

    -
    Operation reset

    Declaration :

    • Uml : + reset() : void
    • C++ : public: void reset ()

    reset all session config and
    start with a pristine default session.

    -
    Operation load

    Declaration :

    • Uml : + load() : void
    • C++ : public: void load ()

    replace the current session by a new
    session loaded from serialized state.

    -
    Operation save

    Declaration :

    • Uml : + save() : void
    • C++ : public: void save ()

    create a complete, serialized representation
    of the current session config and contents.
    @todo how to serialize, prameters, return value?

    +
    Operation clear

    clear current session contents
    without resetting overall session config.
    Afterwards, the session will contain only one
    empty EDL, while all Assets are retained.

    Declaration :

    • Uml : + clear() : void
    • C++ : public: void clear ()
    +
    Operation reset

    reset all session config and
    start with a pristine default session.

    Declaration :

    • Uml : + reset() : void
    • C++ : public: void reset ()
    +
    Operation load

    replace the current session by a new
    session loaded from serialized state.

    Declaration :

    • Uml : + load() : void
    • C++ : public: void load ()
    +
    Operation save

    create a complete, serialized representation
    of the current session config and contents.
    @todo how to serialize, prameters, return value?

    Declaration :

    • Uml : + save() : void
    • C++ : public: void save ()

    All public operations : clear , load , reset , save

    diff --git a/doc/devel/uml/class139909.html b/doc/devel/uml/class139909.html index 210261f35..0995624c2 100644 --- a/doc/devel/uml/class139909.html +++ b/doc/devel/uml/class139909.html @@ -16,9 +16,9 @@ -

    Declaration :

    • C++ : class LocatingPin

    Directly inherited by : Allocation FixedLocation RelativeLocation

    -

    An element with value semantics, which actually implements the placement of some MObject by positioning it in some way.

    Artifact : locatingpin

    +

    An element with value semantics, which actually implements the placement of some MObject by positioning it in some way.

    Declaration :

    • C++ : class LocatingPin

    Directly inherited by : Allocation FixedLocation RelativeLocation

    +

    Artifact : locatingpin

    -
    Relation next (<unidirectional association>)

    Declaration :

    next additional LocatingPin, if any

    +
    Relation next (<unidirectional association>)

    next additional LocatingPin, if any

    Declaration :

    diff --git a/doc/devel/uml/class140421.html b/doc/devel/uml/class140421.html index 0d3267c6e..b189140f1 100644 --- a/doc/devel/uml/class140421.html +++ b/doc/devel/uml/class140421.html @@ -18,7 +18,7 @@

    Declaration :

    • C++ : class Plug : public Wish

    Artifact : plug

    -
    Relation outPort (<unidirectional association>)

    Declaration :

    • Uml : # outPort : Pipe
    • C++ : protected: Pipe* outPort

    the Port this MObject wants to be conected to

    +
    Relation outPort (<unidirectional association>)

    the Port this MObject wants to be conected to

    Declaration :

    • Uml : # outPort : Pipe
    • C++ : protected: Pipe* outPort

    All public operations : get_repr

    diff --git a/doc/devel/uml/class140549.html b/doc/devel/uml/class140549.html index 9366aa42a..a57aaab4c 100644 --- a/doc/devel/uml/class140549.html +++ b/doc/devel/uml/class140549.html @@ -16,8 +16,9 @@ -

    Declaration :

    • C++ : class ConfigRules : public QueryHandler<>
    • Java : public interface ConfigRules

    Directly inherited by : ResolverBase

    -

    public acces point for running Config Queries

    +

    public acces point for running Config Queries

    Declaration :

    • C++ : class ConfigRules : public QueryHandler<>
    • Java : public interface ConfigRules

    Directly inherited by : ResolverBase

    +

    Stereotype: interface

    +
    Relation <association>

    Declaration :

    Relation <association>

    Declaration :

    diff --git a/doc/devel/uml/class140677.html b/doc/devel/uml/class140677.html index 6b32a5b25..99e322277 100644 --- a/doc/devel/uml/class140677.html +++ b/doc/devel/uml/class140677.html @@ -17,6 +17,7 @@

    Declaration :

    • C++ : template<class TY> class QueryHandler
    • Java : public interface QueryHandler<TY>

    Directly inherited by : ConfigRules

    +

    Stereotype: interface

    Relation <association>

    Declaration :

    diff --git a/doc/devel/uml/class140805.html b/doc/devel/uml/class140805.html index a9f18e933..68f8f3d3e 100644 --- a/doc/devel/uml/class140805.html +++ b/doc/devel/uml/class140805.html @@ -17,6 +17,7 @@

    Declaration :

    • C++ : template<class TY> class TypeHandler
    • Java : public interface TypeHandler<TY>

    Directly inherited by : TypeHandler<Pipe>

    +

    Stereotype: interface

    Operation find

    Declaration :

    • Uml : abstract, + find(in capabilities : Pred) : TY
    • C++ : public: virtual TY find () = 0
    diff --git a/doc/devel/uml/class141701.html b/doc/devel/uml/class141701.html index 232cf2aed..96bd39a8d 100644 --- a/doc/devel/uml/class141701.html +++ b/doc/devel/uml/class141701.html @@ -16,5 +16,6 @@ -

    Declaration :

    • C++ : class User
    +

    Declaration :

    • C++ : class User

    Stereotype: actor

    + diff --git a/doc/devel/uml/class141829.html b/doc/devel/uml/class141829.html index d6c42943f..9a503a186 100644 --- a/doc/devel/uml/class141829.html +++ b/doc/devel/uml/class141829.html @@ -16,5 +16,6 @@ -

    Declaration :

    • C++ : class Serializer
    +

    Declaration :

    • C++ : class Serializer

    Stereotype: actor

    + diff --git a/doc/devel/uml/class142469.html b/doc/devel/uml/class142469.html index 58c82f008..d03cae5ca 100644 --- a/doc/devel/uml/class142469.html +++ b/doc/devel/uml/class142469.html @@ -16,7 +16,8 @@ -

    Declaration :

    • C++ : class StateProxy : public State
    +

    Declaration :

    • C++ : class StateProxy : public State

    Stereotype: implementation

    +

    All public operations : allocateBuffer , fetch , isCalculated , releaseBuffer

    diff --git a/doc/devel/uml/class143365.html b/doc/devel/uml/class143365.html index c4e3718c3..974308cbc 100644 --- a/doc/devel/uml/class143365.html +++ b/doc/devel/uml/class143365.html @@ -21,7 +21,8 @@
    Relation <association>

    Declaration :

    Relation <association>

    Declaration :

    Relation <association>

    Declaration :

    -
    Relation <unidirectional association>

    Declaration :

    +
    Relation <unidirectional association>

    Declaration :

    Stereotype: creates

    +
    Operation callDown

    Declaration :

    • Uml : + callDown() :
    • C++ : public: callDown ()

    All public operations : callDown , callDown

    diff --git a/doc/devel/uml/class144005.html b/doc/devel/uml/class144005.html index bc2bf60f2..e5388ff5e 100644 --- a/doc/devel/uml/class144005.html +++ b/doc/devel/uml/class144005.html @@ -18,7 +18,8 @@

    Declaration :

    • C++ : template<int SIZ> class BuffTable
    -
    Relation <directional aggregation by value>

    Declaration :

    +
    Relation <directional composition>

    Declaration :

    Stereotype: array

    +
    Relation <unidirectional association>

    Declaration :

    diff --git a/doc/devel/uml/class145285.html b/doc/devel/uml/class145285.html index 914d312aa..196eeda82 100644 --- a/doc/devel/uml/class145285.html +++ b/doc/devel/uml/class145285.html @@ -16,5 +16,6 @@ -

    Declaration :

    • C++ : enum MediaKind
    • Java : package enum MediaKind
    +

    Declaration :

    • C++ : enum MediaKind
    • Java : package enum MediaKind

    Stereotype: enum

    + diff --git a/doc/devel/uml/class145541.html b/doc/devel/uml/class145541.html index 06bd62289..842eae98c 100644 --- a/doc/devel/uml/class145541.html +++ b/doc/devel/uml/class145541.html @@ -19,9 +19,11 @@

    Declaration :

    • C++ : class Timeline

    Directly inherited by : TimelineView

    -
    Relation <aggregation by value>

    Declaration :

    -
    Relation <unidirectional association>

    Declaration :

    +
    Relation <composition>

    Declaration :

    +
    Relation <unidirectional association>

    Declaration :

    Stereotype: own

    +
    Relation <unidirectional association>

    Declaration :

    -
    Relation globalBusses (<directional aggregation by value>)

    Declaration :

    • Uml : # globalBusses : Pipe, multiplicity : *
    • C++ : protected: Pipe globalBusses
    +
    Relation globalBusses (<directional composition>)

    Declaration :

    • Uml : # globalBusses : Pipe, multiplicity : *
    • C++ : protected: Pipe globalBusses

    Stereotype: list

    +
    diff --git a/doc/devel/uml/class145669.html b/doc/devel/uml/class145669.html index d2fb577a5..49d3c0315 100644 --- a/doc/devel/uml/class145669.html +++ b/doc/devel/uml/class145669.html @@ -18,7 +18,7 @@

    Declaration :

    • C++ : class Project
    -
    Relation <aggregation by value>

    Declaration :

    -
    Relation <aggregation by value>

    Declaration :

    +
    Relation <composition>

    Declaration :

    +
    Relation <composition>

    Declaration :

    diff --git a/doc/devel/uml/class145925.html b/doc/devel/uml/class145925.html index ae3ae19c7..f4d4d79e1 100644 --- a/doc/devel/uml/class145925.html +++ b/doc/devel/uml/class145925.html @@ -18,6 +18,7 @@

    Declaration :

    • C++ : class PlayControl
    -
    Relation <unidirectional association>

    Declaration :

    +
    Relation <unidirectional association>

    Declaration :

    Stereotype: direct

    +
    diff --git a/doc/devel/uml/class146053.html b/doc/devel/uml/class146053.html index d2e874de1..71cf26b2c 100644 --- a/doc/devel/uml/class146053.html +++ b/doc/devel/uml/class146053.html @@ -18,7 +18,8 @@

    Declaration :

    • C++ : class Monitor
    -
    Relation <unidirectional association>

    Declaration :

    +
    Relation <unidirectional association>

    Declaration :

    Stereotype: attach

    +
    Relation <association>

    Declaration :

    diff --git a/doc/devel/uml/class146309.html b/doc/devel/uml/class146309.html index 485390623..49148d00d 100644 --- a/doc/devel/uml/class146309.html +++ b/doc/devel/uml/class146309.html @@ -18,8 +18,9 @@

    Declaration :

    • C++ : class Sequence
    -
    Relation <aggregation by value>

    Declaration :

    -
    Relation subSequences (<unidirectional association>)

    Declaration :

    • Uml : # subSequences : Sequence, multiplicity : *
    • C++ : protected: Sequence* subSequences
    +
    Relation <composition>

    Declaration :

    +
    Relation subSequences (<unidirectional association>)

    Declaration :

    • Uml : # subSequences : Sequence, multiplicity : *
    • C++ : protected: Sequence* subSequences

    Stereotype: contains

    +
    Relation <unidirectional association>

    Declaration :

    Relation trackTree (<unidirectional association>)

    Declaration :

    • Uml : # trackTree : Track, multiplicity : 1
    • C++ : protected: Track* trackTree
    diff --git a/doc/devel/uml/class146565.html b/doc/devel/uml/class146565.html index caadd3954..a4f6d0ccf 100644 --- a/doc/devel/uml/class146565.html +++ b/doc/devel/uml/class146565.html @@ -17,5 +17,6 @@

    Declaration :

    • C++ : class Facade
    • Java : package interface Facade

    Directly inherited by : Proxy ServiceImpl

    +

    Stereotype: interface

    diff --git a/doc/devel/uml/class146693.html b/doc/devel/uml/class146693.html index 1dfd3512e..f36b4439d 100644 --- a/doc/devel/uml/class146693.html +++ b/doc/devel/uml/class146693.html @@ -17,7 +17,8 @@

    Declaration :

    • C++ : class Proxy : public Facade
    - -
    Relation <unidirectional association>

    Declaration :

    + +
    Relation <unidirectional association>

    Declaration :

    Stereotype: uses

    +
    diff --git a/doc/devel/uml/class146821.html b/doc/devel/uml/class146821.html index af636ece9..0647b5350 100644 --- a/doc/devel/uml/class146821.html +++ b/doc/devel/uml/class146821.html @@ -17,7 +17,8 @@

    Declaration :

    • C++ : class ServiceImpl : public Facade
    - -
    Relation <unidirectional association>

    Declaration :

    + +
    Relation <unidirectional association>

    Declaration :

    Stereotype: has_a

    +
    diff --git a/doc/devel/uml/class147077.html b/doc/devel/uml/class147077.html index a17c10f3a..e8b9d723b 100644 --- a/doc/devel/uml/class147077.html +++ b/doc/devel/uml/class147077.html @@ -17,7 +17,8 @@

    Declaration :

    - -
    Relation <unidirectional association>

    Declaration :

    + +
    Relation <unidirectional association>

    Declaration :

    Stereotype: calls

    +
    diff --git a/doc/devel/uml/class147333.html b/doc/devel/uml/class147333.html new file mode 100644 index 000000000..daace754a --- /dev/null +++ b/doc/devel/uml/class147333.html @@ -0,0 +1,24 @@ + + + + + + +Class Segmentation + + + + + +
    Class Segmentation
    +

    + + + + +

    Declaration :

    • C++ : class Segmentation
    + +
    Relation <association>

    Declaration :

    Stereotype: partitioning

    +
    + + diff --git a/doc/devel/uml/classdiagrams.html b/doc/devel/uml/classdiagrams.html index 8159cb541..8e9652413 100644 --- a/doc/devel/uml/classdiagrams.html +++ b/doc/devel/uml/classdiagrams.html @@ -18,7 +18,8 @@ - + + diff --git a/doc/devel/uml/classes.html b/doc/devel/uml/classes.html index 637ca483e..b30de8c8b 100644 --- a/doc/devel/uml/classes.html +++ b/doc/devel/uml/classes.html @@ -115,7 +115,6 @@ - @@ -130,11 +129,13 @@ + + diff --git a/doc/devel/uml/classes_list.html b/doc/devel/uml/classes_list.html index 33f50cb20..94c71e519 100644 --- a/doc/devel/uml/classes_list.html +++ b/doc/devel/uml/classes_list.html @@ -116,7 +116,6 @@ Proc
    ProcDispatcher
    ProcessData
    -Processor
    ProcNode
    ProcPatt
    Project
    @@ -131,11 +130,13 @@ RelativeLocation
    RelType
    RenderEngine
    +RenderGraph
    RenderState
    RenderTask
    ResolverBase
    Scheduler
    Segment
    +Segmentation
    SegmentationTool
    Seq
    Sequence
    diff --git a/doc/devel/uml/fig128181.png b/doc/devel/uml/fig128181.png index cedf4dae20748670cd76b0eff25ac6cb2d758f14..26c27d1905f356526a641e905724e3428aee0b0c 100644 GIT binary patch literal 35072 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 MRZ+;6H+lR&0J_8nU;qFB literal 39718 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 diff --git a/doc/devel/uml/fig129797.png b/doc/devel/uml/fig129797.png index 229233231f800c5fc87227e88b5d09f278a16d4a..557bef1596f85654719c445c2cd841ec6fbf9ea8 100644 GIT binary patch literal 16746 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 literal 10701 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 U?m7(a%0iI3hUW{C$S-ke+&}Q>blNuCaY+2m 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 diff --git a/doc/devel/uml/fig130821.png b/doc/devel/uml/fig130821.png index 0c951bf0659530fa5ca8fc2240c3f94c3a1e2409..b0f53e1ba20869760793ef8cd9baaccb6fa41da8 100644 GIT binary patch literal 13295 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 f^*mc_4;JlQSi!uigEBoKq4N literal 14498 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

    +mdV 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

    N zou88!^R%>EMfcww(HLQ0QpE3QHH|n47dN+7hBiO^>VSD~N*?0E_IFYrmMrnRP_pPd zms;D%+wI6ciHNMqhvn#|(K4fF#J68I)C$%0UV|d=uwAuWlBBe+Epd z!V%Mon*s2?-9q0Tp}ky7J3I8>3szMQUPCU?!lGj_;V@M+y3P0zazHzloZ?{3+%JE{c~qW6_if+rf_J& zd#GXBC`IpOK^f1yiJGB1YyLa#0Nl8Q&x3-E=3(I45+4sKPAXL-T zyaN8Bn~fO4!p{%O4HYh8V7ZpM%)~WId)^#R_;Hq+zALUWfo1v7Eh_!f z2>Xkb{%?2e{~8Z-3;(wuxJuOj+YJA+&G23^PwTzK{X8u^1WD3y;xxSzMT#I!|3B!F z-2;;UPvncyY7@f8+)KJ3Dmqz{K|0Ej$N9 RU%*J@mYlL|mbBrM{|B5IAMpSH diff --git a/doc/devel/uml/fig130949.png b/doc/devel/uml/fig130949.png index c8628370092ad43d4116aa555d4133d16d3201b3..f2d1f2f0897e5f9bb84803a939f079d30fbf3e7e 100644 GIT binary patch literal 6705 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 literal 7478 zcmeHMXH=8fx{k~s3L@hbag-9#Q49#^P$CeD$V?;%m;fR~h=?>P0V$zJbPyc{ETKsk zBGQ!(0m6XDP=oZE2ndl9LI}NtyQAli7sa=dM=Fh|JG>#Z}tM;$g876-r8nN@rPVePyh@wkU;# zqW31lX3i6`p3DP^Cb1a*%irIc3fQ^UcuL|^9p16;rCKVj5!#^Qn$NU#b!;bSuh#6h zN@4DW3|L5`v>_1Z;Y@Le{{Pmc850Q6cy7Soh_zP;pkbYEi-=S$!u;G|v6j!5g@p#OEK=ygedxX;Ki{gmyK8fv z!d|8BY`c3{)dVi5N62V;eyTfg;@2})ML&_3rcH^OWL3wu_~*8g&P7sh_Dp&b3JMF^ z!{zvk7aP`@sl+}jr^x_%KDPX@t-madJJ}j%8h_R<5qrucY3)l!^i)8t&ve(b6G#cA zoWI(%BxwHdPJAR{XN#-lJEQ8?O5H!hQ zFw^iw*-#gl#CNvukW#vRQ&gh5J8II)x5aK>$=*gwvTGgWmaoaVE7+=_`PEnrz+r8l#lNYmMz`WccU@AI3#JFU*zR_Z#fAD}^Vjo~}<#k6KC_0WY+-GtzRKkl0{ zwlrTzC)Ik6CGLcLK9TA^{^s@N%Be0RyvO*X^!P04UHSR7yh;SEzaYf5@pntYN;PAX z9$s2HTDCfBTeA|c=877d)n0kyGVVYR=9JKcTll_zc)&?}?Ne7hA!zA~jzi1GaH3q&*@CrOv;BAkGii2Z zggY?mr?pryp=4D&wfxSW`VJ99@BzecDRIXzSqs`n-O1#CN>4vWCOJ&Z z&Y0+e?nQ3F(K1NtD*ZL73#qHQelT?nZP07dd^MNX{6cPtMd>dLUH&{(3|CcES5-|S z^5DeHVJBvrMi!n?W1_R(BBHd`VIMt8`f6%o);&BmWXc#mTGQLCv)+t`)BRVMrc*WN z-X1V}eO=rBgQzz%)b~@JshHGSn54(rs)qLz&To(iV1(MCvw1JkqiVCLmFHbPnxj;` z@R`(Qq+Elzp;yS65UbeXofJd7^`UNW@K%XCV^fLLkq!7UhfAoiKK0u@Pd7H4;uNtV zYhx$y)NLk=ECjv2u`)b+>T<;!&wBuRW|9eXW0*}4i|Oi08TFqSb?vLJojkeKPYjuG z(hVvBv7+z52o18a+pG(NR;AV;Da`MhWaPM(7S*}yuucRRc0iN z7s2@}Z0(mW3%$5iOsn-9f1hAe!52CA``r!~K}egOI8GORtGldMosu^eM*J3R9rDgNW@q^`6J zA%I`rk-AoNqR4BvBA`0Q$v$J@aHVSt3j^=EsoN~UaI@OwzAD|VG1KsjwrsP)%2hhU zBstI+HJ$n51Ku|wb-isTV11IxTgr+~37k35?uor}0Ki^8s{uOSosV4xbL8Y`9xl6_ z9N1P&D>y%!ry;HBvo^wvs$Hmm!3ZHtberyQVzClnF_{E5ah;pm?-8&!&UPb#M&xa{ zbQfr?j!aPe@@;E2l!@!Dl8svOI)jx=-YjlsW2!oUTD{!&%fVAmDmP||%}`mXp`ZEB zzPw7DqEX$zUc(t%-4r&jT}XF;+oB+c^ZX;Lys9ml7(4)?#h=?wh|;|6(>j7E(M~Y! zzu)rI!6A^)QIvO6=awRkTh6eBJGL=(d7NmvPq!d81m5}q7rH(fURWc9Z**?aZbifN z%xbtD8$&}G6as@Kf?MmyM2G(jVA8m^)U}sOW6;alwls!5cS>a7iA51}BCz9ptNMkdXL}gpf>FQ*B>~J+8q1FF3u(rNS6rEQC%mPv|@+~ zbIiynF~xix*1!r%PJV$o_I~5^CD_|pA93Kw1De8yzqcr3N@BRQ2EK_X#*(kG9 z93$*@e;Mtp=}N9se|TConWR5?7AkUbOtkLqj-BmczpzrwC$^8cUt|Ubvga?0WhKig zTzE>-r%W{wx5861A{^qNU&bg6n$g%fm805E0uo96J zr|%V!sPsiEXt>1W{@oDSC{+5*gr4v|S@M+xA93qQlD^=gEWPt(9)CpsoX;?Cq^x4C zj)(Wjk*~<+MeAo@QxLrS)PyWkryigFDk)%TuNzs)?B!PJtLrgi69{hAl{euz@<0Y z+3O1ty20$4RrT#B9Gfgs;L?`^)l!h>P7ASD+}&A{`08hv7Vg#=$Q-X z+O}E!!8_*Gfuf?K_}XBy| zl!_9rHuy_t`s2gO9o%4`m7{ewoKu)aaZ1t}cRo*bpRq1+UY_Yq*7R-R1_P_QUmFj< zwQB(4G|M#Awj$is)wNv8ltX7%%@zQGd6LFO$^_h+8+fNR&<`>LxZ6NySNSy!XE|z8 zoe8WdqKfr-mp|AA;e*w{jg0Mi0={xGwh>HkTfGM4Ft+GcGohB7jGzJK%wy{ARK9+F z3cwjXFt@Bs9f*&?g|UYILflS|nW^t|7a3dbG254~aNV&fN*eAyWPZN=fv9Aa&orju z9L0CG>~?RC_UecVxx|k(l%gF3vW5VNAeb1-+GdqA3UYI?m3Jl^593Ct#GUExEIb|u z#0CTCtG=pooJ+|IoXL%>_)m&8QPNr_DTsCOO$2Xkg4v$fUyf%02a4DBc6N5AH!z65 zf;4F)I2MGC*V@7uW9dmo8H0>rE#kJ$`>zBzaZP#pnwwjun zkd$ZLI9UIgYo7Ic<>qeSSeY4+;j1|fW74N-Xf=u=(-KSv58YaunVGS~g{aZEzdV*8 zla5MC>aI7N0>QW(kg~HFM;*DN58heiUIp9b3TET)!#>ePWm*d|~x~LPq#vjS0 zcz0+>s=N7v*cZ;t3i$XvoG1p1<;v5bwYV_kmLg)3>j1#Xloi}ZYjrf_I0dNKo?1_GN7&e8NJg^=BZ zk=VK;&{$nSVhxqJbQco0XJs!w_~M-V?6&jcOcJYVdu5oqL{{EjYtmI()*BMRW5nFe zHFUmTsY@#AeMLH{aAAID-k*_90T&>uV7eKzu}yX+@&fB3%}|RA}$|Y ziUE`&9Mkld_q!iwT=^qY+&T%~AKn5mYura%KJhC7>H|IzX8lIe2Ye#TiU4gV+FAE+ zWrdfK%p(^zeph^o&jqL)dTeJ%X9ye#ub+hA7!TtCfzC`J8eIaLomb zu$CO35$a;W7xZOcP5Fi?`pPdu(i9J%)8fAYu|Kg787BP{;}7Mx#aD&d7Y)Lsy}x1W zu%nl_^Kn?X`@&d;Ubi94?S7PivD{bsThPsm7NF>%#@PJ!SJ3*152$@*I8=~Ri1?o8 zm?5><480^$SLpQV&NG>$6(eMrqb#{ZO9B}-b&_17tSPLj1tX81D-=;xhLJ-)qSFQq zVXS)rHffWWU@@l1Fo~07^9p@r`>cRsmRYtCMA66~EOzQE!;;k9gdV5yIYiJpf`kbJ zM&vhJ!wy|C2>VNhM{2S25C(1%f9q=o7@wZ(P^Kne|(^hPgGN5 zh?E?KIb^YV4hH|O)&JyKw^5qZC79wQ6tCg4<5!k@?22qAN#dD2)}Qlv+mf9ria@arw)n>UIF2QPLB2))+Be)AmUhjCx> zoUmCDB+(E?xtYi=NGsIa{8qRjIlf>9#6~g(y&VSq*~j*jxO^MKduZ@GvxrPR!Kav) zR^6^S8F~)j4rg{7+%+!T{L$JVg*m+Qh0SS362CiSfO3I_Uz4B?m>Yx%pCFf<8T(#7 zr4-}$Qd7W)=?(<9ZGM!}-_ye{k$@*`z@dh6$vpsR8}@7E0j5mEF97%k z;&qAB1chn``dC<4#3|YA*Zh(uB;%j9FbYsl+W%9S{f8$vd0%Aeg)^6g(fX3Wmc@&ye#Gi6|G~(SQ`Vy83G(Z!V7SEb3$|RwiWW zBQ12L7?|0Xos|OWbpzvy;oPeh7NWd}p`oGiutRK*#QVy%MU5H4^f^7CHe(!n-k_ra zg#t2rAO^J^xU=*TNdHE<>yq=OqEPYjer@M&=Zx^oSOBd(1_WRXCXqFzu$;)%4@$}ofH$B7-U zff7c%%(6_RfwnyvcfANW6o|vtMr>I?@9#oat108%Zrm1$=$r)NK0Qj;&4@-y0Rm~k z!=QY9eSsJP-A8hnA;Y+6-kjbl~1RN(e7;CB}FEg+>*;+ni!*Kz)ay8iD zF|s#DS3WJ$`DS!c^_I?Ah1M1?b4Ur?c<$L=TYmEJ_ZP=+#XXUx;Ub%IaX-j)%G`P5 z-;t93**Ez;IXC0W+GkPNhn7cn0V;D(q^?0uI{jZ(H2+5N|8rH+e~1Vq#FBf8*YN0nJ6kE{lV4@fKdw+IdFGMQyp09T_q(tt)@d?Dn`GnfyIT^AWx*IWYN9_m%a(Sr$3;z5( z`>P`aa_w^M5y*!(bF`4VXQDVE5T*aaoA8of1*DRDuPis6lg4~43oGq>WfAnMzg*Q> z0HIx}t0ESptXe!EM`{ccSyXn}ICB2U&DtYrpP%MsoiR&kyV${)cH2Df;hlLKdIjeU zUFB^Li(Q=PjT@aMEG#Tqv@-X1rWa`R?m1^vq`Xvb&YxEf%V3U{10B^=kIybWad_bu zpUp25#i>!)go|0zpQL}zAh8=T^xMSCbMw?J&rkL+@UPq2a<)d{1~oHkHcIe2OWNr$ zA>BJ($&=gWyZJHoych5jdZ*=hC;7g$k0YkBa+LQ+$3|q| zc9O1M>#3LqMNfvwCuswVd9X*!xbrEWQZB$Q4^MuPl@s>w?B^GRRq85S>`Tt~@Iv8z zSH9IM)<)jfdsDGAxc+sGA!r5WGyc=OKBCeS(KGla_X7KEdahepZeL9pbd<4m?!>+C zB#S$i_JjpY#9Ynu#cWpb*7+!ys0^u#*VNMJ+XA%AG|-Z?w5-yFPxTBNSCZg zGd)4#pUK}fDE8y&g~4EcuB9j$ZB<)j)o*Z)IjzdGHs*iYO+ID zwS!SfX**G-;i31V;wRYhY^zsM>)x~uZLGnaEsm@-=0{;$D>VY}k+Ej0xL~2wv#>=( zqc9iF*XN*SM_@pYV_ZZoO*z*wuukpZdD+twg%Xv|CPzJkRxnP_<)~u^pdod&cqutE zzjT_miU_!?q@LUJ?zFj1ue`US_FZL#bLs~16)u~-pX@BF7DhkkM4_AxD0R#uGT;2B zG+WbArv9^yS-50Ox(6LXH}1grEA9johd?&&N9C&YYh>#e>Q$zABR_LU`)};USDBx} zWM$tIzT=tR^tL>-9CuR=r-}3B+}iQn?!iipWRwSczDJ}AChA3{N2SEBj5X`mQACa_9#EM znp?@zL}fkY`<+9g`nYh;-D=hKm;2=kc5~ z-j{an)@W?ED6l4ai3@7Zj8BM_sF;am+ty0fz7lz*oO|y`;4iL;eWeKZ1+s z1snH$iR8kh%G*%Bky~%>>j%lgac7v$H!n!lk*qI-Uoe!|MTg~bL^ETQ9ce(5vW>pG z+glyzE~u~#VXUHQGsPxVP1IgBBsr6w!u*4E&b&^=&+nl2Dt`CWs?O$4-hA~9!~uMf zM>)67(Tz2N_pEj2XwBk7Ka+zg586aMid~Z_Lv*w#r)ReH+Jn~K$(4asIWaxQAwMgHCQ@Ba23}`V8MTC&M>{CrHanHk<@4t8i|)~H-~DM-hthmTpE+}WGOaEBW?1=g zHtOTKYpsa3m`47<+XO!4-m>7SS^_$z2&U2Y`_j<2N{6>D-Ym1ORnMM1KN|5_y(EN# zCTmscJ8|Q;-+p_$oNXW%Afk8g@s9;LQ6dv(bBpR4FRwn+>T;QVa5(+4rwDU*!vCKXLBH3_sSZ5jFRYz{Co?c%vbEGX z(dv)z%Yhmqda`euZTCK{nTpaI`xIYO#8u>87J9H%fYJFyhV~LqDqcu^Yk5iGRp{$j zS}_~UbMiRWWgq{Gsfu4!R-WV|B3Vza%bl4`egXnhtM zoP%B78p4}$&D?%|n0#ZUyZx*sLhF18>lk4qw!IYn?cCMK73sW#)#n1^!gWqDjZYtZ zy;=55s#C|?m%@aUawUv(^!64JNRQOeC7V*dZ9%8Z)kt4-ns|u&Ymu7=j|UKzJ>z0A z+NOou1T`|$8$;$c^8Pu_Je>FS?Jz4wKIqX`$;2qA#rMhdnJcxSI+URC%K{G?5B7*! zg^G+WobD?Nk_g>rx--d%9^xk0(SdsWMVzE(B+2o>`Ed7-j+b0WMN9Z^G-!7=v@B$N z=Mh`8FWYS&^2HHg?H;`uRNv>vq z!cKl@ekhtEyQVW!>Eoc;bO{md`TqM*xxST;Y;#X@53~g;a{K#sux-JX1Q{+VEC0AD zfn;|_txFYsiu26YR6CD%UH%mEX}ux^CNEIcA5&oKbw0D zEfU=im*2tgm5Pi#aw16D>8M z*2|jC?r2SCG~h^$J_KjgyWKH7MT1U8RAeNMNEjL#HQ45yCOhIN5}UI~A{k`wdVZIW z$Uxs$w4y@Kx2xBAWF5A_LRo^bcrkOK-?^;J%*pg7%3ALxpo(i_b*`|DtOspYX~o#_H?Wli`L?aot-ye_7L4APBn&Y+`QN(S%hTwVk>n z0_N#Emty_Ks&>9(;b%(=?g{Tce_el~v}H6CexfyZMc3DBW`pgifNbP$!@Y9abb$vk z+DBYyWM2{k(;0(@Z65Q1Y@duw9!O1ET3T+aLB2%OZ8fo$>eX~Ve>kC_aIe$liiI$Fsa;}hxvF%{qnnP!` zq6Zga2(xxjPv?2@*RjXOV54!w2SGs#H`o2HC#$#9-@1Mhsm^oZg3V~eyLZ=jBEm|Q zr#?j%a(wC~6w;eo#9Mz# zk&xMU-CYpRAn%z+?hG3HQxBkijce?wC~5s=NwBX1^*jSgE?IURX_5knK~=*i91}{l zDzyBM@SnXOSJ7)idmtZG z0p!>F&NPrqCp#Gb{hLg~D-ck7km^p$LXdM0ooR9^?x=}6Dk>;EDdh_|E@H^^M;o^c znVNo)mzRHB&k$hoqW9lxTOi`@slT)tu=(4>hkFBeX5DplquIQVLWW!ICI1-bS9{61 z_wU}7xU)l=Y$fpjD%ty&xFVg3Smwy0;LuqJdQFX=%Y@O|x5fMp;~o#JFW*1`CApc%*Qhny#Z z>RN+ZFiE?%sx|rA)+abhI?+^@$BguNqO=L_cUKY4-;BM-xxoO*JmdlBsMoxMQs`9%5h(S_B!}Q#iK>F`JkR!PR1bkCdyCYsbhUn%c ze)3I~B7sW8M>VvkeDRl?R<(R_yp!>NGLhSX#Hly^gsDhRm&D zkx$^Ztqr9ldTcfBo8LkCKAjX}Qo=1azoxyZH&bm69994mad21eZ99{sz8ii992*o` zz<~dkZ10SnbZ&rJ$*3f>_^yIEM@bT|pz3(77rt9e)X>#lOIOLupw5a}12GuzohDja zln!lAj&oPe-P+xfOQnpB4l<~jTrWwFCiK+@YUim?g{Ga}2q63u{V8BGu z1g}o4tAAnr$oXQ9Ua@YK{|%xex7m~1TkI}dN`8|VoT#0b_#>iNF>HJnGZgfCir}2KEGF!Nj!J`r11p~n8^#z)XIh1B9Ew0GVQ80( znM<_-%#-(MAXNc#MY@k!jzDh6MAaMdw)0|^JY;ENP8Pp^s&LJt_6Bi?W83LyG)>Xn zFLlrPp!s6)GhBBdW(=8r$3#VCME#U~=1RVSr3wSz#CCJSoc1QxRG5XAXEFGt>2gwA zuQ#Q+I*!{!Y9$a(YVUzo9Y*@%G@|~D$8mYOn=%cqctY~;N&@dimGdww`|j=Y2wg48 z7U!7of#%-u55pL363sjcwY|UnU`G-L470E8W9b`+e!nyF|eq!tEzM$vGWB< zr_4_}1A)-JAoGy&0Egy-pd0*u+lGhkXcAt;T2QR`U6uPq&N z1|#nmKAL*~U+YF8ow?`3tfii5la;{U5Aix;RnxI8I*YPA>s4A1e-5I14CFett_Bg3 zqvb?Wqt`Ch(1Z2Shk6X(%4Ttxzr}uZ%nRwuP`+xM;eJT&1+rRFmdz9WGN1xY z)Vb%YH%rA5VFBw+l2FZ8(lz9%ZxL6^4@C0GKPM+wJr#XfhVtz40nA42_hWo7Qo`&- z))#s+2vqgZjQ!6Py+uy(YpMekTDRGCspQOUBhB8$w|; zv&FMigL3yCZ`7nfp6Gk6_a2UuV=vuivoyqe){@Kl?FIn8){aHU`?5T$G#CQXK`!|w zW#LHli4J2)xToQDD|Rb{uBBJjv|)gI(c~x6B|Kp)UsN`AdVYGIb0+cprft~|_eOWg<)=>m+f}6#dkJL3$2g(X zx~19OR5542p1q;gp;l0iw)xi#8Z8??=W_3`JQQrzs@|Kz z^Q>ZRUn6<$o_vwane!MZDZ_a>cD+9(^RMbN`&pGx?Wv3J2L?2l$L))}#gdkQ#UT=!K`u3p@ib6T+c66TBIzhZ*y07(K zC}*YZb1NtO1|J{HyB@yW2GFXQd+%t!++zqj?Y2)ahjQeqX1>ok6lyf1T(KDH&4qEZ zAGRy6+OrDnog3Mp6bq&{`V>(o0MkF_&!K8h6GPj0T@C~oHXW+^`{ojG)Qj;Q+K8hCn@yG`8bnp+g5$2I@B1ZkvugXIO12L zw@>Y2KPTbDL_VpntVWQ{%@Jb*`@wI%Uet;?)nQGW;enFYa$*t9QcHn*gXQ zlfjv}u>qI%PA3oYW1rlf|k z^)!=v=`;_@ovi4Dne~DML(B>!ubcIK_Fxb43Yy2`1%79d-81w;MM7>^!b7Ieo3?7l z0UFy4CyqF39$FFL#gm34sd?hvv!v4ir3bJnb{e)C(YVM$MV# z?kANYZO|EABQJob2%>+_iUW9KUTk4DIFy0z@bv1HD>Lt5Q6OL*kFw&%epZZBsr|k7 z0l90#7QZikU~rD-#5LeOmq17#gnC++o*k0yl7RkfU1y^*UMcOJ!$IYop2=>Z9NT$Z z&yFq%>n-Uy)a|J+w=vDdBR<%4eL6BbmLWQm>sL&vZ7|@4xK-+;hrB87v?&lp;(5d! zTf!o1quhC+e9)JkFNltXIb-X1lOBD`vDqs$;$HzI&lmrK*z*33~xC2(XqP zib?_LQ>NFq!1cy;*&KkA-q!#0#Nk^SS%HJv-P5tZ*q&aID zG$+Ci&jQTZn>5t+J=~Dp1>O#xtE2gvdOVl&$NLik9lOd z!%kH=gZS1w; zH_hU-Z{Y8#&&Q~m!?GJChjxZ~ajQFxxmG%e=p7+rI@e^PoJY$BOVFgPb>@HI%%Q8E z0PsY=iO#nwYUCt24!El^2{~2Y5JFIYw@|FNI50vnx_`8U~w19i8b!rQv z*%_tDfr(5-Ck%f}jpHf1EzfV!sIoeZ)H$Q=)i9aSXK0*QKiOR)`H$>*aSM>Z0j5k( z6rM{$uCL@oou^VQKN{^qOtBSnf;0^PQM+sy-;3@N{>davin6j1m-DA&V*r%ZP>VO{ z%nBjIDD3Xo)BEZhh&VkGMJoN3T|a>z1Nv2WGx`cV{$gBG#U*|rv7!yN3(;C~05A$9VQsFrxsp4iNH>4it5~b5b&p* z^Uo7tfWwaM4}Gs>ziAkQ%D}I{0n0qDq?`*j0l0UFQGfUe?r;2VD>1lM*q`?nVh8P3 zS&$R3m4spC{VSVVD;ZXfbALgoq6Y~es)25gG+i}Dd124^-h6P}ONa&hM0^g&&izbT zJ$pX$t7Lz&}0nVPMsN}hs8R1bIVWp-?}G7fN~ zgse{^hmHqu(CBn|elBikFydF{Jshn0oF6~O-SCy;*#90qsk1Aw_2g_#PM==_&gNB$ zio7#T0OMG>W2CnoS-sfZ%i^bi_sH@iW$fM$%g(aslFFxmt-%i#cJ8a3$vCq*(NMld zXiJ%t0c^6vI|=$%u>0~sxkG*R{u+h{%`J=BLOU?>{-c}auynURW!bVg)fa3VqJDAW z$djL2MeN!NSE{GeT`gdo@ z?84lrQ2?pmMzwxqC$BAw0zb8_kTY@XUiQGEYu#tUUn#0ka!vI4PuAD@2}R-I=b<6R z_69u__%ominF+WTV~w+)CNm*n;6MU!cjsE;Oeer1|IHbyzTq=8Drp|0Jx zey~MOqrsotm>#iX%ua%+XxD-T>$gd;T$VkoGy{vBUSH;w&A~j$NO^B~m5%@|*b*sj z*M+K**zf2VPrl*el`MPvc7F*M3(H!|t`QK9bkBn6H;D0;MU_YZ literal 12406 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 A+Hh7JxR%cX7JglJPyRqNN6X6MsKe0F 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 diff --git a/doc/devel/uml/fig132485.png b/doc/devel/uml/fig132485.png index 54612a806bd5f67b1fe87fb91aaca1951e5a9f58..7037db9ecf86c83b1bcad225e0a56199bb2590fb 100644 GIT binary patch literal 6196 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 WAVd6UBKU6rgWeyvv`aMaJ^e2av7~GO literal 6985 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 literal 0 HcmV?d00001 diff --git a/doc/devel/uml/index.html b/doc/devel/uml/index.html index 55bbadb38..5257dd3f7 100644 --- a/doc/devel/uml/index.html +++ b/doc/devel/uml/index.html @@ -17,6 +17,12 @@ Documentation +

    Properties:

      +
    • :

    • +
    • CopyrightClaim:

      Copyright (C) Lumiera.org
      2008, Christian Thaeter <ct@pipapo.org>

    • +
    • GPLHeader:
      This program is free software; you can redistribute it and/or
      modify it under the terms of the GNU General Public License as
      published by the Free Software Foundation; either version 2 of the
      License, or (at your option) any later version.

      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
      GNU General Public License for more details.

      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

    • +
    • html dir:
      /mnt/Lager/heim/devel/lumi/doc/devel/uml/

    • +

    1 Package design

    All things concering the big picture.
    Not a real code package, rather a container for design drafts, specifications, decisions.

    @@ -32,26 +38,32 @@ Documentation

    provided classes : Error, Time

    Asset Kinds
    Automation Entities
    Builder Entities
    Builder Entities
    Builder Tool (Visitor)
    Controller Entities
    File MappingShows whats used to access Frames
    HierarchyLumiera Exception hierarchy
    Prockey abstraction: data processing asset
    ProcDispatcher
    ProcessData
    Processor
    ProcNodeinterfaceKey abstraction of the Render Engine: A Data processing Node
    ProcPattspecial type of structural Asset representing information how to build some part of the render engine's processing nodes network.
    Project
    RelativeLocation
    RelTypeenumthe possible kinds of RelativePlacements
    RenderEngine
    RenderGraph
    RenderStateEncapsulates the logic used to get a "current render process" in accordance to the currentyl applicable controller settings. The provided StateProxy serves to hold any mutalbe state used in the render process, so the rest of the render engine can be stateless.
    RenderTask
    ResolverBase
    Scheduler
    Segment
    Segmentation
    SegmentationToolTool 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.
    Seq
    Sequence
    Component Builder
    +

    Stereotype: subsystem

    provided classes : State

    required classes : Fixture, SessionImpl

    Component Session
    +

    Stereotype: subsystem

    provided classes : Seq, Fixture, MObject, ParamProvider, SessionImpl

    Component EDL
    +

    Stereotype: entity

    nested in Session

    Component Fixture
    +

    Stereotype: entity

    nested in Session

    Component Controller
    -

    Depends on Builder

    provided classes : BuilderFacade

    +

    Depends on Builder

    Stereotype: subsystem

    +

    provided classes : BuilderFacade

    Component AssetManagement
    +

    Stereotype: subsystem

    Component Dispatcher

    provided classes : ProcDispatcher

    @@ -61,6 +73,7 @@ Documentation
    Component ProcNode
    +

    Stereotype: entity

    nested in Engine

    provided classes : Parameter

    required classes : ParamProvider

    @@ -76,9 +89,11 @@ Documentation

    provided classes : PathManager

    Component MediaFactory
    +

    Stereotype: component

    required classes : MediaAccessFacade

    Component AssetDB
    +

    Stereotype: service

    Component client code

    required classes : ProcDispatcher

    @@ -108,12 +123,14 @@ Documentation

    required classes : BuilderFacade, PathManager

    Component ConManager
    +

    Stereotype: component

    required classes : ParamProvider

    backend-components



    Component Media Access
    +

    Stereotype: service

    provided classes : MediaAccessFacade

    @@ -128,18 +145,21 @@ Documentation

    Source Overview



    Artifact Lumiera
    -

    Depends on common

    Depends on gui

    Depends on proc

    Depends on backend

    the main executable to be built

    -

    executable associated with : controllerfacade, processor, pluginadapter, effect, buildertool, segmentationtool, aframe, assembler, trafo, explicitplacement, auto, glrender, link, parameter, renderengine, allocation, vframe, toolfactory, arender, renderstate, label, glbuf, procnode, stateproxy, hub, buildable, abstractmo, nodecreatertool, projector, interpolator, edl, fixture, glpipe, vrender, exitnode, pathmanager, track, paramprovider, mask, main, conmanager, clip, meta, fixedlocation, relativelocation, mobject, source, frame, placement, sessionimpl, builderfacade

    +

    the main executable to be built

    +

    Depends on common

    Depends on gui

    Depends on proc

    Depends on backend

    Stereotype: executable

    +

    executable associated with : exitnode, pathmanager, track, meta, fixedlocation, relativelocation, controllerfacade, rendergraph, pluginadapter, explicitplacement, auto, glrender, arender, renderstate, label, nodecreatertool, projector, interpolator, paramprovider, mask, mobject, source, frame, effect, buildertool, segmentationtool, link, parameter, renderengine, glbuf, procnode, stateproxy, edl, fixture, glpipe, main, conmanager, clip, vrender, placement, sessionimpl, builderfacade, aframe, assembler, trafo, allocation, vframe, toolfactory, hub, buildable, abstractmo

    Artifact main
    +

    Stereotype: source

    Artifact source

    1.4.2 Package common

    -

      +

      sourcecode package

      Common library and helper classes

      • C++ namespace : lumiera
      -

      sourcecode package

      Common library and helper classes

      Diagram : Source Overview

      +

      Diagram : Source Overview

      +

      Stereotype: src

      1.4.2.1 Deployment View gen

      @@ -148,55 +168,63 @@ Documentation
      Artifact visitor

      Acyclic Visitor library

      +

      Stereotype: source

      Artifact source associated with : Visitable, Tool, Applicable

      Artifact error

      Lumiera Exception Interface

      +

      Stereotype: source

      Artifact source associated with : Error, Logic, Config, State, Invalid, External

      Artifact appconfig

      for global initialization and configuration

      +

      Stereotype: source

      Artifact source associated with : Appconfig

      Artifact time

      unified representation of a time point, including conversion functions

      +

      Stereotype: source

      Artifact source associated with : Time

      Artifact streamtype
      +

      Stereotype: source

      Artifact source associated with : StreamType, Prototype, ImplFacade

      1.4.2.2 Package error

      -

        +

        Namespace for Exception Kinds

        • C++ namespace : lumiera::error
        -

        Namespace for Exception Kinds

        +

        1.4.2.3 Package visitor

        -

          +

          sub-namespace for visitor library implementation

          • C++ namespace : lumiera::visitor
          -

          sub-namespace for visitor library implementation

    +

    1.4.3 Package backend

    -

      +

      sourcecode package

      Data backend classes here...

      • C++ namespace : backend_interface
      -

      sourcecode package

      Data backend classes here...

      +

      Stereotype: src

      +

      1.4.3.1 Deployment View gen

      Artifact mediaaccessfacade

      functions for querying media file and channels.

      +

      Stereotype: source

      Artifact source associated with : MediaAccessFacade

      1.4.4 Package proc

      -

        +

        sourcecode package

        All classes belonging to the (middle) processing layer

        • C++ namespace : proc_interface
        -

        sourcecode package

        All classes belonging to the (middle) processing layer

        +

        Stereotype: src

        +

        1.4.4.1 Deployment View gen

        defines source files to be generated by BOUML

        @@ -204,30 +232,36 @@ Documentation
        Artifact assetmanager

        Facade for the Asset subsystem

        +

        Stereotype: source

        Artifact source associated with : AssetManager

        Artifact asset

        Superinterface: bookeeping view of "things" present in the session

        +

        Stereotype: source

        Artifact source associated with : Asset

        Artifact stateproxy

        Key Interface representing a render process and encapsulating state

        +

        Stereotype: source

        Artifact source associated with : State

        Artifact controllerfacade

        Facade and service access point for the Proc Layer Controller

        +

        Stereotype: source

        Artifact source associated with : ControllerFacade

        Artifact frame

        Key Abstraction: render process and buffer holding frame data.

        +

        Stereotype: source

        Artifact source associated with : Frame

        1.4.4.2 Package asset

        -

          +

          sourcecode package

          Asset Management

          • C++ namespace : asset
          -

          sourcecode package

          Asset Management

          +

          Stereotype: src

          +

          1.4.4.2.1 Deployment View gen

          defines source files to be generated by BOUML

          @@ -235,79 +269,97 @@ Documentation
          Artifact dataset

          meta asset describing a collection of control data

          +

          Stereotype: source

          Artifact source associated with : Dataset

          Artifact category

          tree like classification of Assets

          +

          Stereotype: source

          Artifact source associated with : Category

          Artifact media

          key abstraction: media-like assets

          +

          Stereotype: source

          Artifact source associated with : Media, MediaFactory

          Artifact proc

          key abstraction: media-like assets

          +

          Stereotype: source

          Artifact source associated with : Proc

          Artifact struct

          key abstraction: structural asset

          +

          Stereotype: source

          Artifact source associated with : Struct

          Artifact meta

          key abstraction: metadata and organisational asset

          +

          Stereotype: source

          Artifact source associated with : Meta

          Artifact clip

          bookkeeping (asset) view of a media clip.

          +

          Stereotype: source

          Artifact source associated with : Clip

          Artifact compoundmedia

          a special clip as a compound of several elementary media tracks,
          e.g. the individual media streams found in one media file

          +

          Stereotype: source

          Artifact source associated with : CompoundMedia

          Artifact preview

          alternative version of the media data, probably with lower resolution

          +

          Stereotype: source

          Artifact source associated with : Preview

          Artifact unknown

          placeholder for unknown or unavailable media source

          +

          Stereotype: source

          Artifact source associated with : Unknown

          Artifact effect

          Effect or media processing component

          +

          Stereotype: source

          Artifact source associated with : Effect

          Artifact codec

          description of some media data decoder or encoder facility

          +

          Stereotype: source

          Artifact source associated with : Codec

          Artifact pipe

          structural asset corresponding to some port generating media output

          +

          Stereotype: source

          Artifact source associated with : Pipe

          Artifact track

          structural asset holding the configuration of a track in the EDL

          +

          Stereotype: source

          Artifact source associated with : Track

          Artifact procpatt

          template for building some render processing network

          +

          Stereotype: source

          Artifact source associated with : ProcPatt

          Artifact buildinstruct

          Instructions for building some configuration of render nodes.

          +

          Stereotype: source

          Artifact source associated with : BuildInstruct, DoRecurse, DoAttach

          Artifact db

          registry holding known Asset instances.

          +

          Stereotype: source

          Artifact source associated with : DB

          1.4.4.3 Package control

          -

            +

            sourcecode package

            The Processing and Render Controller,
            and the Proc-Layer dispatcher

            • C++ namespace : control
            -

            sourcecode package

            The Processing and Render Controller,
            and the Proc-Layer dispatcher

            +

            Stereotype: src

            +

            1.4.4.3.1 Deployment View gen

            defines source files to be generated by BOUML

            @@ -315,22 +367,26 @@ Documentation
            Artifact pathmanager

            Manager for deciding the actual render strategy

            +

            Stereotype: source

            Artifact source associated with : PathManager

            Artifact renderstate

            renderengine state manager

            +

            Stereotype: source

            Artifact source associated with : RenderState

            Artifact stypemanager
            +

            Stereotype: source

            Artifact source associated with : STypeManager

            1.4.4.4 Package mobject

            -

              +

              sourcecode package

              MObject Subsystem
              including the Session (EDL), Builder and Processing Controller

              • C++ namespace : mobject
              -

              sourcecode package

              MObject Subsystem
              including the Session (EDL), Builder and Processing Controller

              +

              Stereotype: src

              +

              1.4.4.4.1 Deployment View gen

              defines source files to be generated by BOUML

              @@ -338,46 +394,56 @@ Documentation
              Artifact session

              Interface: the session edited by the user

              +

              Stereotype: source

              Artifact source associated with : Session

              Artifact mobject

              Key Abstraction: A Media Object in the Session

              +

              Stereotype: source

              Artifact source associated with : MObject

              Artifact placement

              Key Abstraction: a way to place and locate a Media Object

              +

              Stereotype: source

              Artifact source associated with : Placement

              Artifact explicitplacement

              special Placement yielding an absolute location (Time,Track)-location for a MObject

              +

              Stereotype: source

              Artifact source associated with : ExplicitPlacement

              Artifact builderfacade

              Facade and service access point for the Builder Subsystem

              +

              Stereotype: source

              Artifact source associated with : BuilderFacade

              Artifact buildable

              marker interface denoting any MObject able to be treated by Tools

              +

              Stereotype: source

              Artifact source associated with : Buildable

              Artifact parameter

              representation of an automatable effect/plugin parameter

              +

              Stereotype: source

              Artifact source associated with : Parameter

              Artifact paramprovider

              interface denoting a source for actual Parameter values

              +

              Stereotype: source

              Artifact source associated with : ParamProvider

              Artifact interpolator

              denotes a facility to get (continuously interpolated) parameter values

              +

              Stereotype: source

              Artifact source associated with : Interpolator

              1.4.4.4.2 Package session

              -

                +

                sourcecode package

                Everything concerning the EDL and Session, within the MObject Subsystem

                • C++ namespace : mobject::session
                -

                sourcecode package

                Everything concerning the EDL and Session, within the MObject Subsystem

                +

                Stereotype: src

                +

                1.4.4.4.2.1 Deployment View gen

                defines source files to be generated by BOUML

                @@ -385,93 +451,115 @@ Documentation
                Artifact sessionimpl

                holds the complete session data to be edited by the user

                +

                Stereotype: source

                Artifact source associated with : SessionImpl

                Artifact sessmanager

                global session access and lifecycle

                +

                Stereotype: source

                Artifact source associated with : SessManager

                Artifact edl

                the (high level) Edit Decision List within the current Session

                +

                Stereotype: source

                Artifact source associated with : Seq

                Artifact fixture

                the (low level) representation of the EDL with concrete placement data

                +

                Stereotype: source

                Artifact source associated with : Fixture

                Artifact segment

                Segment of the Timeline.
                Used at the moment (7/07) for partitioning the timeline/fixture into segments
                to be rendered by a specialized render node network for each, without the need
                to change any connections within a given segment.
                Note this concept may be superfluos alltogether; is a draft and the real
                use still needs to be worked out...

                +

                Stereotype: source

                Artifact source associated with : Segment

                Artifact track

                A grouping device within the EDL. The corresponding Placement
                by which this Track object is refered defines fallback placing
                properties to be used by all objects placed on this track in
                case they don't specify more concrete placements.
                Typically, tracks are used do make default Port connections,
                define a layer or pan for sound and for for disabling groups
                of clips. Note tracks are grouped in a tree like fashion.

                +

                Stereotype: source

                Artifact source associated with : Track

                Artifact abstractmo

                abstract base class for all Media Objects

                +

                Stereotype: source

                Artifact source associated with : AbstractMO

                Artifact clip

                a Media Clip

                +

                Stereotype: source

                Artifact source associated with : Clip

                Artifact simpleclip

                Elementary clip (single media stream only)

                +

                Stereotype: source

                Artifact source associated with : SimpleClip

                Artifact compoundclip

                compound of several clips (multichannel)

                +

                Stereotype: source

                Artifact source associated with : CompoundClip

                Artifact effect

                EDL representation of a pluggable and automatable effect.

                +

                Stereotype: source

                Artifact source associated with : Effect

                Artifact meta

                abstract base class of all MObjects representing meta data or processing instructions

                +

                Stereotype: source

                Artifact source associated with : Meta

                Artifact locatingpin

                Chaining and constraining the Placement of a Media Object

                +

                Stereotype: source

                Artifact source associated with : LocatingPin

                Artifact fixedlocation

                implements fixed placement of a MObject

                +

                Stereotype: source

                Artifact source associated with : FixedLocation

                Artifact relativelocation

                Placement implemnetaion providing various ways of attaching a MObject to another one

                +

                Stereotype: source

                Artifact source associated with : RelativeLocation

                Artifact allocation
                +

                Stereotype: source

                Artifact source associated with : Allocation

                Artifact constraint

                LocatingPin representing an directive by the user that
                must not be violated

                +

                Stereotype: source

                Artifact source associated with : Constraint

                Artifact wish

                LocatingPin representing a low-priority directive by the user,
                to be fulfilled only if possible (and after satisfying the
                more important LocatingPins)

                +

                Stereotype: source

                Artifact source associated with : Wish

                Artifact plug

                LocatingPin for requesting connection to some Port

                +

                Stereotype: source

                Artifact source associated with : Plug

                Artifact label
                +

                Stereotype: source

                Artifact source associated with : Label

                Artifact auto

                Media Object holding automation data

                +

                Stereotype: source

                Artifact source associated with : Auto

                1.4.4.4.3 Package builder

                -

                  +

                  sourcecode package

                  The Builder creating the Render Engine,
                  located within the MObject Subsystem

                  • C++ namespace : mobject::builder
                  -

                  sourcecode package

                  The Builder creating the Render Engine,
                  located within the MObject Subsystem

                  +

                  Stereotype: src

                  +

                  1.4.4.4.3.1 Deployment View gen

                  defines source files to be generated by BOUML

                  @@ -479,36 +567,43 @@ Documentation
                  Artifact toolfactory

                  supply of Tool implementations for the Builder

                  +

                  Stereotype: source

                  Artifact source associated with : ToolFactory

                  Artifact conmanager

                  manages the creation of additional ProcNode connections for the Renderengine

                  +

                  Stereotype: source

                  Artifact source associated with : ConManager

                  Artifact assembler

                  building facility (implementation of the build process)

                  +

                  Stereotype: source

                  Artifact source associated with : Assembler

                  Artifact buildertool

                  Interface, any tool for processing MObjects

                  +

                  Stereotype: source

                  Artifact source associated with : BuilderTool

                  Artifact segmentationtool

                  Tool for creating a partitioning of the current timeline

                  +

                  Stereotype: source

                  Artifact source associated with : SegmentationTool

                  Artifact nodecreatertool

                  central Tool implementing the Renderengine building

                  +

                  Stereotype: source

                  Artifact source associated with : NodeCreatorTool

              1.4.4.5 Package engine

              -

                +

                sourcecode package

                The Core Render Engine

                • C++ namespace : engine
                -

                sourcecode package

                The Core Render Engine

                +

                Stereotype: src

                +

                1.4.4.5.1 Deployment View gen

                defines source files to be generated by BOUML

                @@ -516,95 +611,116 @@ Documentation
                Artifact renderengine

                a complete network of processing nodes usable for rendering

                +

                Stereotype: source

                Artifact source associated with : RenderEngine

                -
                Artifact processor
                +
                Artifact rendergraph

                a single render pipeline for one segment of the timeline

                -

                Artifact source associated with : Processor

                +

                Stereotype: source

                +

                Artifact source associated with : RenderGraph

                Artifact exitnode

                special Processing Node providing "pullable" output

                +

                Stereotype: source

                Artifact source associated with : ExitNode

                Artifact procnode

                Key abstraction of the Render Engine: a Processing Node

                +

                Stereotype: source

                Artifact source associated with : ProcNode

                Artifact trafo

                transforming processing Node

                +

                Stereotype: source

                Artifact source associated with : Trafo

                Artifact link

                forwarding, adapting or connecting ProcNode

                +

                Stereotype: source

                Artifact source associated with : Link

                Artifact hub

                special ProcNode used to build data distributing connections

                +

                Stereotype: source

                Artifact source

                Artifact projector

                video ProcNode for scaling and translating image data

                +

                Stereotype: source

                Artifact source associated with : Projector

                Artifact mask

                Video ProcNode for masking regions of the image (automatable)

                +

                Stereotype: source

                Artifact source associated with : Mask

                Artifact pluginadapter

                Adapter for integrating various Effect processors in the render pipeline

                +

                Stereotype: source

                Artifact source associated with : PluginAdapter

                Artifact codecadapter

                Processing Node for (de)coding media data

                +

                Stereotype: source

                Artifact source associated with : CodecAdapter

                Artifact glpipe

                specialized connection element for handling OpenGL implementation details

                +

                Stereotype: source

                Artifact source

                Artifact arender

                Representation of a Audio Render process

                +

                Stereotype: source

                Artifact source

                Artifact vrender

                Representation of a Video render process

                +

                Stereotype: source

                Artifact source

                Artifact glrender

                Representation of a OpenGL accellerated Video render process

                +

                Stereotype: source

                Artifact source

                Artifact aframe

                a buffer and render process holding a Audio frame

                +

                Stereotype: source

                Artifact source associated with : AFrame

                Artifact vframe

                a buffer and render process holding a Video frame

                +

                Stereotype: source

                Artifact source associated with : VFrame

                Artifact glbuf

                a buffer and render process holding a Video frame for OpenGL rendering

                +

                Stereotype: source

                Artifact source associated with : GLBuf

                Artifact source

                Representation of a Media source

                +

                Stereotype: source

                Artifact source associated with : Source

        1.4.5 Package gui

        -

          +

          sourcecode package

          User Interface classes go here

          • C++ namespace : gui
          -

          sourcecode package

          User Interface classes go here

          +

          Stereotype: src

          +

          1.4.5.1 Deployment View gen

          defines source files to be generated by BOUML

          1.4.6 Package tool

          -

          sourcecode package

          Tools and Utilities
          (separate from the main cinelrra binary)

          +

          sourcecode package

          Tools and Utilities
          (separate from the main cinelrra binary)

          Stereotype: src

          +

          1.4.6.1 Deployment View gen

          defines source files to be generated by BOUML

          @@ -730,6 +846,7 @@ reuse exiting Engine

        Selection :

          Transformation
          Class Seq
          Class Fixture
          +
          Class Segment
          Class Track
          Class MObject
          @@ -838,7 +955,7 @@ reuse exiting Engine

        Selection :

          Transformation

          Defined in building the Engine

          -

          Builder Entities



          +

          Builder Tool (Visitor)



          @@ -848,6 +965,9 @@ reuse exiting Engine

        Selection :

          Transformation
          + +

          +

          Builder Entities



          @@ -878,11 +998,11 @@ reuse exiting Engine

        Selection :

          Transformation

          Overview Render Engine



          -
          Node timeline
          +
          Node effective timeline (Fixture)
          Node playlist
          -
          Node proc
          +
          Node graph
          Node pnode
          @@ -906,7 +1026,7 @@ reuse exiting Engine

          Selection :

            Transformation

            StateAdapter composition



            -
            Class Processor
            +
            Class ExitNode
            Class ProcNode
            Class Trafo
            @@ -1015,17 +1135,17 @@ reuse exiting Engine

            Selection :

              Transformation
              Class instance

              type :RenderEngine

              relations :

              -
              Class instance audio1

              type :Processor

              attributes :

                +
                Class instance audio1

                type :RenderGraph

                attributes :

                relations :

                -
                Class instance video1

                type :Processor

                attributes :

                  +
                  Class instance video1

                  type :RenderGraph

                  attributes :

                  relations :

                  Class instance video

                  type :ExitNode

                  relations :

                  • datasrc = ouput
                  • @@ -1056,11 +1176,11 @@ reuse exiting Engine

                  Selection :

                    Transformation
                    Class instance input

                    type :Projector

                    relations :

                    -
                    Class instance video1

                    type :Processor

                    attributes :

                    Class instance

                    type :VFrame

                    -
                    Class instance video1

                    type :Processor

                    attributes :

                      +
                      Class instance video1

                      type :RenderGraph

                      attributes :

                      relations :

                      Class instance video

                      type :ExitNode

                      relations :

                      • datasrc = ouput
                      • @@ -1085,11 +1205,11 @@ reuse exiting Engine

                      Selection :

                        Transformation
                        Class instance input

                        type :Projector

                        relations :

                        -
                        Class instance video1

                        type :Processor

                        attributes :

                          +
                          Class instance video1

                          type :RenderGraph

                          attributes :

                          relations :

                          Class instance ouput

                          type :Projector

                          relations :

                          • datasrc = input
                          • diff --git a/doc/devel/uml/index_60.html b/doc/devel/uml/index_60.html index 75ccc147d..8712d7074 100644 --- a/doc/devel/uml/index_60.html +++ b/doc/devel/uml/index_60.html @@ -30,8 +30,8 @@ <flow>transition <flow>transition <flow>transition -<flow>transition <flow>transition +<flow>transition <flow>transition <flow>transition <flow>transition diff --git a/doc/devel/uml/index_65.html b/doc/devel/uml/index_65.html index ab57596c5..da137cab0 100644 --- a/doc/devel/uml/index_65.html +++ b/doc/devel/uml/index_65.html @@ -58,9 +58,9 @@ aud_aclass instance aud_Aclass instance audioclass instance -audio1class instance audio1class instance audio1class instance +audio1class instance autoartifactMedia Object holding automation data AutoclassAutomation data for some parameter (i.e. a time varying function) Automation Entitiesclass diagram diff --git a/doc/devel/uml/index_66.html b/doc/devel/uml/index_66.html index 3a6ba7379..5a4df3c38 100644 --- a/doc/devel/uml/index_66.html +++ b/doc/devel/uml/index_66.html @@ -39,7 +39,8 @@ Buildercomponent Builderpackage builderpackagesourcecode package

                            The Builder creating the Render Engine,
                            located within the MObject Subsystem -Builder Entitiesclass diagram +Builder Entitiesclass diagram +Builder Tool (Visitor)class diagram Builder Workingsclass view BuilderFacadeclassProvides 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 builderfacadeartifactFacade and service access point for the Builder Subsystem diff --git a/doc/devel/uml/index_67.html b/doc/devel/uml/index_67.html index b906f4d25..a17989712 100644 --- a/doc/devel/uml/index_67.html +++ b/doc/devel/uml/index_67.html @@ -32,39 +32,39 @@ chainoperationcreate and add another Placement for this media object, thus increasingly constraining the (possible) position of this object. checked_inrelationchecked_in objects are subject of cache aging and must be not in use checked_outrelationthis list keeps all mappings which are in use, and thus prevents them from Cache aging +class instanceclass instance +class instanceclass instance +class instanceclass instance class instanceclass instance -class instanceclass instance class instanceclass instance class instanceclass instance -class instanceclass instance -class instanceclass instance class instanceclass instance +class instanceclass instance class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance +class instanceclass instance +class instanceclass instance class instanceclass instance -class instanceclass instance +class instanceclass instance class instanceclass instance class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance class instanceclass instance -class instanceclass instance -class instanceclass instance -class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance class instanceclass instance -class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance +class instanceclass instance clearoperationclear current session contents
                            without resetting overall session config.
                            Afterwards, the session will contain only one
                            empty EDL, while all Assets are retained.
                            client codecomponent Clipclassbookkeeping (asset) view of a media clip. -clipartifactbookkeeping (asset) view of a media clip. clipartifacta Media Clip +clipartifactbookkeeping (asset) view of a media clip. Clipclass clipsrelation Codecclassdescription of some media data decoder or encoder facility diff --git a/doc/devel/uml/index_69.html b/doc/devel/uml/index_69.html index 4fe57adfd..37fab2669 100644 --- a/doc/devel/uml/index_69.html +++ b/doc/devel/uml/index_69.html @@ -23,9 +23,10 @@ EDL Example2object diagramMore complex example showing the Object graph in the EDL and how it is linked into the Fixture to yield the actual locations. In this example, an HUE Effect is applied on a part of the Clip edlsrelation EffectclassEffect or media processing component -effectartifactEDL representation of a pluggable and automatable effect. effectartifactEffect or media processing component +effectartifactEDL representation of a pluggable and automatable effect. Effectclass +effective timeline (Fixture)node effectiveTimelinerelation elementsrelationrelevant MObjects comprising this segment. TODO: actually necessary?? enableoperationchange the enabled status of this asset. Note the corresponding #isActive predicate may depend on the enablement status of parent assets as well diff --git a/doc/devel/uml/index_70.html b/doc/devel/uml/index_70.html index 5f2c83e88..777bf389c 100644 --- a/doc/devel/uml/index_70.html +++ b/doc/devel/uml/index_70.html @@ -37,8 +37,8 @@ FixedLocationclass Fixtureactivity object fixtureartifactthe (low level) representation of the EDL with concrete placement data -Fixtureclass Fixturecomponent +Fixtureclass fork activity nodefork activity node FrameclassFrames are just a low level lump of continous memory, most parts are opaque. Frames are memory sensitive, they will be small constant sized structures which can be efficently managed in a pool. Framenode diff --git a/doc/devel/uml/index_71.html b/doc/devel/uml/index_71.html index 75f10c74f..a95c02ef8 100644 --- a/doc/devel/uml/index_71.html +++ b/doc/devel/uml/index_71.html @@ -49,6 +49,7 @@ globalBussesrelation glpipeartifactspecialized connection element for handling OpenGL implementation details glrenderartifactRepresentation of a OpenGL accellerated Video render process +graphnode groupsattributeadditional classification, selections or departments this asset belongs to. Groups are optional, non-exclusive and may be overlapping. guipackagesourcecode package

                            User Interface classes go here GUIpackageGUI is here just a container to hold any entities considered to be User Interface related, which is not in focus for this Design draft diff --git a/doc/devel/uml/index_73.html b/doc/devel/uml/index_73.html index 7f152ccfe..844b1bf03 100644 --- a/doc/devel/uml/index_73.html +++ b/doc/devel/uml/index_73.html @@ -21,8 +21,8 @@ ImplFacadeclass In Memory Databaseclass diagram inFixtureactivity action pin -inputclass instance inputclass instance +inputclass instance inputclass instance instanceoperation InstanceHandleclass diff --git a/doc/devel/uml/index_77.html b/doc/devel/uml/index_77.html index c88824279..56c268d60 100644 --- a/doc/devel/uml/index_77.html +++ b/doc/devel/uml/index_77.html @@ -34,8 +34,8 @@ MediaKindclass merge activity nodemerge activity node Metaclasskey abstraction: metadata and organisational asset -metaartifactkey abstraction: metadata and organisational asset metaartifactabstract base class of all MObjects representing meta data or processing instructions +metaartifactkey abstraction: metadata and organisational asset Metaclass mobjectartifactKey Abstraction: A Media Object in the Session mobjectpackagesourcecode package

                            MObject Subsystem
                            including the Session (EDL), Builder and Processing Controller diff --git a/doc/devel/uml/index_79.html b/doc/devel/uml/index_79.html index e17eadde8..d7e2263c6 100644 --- a/doc/devel/uml/index_79.html +++ b/doc/devel/uml/index_79.html @@ -20,11 +20,10 @@ offsetattributeOffset the actual position by this (time) value relative to the anchor point. TODO: Representation? OperationBaseclass orgattributeorigin or authorship id. Can be a project abbreviation, a package id or just the authors nickname or UID. This allows for the compnent name to be more generic (e.g. "blur"). Default for all assets provided by the core Lumiera codebase is "lumi". -ouputclass instance ouputclass instance ouputclass instance +ouputclass instance outPortrelationthe Port this MObject wants to be conected to -outputrelation Overviewcomponent diagramThis drawing shows the top level compoents and relations Overview Render Enginedeployment diagram diff --git a/doc/devel/uml/index_80.html b/doc/devel/uml/index_80.html index d024e3dca..5f43290e4 100644 --- a/doc/devel/uml/index_80.html +++ b/doc/devel/uml/index_80.html @@ -27,6 +27,7 @@ pathmanagerartifactManager for deciding the actual render strategy Pipeclassstructural asset representing a basic building block within the high level model: a port for building a processing chain and generating media output pipeartifactstructural asset corresponding to some port generating media output +pipesrelation pipesrelationthe global ports (busses) of the session placementartifactKey Abstraction: a way to place and locate a Media Object Placementclassused to specify the position of a MObject in the EDL. This can be done in various ways (absolute, relative).
                            Placement at the same time acts as (refcounting) smart pointer for accessing the MObject. @@ -49,7 +50,6 @@ previewartifactalternative version of the media data, probably with lower resolution Procclasskey abstraction: data processing asset procpackagesourcecode package

                            All classes belonging to the (middle) processing layer -procnode procartifactkey abstraction: media-like assets procattributeholds the Processor (Render Engine Element) to be built by the current build step Proc-Asset Relationsclass diagram @@ -58,8 +58,6 @@ processoperation ProcessDataclass ProcessingLayerpackage -Processorclass -processorartifacta single render pipeline for one segment of the timeline ProcNodecomponent ProcNodeclassKey abstraction of the Render Engine: A Data processing Node procnodeartifactKey abstraction of the Render Engine: a Processing Node diff --git a/doc/devel/uml/index_82.html b/doc/devel/uml/index_82.html index fd3368437..8c7b345eb 100644 --- a/doc/devel/uml/index_82.html +++ b/doc/devel/uml/index_82.html @@ -24,8 +24,8 @@ relativelocationartifactPlacement implemnetaion providing various ways of attaching a MObject to another one RelativeLocationclass releaseBufferoperation -RelTypeclassthe possible kinds of RelativePlacements relTypeattributethe kind of relation denoted by this Placement +RelTypeclassthe possible kinds of RelativePlacements removeoperationremove the given asset <i>together with all its dependants</i> from the internal DB Render Entitiesclass diagram Render Mechanicsclass diagram @@ -35,6 +35,8 @@ renderengineartifacta complete network of processing nodes usable for rendering RenderEnginepackage Renderengine Useuse case view +RenderGraphclass +rendergraphartifacta single render pipeline for one segment of the timeline RenderPathManagercomponent renderSegmentsrelation RenderStateclassEncapsulates the logic used to get a "current render process" in accordance to the currentyl applicable controller settings. The provided StateProxy serves to hold any mutalbe state used in the render process, so the rest of the render engine can be stateless. diff --git a/doc/devel/uml/index_83.html b/doc/devel/uml/index_83.html index 9c9ebb223..028888285 100644 --- a/doc/devel/uml/index_83.html +++ b/doc/devel/uml/index_83.html @@ -23,6 +23,7 @@ segmentartifactSegment of the Timeline.
                            Used at the moment (7/07) for partitioning the timeline/fixture into segments
                            to be rendered by a specialized render node network for each, without the need
                            to change any connections within a given segment.
                            Note this concept may be superfluos alltogether; is a draft and the real
                            use still needs to be worked out... Segmentclass segment Toolactivity object +Segmentationclass SegmentationToolclassTool 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. segmentationtoolartifactTool for creating a partitioning of the current timeline segmentsactivity object @@ -50,8 +51,8 @@ SimpleClipclassElementary clip consisting of only one media stream SmartPointerclass SmartPointersclass view -sourcerelationmedia source of this clip sourcerelationthe media source this clip referes to +sourcerelationmedia source of this clip SourceclassSource Node: represents a media source to pull data from. sourceartifactRepresentation of a Media source Source Overviewdeployment diagram diff --git a/doc/devel/uml/index_84.html b/doc/devel/uml/index_84.html index 8f80d7c8d..361bf1d1f 100644 --- a/doc/devel/uml/index_84.html +++ b/doc/devel/uml/index_84.html @@ -24,7 +24,6 @@ timeattribute timeartifactunified representation of a time point, including conversion functions Timeclassdenotes a temporal position (time point), based on timeline start.

                            investigate posix.4 realtime timers, wrap these here -timelinenode Timelineclass TimelineSequencesclass diagram TimelineViewclass @@ -45,13 +44,13 @@ trafoartifacttransforming processing Node treatoperation treatoperationThis operation is to be overloaded for the specific MObject subclasses to be treated. +treatoperation treatoperation treatoperation -treatoperation treatoperation -treatoperation treatoperation treatoperation +treatoperation TypeHandlerclass TypeHandler<Pipe>class diff --git a/doc/devel/uml/index_86.html b/doc/devel/uml/index_86.html index 203265efb..1ab403ad8 100644 --- a/doc/devel/uml/index_86.html +++ b/doc/devel/uml/index_86.html @@ -21,21 +21,21 @@ VFrameclass vframeartifacta buffer and render process holding a Video frame vid1class instance -vid_aclass instance -vid_aclass instance -vid_Aclass instance -vid_Aclass instance vid_Aclass instance -videoclass instance -videoclass instance -videoclass instance +vid_aclass instance +vid_Aclass instance +vid_aclass instance +vid_Aclass instance videoclass instance -video1class instance -video1class instance -video1class instance -video1class instance -video1class instance +videoclass instance +videoclass instance +videoclass instance video1class instance +video1class instance +video1class instance +video1class instance +video1class instance +video1class instance Visitableclass visitorpackagesub-namespace for visitor library implementation visitorartifactAcyclic Visitor library diff --git a/doc/devel/uml/style.css b/doc/devel/uml/style.css index 2f256177f..3a10a8149 100644 --- a/doc/devel/uml/style.css +++ b/doc/devel/uml/style.css @@ -1,6 +1,6 @@ div.title { font-size: 150%; background: #87ceff; text-align: center; font-weight: bold; } -div.sub { margin-left : 20; } +div.sub { margin-left : 20px; } div.element { background: #d3d3d3; } h1.package { background: #ffe4c4; }