WIP trying to get the Placement stuff right,

but seemingly still having some design mismatch...
This commit is contained in:
Fischlurch 2007-10-13 05:13:28 +02:00
parent fc1c39dc44
commit 08f10c2a2e
34 changed files with 325 additions and 122 deletions

View file

@ -16,11 +16,13 @@
<!-- ============================================================= -->
<a name="refclass128645"></a>
<p>Declaration :</p><ul><li>C++ : class Placement </li><li>Java : public interface Placement </li></ul><p>Directly inherited by : <a href="class129541.html#refclass129541"><b>Allocation</b></a> <a href="class129797.html#refclass129797"><b>ExplicitPlacement</b></a> <a href="class129285.html#refclass129285"><b>FixedPlacement</b></a> <a href="class129413.html#refclass129413"><b>RelativePlacement</b></a> </p>
<p>Artifact : <a href="index.html#refartifact129029"><b>placement</b></a></p><div class="sub">
<p>Declaration :</p><ul><li>C++ : class Placement </li><li>Java : public interface Placement </li></ul><p>Directly inherited by : <a href="class129541.html#refclass129541"><b>Allocation</b></a> <a href="class129797.html#refclass129797"><b>ExplicitPlacement</b></a> <a href="class129413.html#refclass129413"><b>RelativePlacement</b></a> </p>
<p>used to specify the position of a MObject in the EDL. This can be done in various ways (absolute, relative). <br />Placement at the same time acts as (refcounting) smart pointer for accessing the MObject.<br /></p><p>Artifact : <a href="index.html#refartifact129029"><b>placement</b></a></p><div class="sub">
<a name="refoperation128005"></a>
<table><tr><td><div class="element">Operation <b>resolve</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : + resolve() : ExplicitPlacement [ProcessingLayer::MObject]&amp;</li><li>C++ : public: ExplicitPlacement [ProcessingLayer::MObject]&amp; resolve () </li></ul><p>create an actual (explicit) placement while trying to satisfy the network of adjacent objects and placements.<br /></p><a name="refrelation144901"></a>
<table><tr><td><div class="element">Relation <b>subject (&lt;unidirectional association&gt;)</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # subject : <a href="class128517.html#refclass128517"><b>MObject</b></a>, multiplicity : 1</li><li>C++ : protected: <a href="class128517.html#refclass128517"><b>MObject</b></a>* subject</li></ul><p>Placement acts as smart pointer<br /></p></div>
<p>All public operations : <a href="class128645.html#refoperation128005"><b>resolve</b></a> </p>
<table><tr><td><div class="element">Relation <b>subject (&lt;unidirectional association&gt;)</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # subject : <a href="class128517.html#refclass128517"><b>MObject</b></a>, multiplicity : 1</li><li>C++ : protected: <a href="class128517.html#refclass128517"><b>MObject</b></a>* subject</li></ul><p>Placement acts as smart pointer<br /></p><a name="refoperation134277"></a>
<table><tr><td><div class="element">Operation <b>chain</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : + chain(in style : ) : </li><li>C++ : public: chain (const &amp; style) </li></ul><p>create and add another Placement for this media object, thus increasingly constraining the (possible) position of this object.<br /></p><a name="refrelation145413"></a>
<table><tr><td><div class="element">Relation <b>chain (&lt;unidirectional association&gt;)</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # chain : <a href="class139909.html#refclass139909"><b>ChainPlacement</b></a>, multiplicity : 1</li><li>C++ : protected: <a href="class139909.html#refclass139909"><b>ChainPlacement</b></a>* chain</li></ul><p>Chain of additional Placements further constraining the position of this MObject<br /></p></div>
<p>All public operations : <a href="class128645.html#refoperation134277"><b>chain</b></a> , <a href="class128645.html#refoperation128005"><b>resolve</b></a> </p>
</body>
</html>

View file

@ -16,8 +16,8 @@
<!-- ============================================================= -->
<a name="refclass129285"></a>
<p>Declaration :</p><ul><li>C++ : class FixedPlacement : public <a href="class128645.html#refclass128645"><b>Placement</b></a>, public <a href="class129797.html#refclass129797"><b>ExplicitPlacement</b></a> </li></ul><p>Artifact : <a href="index.html#refartifact129797"><b>fixedplacement</b></a></p><div class="sub">
<p>Declaration :</p><ul><li>C++ : class FixedPlacement : public <a href="class129797.html#refclass129797"><b>ExplicitPlacement</b></a> </li></ul><p>Artifact : <a href="index.html#refartifact129797"><b>fixedplacement</b></a></p><div class="sub">
</div>
<p>All public operations : <a href="class128645.html#refoperation128005"><b>resolve</b></a> </p>
<p>All public operations : <a href="class128645.html#refoperation134277"><b>chain</b></a> , <a href="class128645.html#refoperation128005"><b>resolve</b></a> </p>
</body>
</html>

View file

@ -24,6 +24,6 @@
<table><tr><td><div class="element">Attribut <b>offset</b></div></td></tr></table>
<p>Declaration :</p><ul><li>Uml : # offset : <a href="class134917.html#refclass134917"><b>Time</b></a></li><li>C++ : protected: <a href="class134917.html#refclass134917"><b>Time</b></a> offset</li></ul><p>Offset the actual position by this (time) value relative to the anchor point. TODO: Representation?<br /></p><table><tr><td><div class="element">Class <b><a href="class133893.html#refclass133893"><b>RelType</b></a></b></div></td></tr></table>
</div>
<p>All public operations : <a href="class128645.html#refoperation128005"><b>resolve</b></a> </p>
<p>All public operations : <a href="class128645.html#refoperation134277"><b>chain</b></a> , <a href="class128645.html#refoperation128005"><b>resolve</b></a> </p>
</body>
</html>

View file

@ -22,6 +22,6 @@
<table><tr><td><div class="element">Attribut <b>repr</b></div></td></tr></table>
<p>Declaration :</p><ul><li>Uml : # repr : string</li><li>C++ : protected: string repr</li></ul><p>human readable representation of the condition characterizing this allocaton, e.g. "t &gt;= 10"<br /></p><a name="refoperation131205"></a>
<table><tr><td><div class="element">Operation <b>get_repr</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : + get_repr() : string</li><li>C++ : public: inline const string getRepr () const </li></ul></div>
<p>All public operations : <a href="class129541.html#refoperation131205"><b>get_repr</b></a> , <a href="class128645.html#refoperation128005"><b>resolve</b></a> </p>
<p>All public operations : <a href="class128645.html#refoperation134277"><b>chain</b></a> , <a href="class129541.html#refoperation131205"><b>get_repr</b></a> , <a href="class128645.html#refoperation128005"><b>resolve</b></a> </p>
</body>
</html>

View file

@ -24,6 +24,6 @@
<table><tr><td><div class="element">Attribut <b>track</b></div></td></tr></table>
<p>Declaration :</p><ul><li>Uml : # track : Track [ProcessingLayer::MObject] *</li><li>C++ : protected: Track [ProcessingLayer::MObject] * track</li></ul><a name="refrelation131845"></a>
<table><tr><td><div class="element">Relation <b>&lt;unidirectional association&gt;</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # : <a href="class128389.html#refclass128389"><b>Track</b></a></li><li>C++ : protected: <a href="class128389.html#refclass128389"><b>Track</b></a>* </li></ul></div>
<p>All public operations : <a href="class128645.html#refoperation128005"><b>resolve</b></a> </p>
<p>All public operations : <a href="class128645.html#refoperation134277"><b>chain</b></a> , <a href="class128645.html#refoperation128005"><b>resolve</b></a> </p>
</body>
</html>

View file

@ -18,6 +18,6 @@
<a name="refclass130053"></a>
<p>Declaration :</p><ul><li>C++ : class Wish : public <a href="class129541.html#refclass129541"><b>Allocation</b></a> </li></ul><div class="sub">
</div>
<p>All public operations : <a href="class129541.html#refoperation131205"><b>get_repr</b></a> , <a href="class128645.html#refoperation128005"><b>resolve</b></a> </p>
<p>All public operations : <a href="class128645.html#refoperation134277"><b>chain</b></a> , <a href="class129541.html#refoperation131205"><b>get_repr</b></a> , <a href="class128645.html#refoperation128005"><b>resolve</b></a> </p>
</body>
</html>

View file

@ -18,6 +18,6 @@
<a name="refclass130181"></a>
<p>Declaration :</p><ul><li>C++ : class Constraint : public <a href="class129541.html#refclass129541"><b>Allocation</b></a> </li></ul><div class="sub">
</div>
<p>All public operations : <a href="class129541.html#refoperation131205"><b>get_repr</b></a> , <a href="class128645.html#refoperation128005"><b>resolve</b></a> </p>
<p>All public operations : <a href="class128645.html#refoperation134277"><b>chain</b></a> , <a href="class129541.html#refoperation131205"><b>get_repr</b></a> , <a href="class128645.html#refoperation128005"><b>resolve</b></a> </p>
</body>
</html>

View file

@ -0,0 +1,23 @@
<!-- Documentation produced by the Html generator of Bouml (http://bouml.free.fr) -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Class ChainPlacement</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body bgcolor="#ffffff">
<div class = "title">Class ChainPlacement</div>
<p></p>
<!-- ============================================================= -->
<a name="refclass139909"></a>
<p>Declaration :</p><ul><li>C++ : class ChainPlacement </li></ul><p>Artifact : <a href="index.html#refartifact139013"><b>chainplacement</b></a></p><div class="sub">
<a name="refrelation145541"></a>
<table><tr><td><div class="element">Relation <b>next (&lt;unidirectional association&gt;)</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : # next : <a href="class128645.html#refclass128645"><b>Placement</b></a></li><li>C++ : protected: <a href="class128645.html#refclass128645"><b>Placement</b></a>* next</li></ul><p>next additional Placement, if any<br /></p></div>
</body>
</html>

View file

@ -29,6 +29,7 @@
<tr bgcolor=#f0f0f0><td><a href="class130565.html#refclass130565" target = "projectFrame"><b>BuilderFacade</b></a></td><td>boundary</td><td>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</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class139013.html#refclass139013" target = "projectFrame"><b>BuildInstruct</b></a></td><td></td><td>(Interface) building instructions to be executed by the Builder on the render node network under construction.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class137221.html#refclass137221" target = "projectFrame"><b>Category</b></a></td><td></td><td>tree like classification of Assets</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class139909.html#refclass139909" target = "projectFrame"><b>ChainPlacement</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class137349.html#refclass137349" target = "projectFrame"><b>Clip</b></a></td><td></td><td>bookkeeping (asset) view of a media clip.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class128901.html#refclass128901" target = "projectFrame"><b>Clip</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class137861.html#refclass137861" target = "projectFrame"><b>Codec</b></a></td><td></td><td>description of some media data decoder or encoder facility</td></tr>
@ -89,7 +90,7 @@
<tr bgcolor=#f0f0f0><td><a href="class134533.html#refclass134533" target = "projectFrame"><b>Parameter</b></a></td><td></td><td>Descriptor and access object for a plugin parameter. Parameters may be provided with values from the session, and this values may be automated.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class134661.html#refclass134661" target = "projectFrame"><b>ParamProvider</b></a></td><td>interface</td><td>A facility to get the actual value of a plugin/effect parameter</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class130437.html#refclass130437" target = "projectFrame"><b>PathManager</b></a></td><td></td><td>While building a render engine, this Strategy class decides on the actual render strategy in accordance to the current controller settings (system state)</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class128645.html#refclass128645" target = "projectFrame"><b>Placement</b></a></td><td>interface</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class128645.html#refclass128645" target = "projectFrame"><b>Placement</b></a></td><td>interface</td><td>used to specify the position of a MObject in the EDL. This can be done in various ways (absolute, relative). <br />Placement at the same time acts as (refcounting) smart pointer for accessing the MObject.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class132485.html#refclass132485" target = "projectFrame"><b>PluginAdapter</b></a></td><td></td><td>Adapter used to integrage an effects processor in the render pipeline</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class129077.html#refclass129077" target = "projectFrame"><b>Prefetch</b></a></td><td></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class137605.html#refclass137605" target = "projectFrame"><b>Preview</b></a></td><td></td><td>alternative version of the media data, probably with lower resolution</td></tr>

View file

@ -30,6 +30,7 @@
<a href="class130565.html#refclass130565" target = "projectFrame"><b>BuilderFacade</b></a><br />
<a href="class139013.html#refclass139013" target = "projectFrame"><b>BuildInstruct</b></a><br />
<a href="class137221.html#refclass137221" target = "projectFrame"><b>Category</b></a><br />
<a href="class139909.html#refclass139909" target = "projectFrame"><b>ChainPlacement</b></a><br />
<a href="class137349.html#refclass137349" target = "projectFrame"><b>Clip</b></a><br />
<a href="class128901.html#refclass128901" target = "projectFrame"><b>Clip</b></a><br />
<a href="class137861.html#refclass137861" target = "projectFrame"><b>Codec</b></a><br />

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 62 KiB

View file

@ -112,7 +112,7 @@ Documentation</title>
<a name="refartifact128005"></a>
<table><tr><td><div class="element">Artifact <b>Cinelerra3</b></div></td></tr></table>
<p>Depends on <a href="index.html#refpackage129413"><b>common</b></a></p><p>Depends on <a href="index.html#refpackage129797"><b>gui</b></a></p><p>Depends on <a href="index.html#refpackage129669"><b>proc</b></a></p><p>Depends on <a href="index.html#refpackage129541"><b>backend</b></a></p><p>the main executable to be built<br /></p>
<p><i>executable</i> associated with : <a href="index.html#refartifact128133"><b>main</b></a>, <a href="index.html#refartifact130693"><b>conmanager</b></a>, <a href="index.html#refartifact129413"><b>clip</b></a>, <a href="index.html#refartifact129669"><b>meta</b></a>, <a href="index.html#refartifact129797"><b>fixedplacement</b></a>, <a href="index.html#refartifact129925"><b>relativeplacement</b></a>, <a href="index.html#refartifact133509"><b>vrender</b></a>, <a href="index.html#refartifact128261"><b>mobject</b></a>, <a href="index.html#refartifact134277"><b>source</b></a>, <a href="index.html#refartifact133765"><b>frame</b></a>, <a href="index.html#refartifact129029"><b>placement</b></a>, <a href="index.html#refartifact128517"><b>sessionimpl</b></a>, <a href="index.html#refartifact130437"><b>builderfacade</b></a>, <a href="index.html#refartifact131589"><b>controllerfacade</b></a>, <a href="index.html#refartifact132101"><b>processor</b></a>, <a href="index.html#refartifact133125"><b>pluginadapter</b></a>, <a href="index.html#refartifact129541"><b>effect</b></a>, <a href="index.html#refartifact131205"><b>tool</b></a>, <a href="index.html#refartifact131333"><b>segmentationtool</b></a>, <a href="index.html#refartifact133893"><b>aframe</b></a>, <a href="index.html#refartifact130821"><b>assembler</b></a>, <a href="index.html#refartifact132485"><b>trafo</b></a>, <a href="index.html#refartifact129157"><b>explicitplacement</b></a>, <a href="index.html#refartifact130309"><b>auto</b></a>, <a href="index.html#refartifact133637"><b>glrender</b></a>, <a href="index.html#refartifact132613"><b>link</b></a>, <a href="index.html#refartifact134405"><b>parameter</b></a>, <a href="index.html#refartifact131973"><b>renderengine</b></a>, <a href="index.html#refartifact130053"><b>allocation</b></a>, <a href="index.html#refartifact134021"><b>vframe</b></a>, <a href="index.html#refartifact130565"><b>toolfactory</b></a>, <a href="index.html#refartifact133381"><b>arender</b></a>, <a href="index.html#refartifact131845"><b>renderstate</b></a>, <a href="index.html#refartifact130181"><b>label</b></a>, <a href="index.html#refartifact134149"><b>glbuf</b></a>, <a href="index.html#refartifact132357"><b>procnode</b></a>, <a href="index.html#refartifact130949"><b>stateproxy</b></a>, <a href="index.html#refartifact132741"><b>hub</b></a>, <a href="index.html#refartifact131077"><b>buildable</b></a>, <a href="index.html#refartifact129285"><b>abstractmo</b></a>, <a href="index.html#refartifact131461"><b>nodecreatertool</b></a>, <a href="index.html#refartifact132869"><b>projector</b></a>, <a href="index.html#refartifact134661"><b>interpolator</b></a>, <a href="index.html#refartifact128645"><b>edl</b></a>, <a href="index.html#refartifact128773"><b>fixture</b></a>, <a href="index.html#refartifact133253"><b>glpipe</b></a>, <a href="index.html#refartifact132229"><b>exitnode</b></a>, <a href="index.html#refartifact131717"><b>pathmanager</b></a>, <a href="index.html#refartifact128901"><b>track</b></a>, <a href="index.html#refartifact134533"><b>paramprovider</b></a>, <a href="index.html#refartifact132997"><b>mask</b></a></p>
<p><i>executable</i> associated with : <a href="index.html#refartifact134533"><b>paramprovider</b></a>, <a href="index.html#refartifact132997"><b>mask</b></a>, <a href="index.html#refartifact128133"><b>main</b></a>, <a href="index.html#refartifact130693"><b>conmanager</b></a>, <a href="index.html#refartifact129413"><b>clip</b></a>, <a href="index.html#refartifact129669"><b>meta</b></a>, <a href="index.html#refartifact129797"><b>fixedplacement</b></a>, <a href="index.html#refartifact129925"><b>relativeplacement</b></a>, <a href="index.html#refartifact133509"><b>vrender</b></a>, <a href="index.html#refartifact128261"><b>mobject</b></a>, <a href="index.html#refartifact134277"><b>source</b></a>, <a href="index.html#refartifact133765"><b>frame</b></a>, <a href="index.html#refartifact129029"><b>placement</b></a>, <a href="index.html#refartifact128517"><b>sessionimpl</b></a>, <a href="index.html#refartifact130437"><b>builderfacade</b></a>, <a href="index.html#refartifact131589"><b>controllerfacade</b></a>, <a href="index.html#refartifact132101"><b>processor</b></a>, <a href="index.html#refartifact133125"><b>pluginadapter</b></a>, <a href="index.html#refartifact129541"><b>effect</b></a>, <a href="index.html#refartifact131205"><b>tool</b></a>, <a href="index.html#refartifact131333"><b>segmentationtool</b></a>, <a href="index.html#refartifact133893"><b>aframe</b></a>, <a href="index.html#refartifact130821"><b>assembler</b></a>, <a href="index.html#refartifact132485"><b>trafo</b></a>, <a href="index.html#refartifact129157"><b>explicitplacement</b></a>, <a href="index.html#refartifact130309"><b>auto</b></a>, <a href="index.html#refartifact133637"><b>glrender</b></a>, <a href="index.html#refartifact132613"><b>link</b></a>, <a href="index.html#refartifact134405"><b>parameter</b></a>, <a href="index.html#refartifact131973"><b>renderengine</b></a>, <a href="index.html#refartifact130053"><b>allocation</b></a>, <a href="index.html#refartifact134021"><b>vframe</b></a>, <a href="index.html#refartifact130565"><b>toolfactory</b></a>, <a href="index.html#refartifact133381"><b>arender</b></a>, <a href="index.html#refartifact131845"><b>renderstate</b></a>, <a href="index.html#refartifact130181"><b>label</b></a>, <a href="index.html#refartifact134149"><b>glbuf</b></a>, <a href="index.html#refartifact132357"><b>procnode</b></a>, <a href="index.html#refartifact130949"><b>stateproxy</b></a>, <a href="index.html#refartifact132741"><b>hub</b></a>, <a href="index.html#refartifact131077"><b>buildable</b></a>, <a href="index.html#refartifact129285"><b>abstractmo</b></a>, <a href="index.html#refartifact131461"><b>nodecreatertool</b></a>, <a href="index.html#refartifact132869"><b>projector</b></a>, <a href="index.html#refartifact134661"><b>interpolator</b></a>, <a href="index.html#refartifact128645"><b>edl</b></a>, <a href="index.html#refartifact128773"><b>fixture</b></a>, <a href="index.html#refartifact133253"><b>glpipe</b></a>, <a href="index.html#refartifact132229"><b>exitnode</b></a>, <a href="index.html#refartifact131717"><b>pathmanager</b></a>, <a href="index.html#refartifact128901"><b>track</b></a></p>
<a name="refartifact128133"></a>
<table><tr><td><div class="element">Artifact <b>main</b></div></td></tr></table>
<p>Artifact <i>source</i></p>
@ -378,6 +378,10 @@ Documentation</title>
<table><tr><td><div class="element">Artifact <b>meta</b></div></td></tr></table>
<p>abstract base class of all MObjects representing meta data or processing instructions<br /></p>
<p>Artifact <i>source</i> associated with : <a href="class129157.html#refclass129157"><b>Meta</b></a></p>
<a name="refartifact139013"></a>
<table><tr><td><div class="element">Artifact <b>chainplacement</b></div></td></tr></table>
<p>Chaining and additionally constraining Placements<br /></p>
<p>Artifact <i>source</i> associated with : <a href="class139909.html#refclass139909"><b>ChainPlacement</b></a></p>
<a name="refartifact129797"></a>
<table><tr><td><div class="element">Artifact <b>fixedplacement</b></div></td></tr></table>
<p>Artifact <i>source</i> associated with : <a href="class129285.html#refclass129285"><b>FixedPlacement</b></a></p>
@ -642,6 +646,7 @@ Documentation</title>
<table><tr><td><div class="element">Class <b><a href="class134533.html#refclass134533"><b>Parameter</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class134661.html#refclass134661"><b>ParamProvider</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class134789.html#refclass134789"><b>Interpolator</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class139909.html#refclass139909"><b>ChainPlacement</b></a></b></div></td></tr></table>
</div>
<a name="refpackage128901"></a>
<h3 class ="package">2.2.2 Package Builder</h3>

View file

@ -34,8 +34,8 @@
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact131077" target = "projectFrame"><b>buildable</b></a></td><td>artifact</td><td>marker interface denoting any MObject able to be treated by Tools</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation128517" target = "projectFrame"><b>buildEngine</b></a></td><td>operation</td><td>Main Operation of the Builder: create a render engine for a given part of the timeline</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent128005" target = "projectFrame"><b>Builder</b></a></td><td>component</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refpackage130565" target = "projectFrame"><b>builder</b></a></td><td>package</td><td>sourcecode package<br /><br />The Builder creating the Render Engine,<br />located within the MObject Subsystem</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refpackage128901" target = "projectFrame"><b>Builder</b></a></td><td>package</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refpackage130565" target = "projectFrame"><b>builder</b></a></td><td>package</td><td>sourcecode package<br /><br />The Builder creating the Render Engine,<br />located within the MObject Subsystem</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram129285" target = "projectFrame"><b>Builder Entities</b></a></td><td>class diagram</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass view128261" target = "projectFrame"><b>Builder Workings</b></a></td><td>class view</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class130565.html#refclass130565" target = "projectFrame"><b>BuilderFacade</b></a></td><td>class</td><td>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</td></tr>

View file

@ -23,32 +23,36 @@
<tr bgcolor=#f0f0f0><td><a href="class137221.html#refclass137221" target = "projectFrame"><b>Category</b></a></td><td>class</td><td>tree like classification of Assets</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact135941" target = "projectFrame"><b>category</b></a></td><td>artifact</td><td>tree like classification of Assets</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute130309" target = "projectFrame"><b>cause</b></a></td><td>attribute</td><td>a copy of the first exception encountered in this exception chain</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation145413" target = "projectFrame"><b>chain</b></a></td><td>relation</td><td>Chain of additional Placements further constraining the position of this MObject</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation134277" target = "projectFrame"><b>chain</b></a></td><td>operation</td><td>create and add another Placement for this media object, thus increasingly constraining the (possible) position of this object.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact139013" target = "projectFrame"><b>chainplacement</b></a></td><td>artifact</td><td>Chaining and additionally constraining Placements</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class139909.html#refclass139909" target = "projectFrame"><b>ChainPlacement</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation129633" target = "projectFrame"><b>checked_in</b></a></td><td>relation</td><td>checked_in objects are subject of cache aging and must be not in use</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation129290" target = "projectFrame"><b>checked_out</b></a></td><td>relation</td><td>this list keeps all mappings which are in use, and thus prevents them from Cache aging</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact128005" target = "projectFrame"><b>Cinelerra3</b></a></td><td>artifact</td><td>the main executable to be built</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refpackage129" target = "projectFrame"><b>cinelerra3</b></a></td><td>package</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129541" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129797" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130053" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130181" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130309" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129029" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130437" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130565" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130693" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131589" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132229" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132357" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132485" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133509" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128005" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128133" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128261" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133509" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130693" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130565" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130437" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130309" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130181" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130053" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129029" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129797" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129541" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129285" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128133" target = "projectFrame"><b>class instance</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation133765" target = "projectFrame"><b>clear</b></a></td><td>operation</td><td>clear current session contents <br />without resetting overall session config.<br />Afterwards, the session will contain only one <br />empty EDL, while all Assets are retained.<br /></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class137349.html#refclass137349" target = "projectFrame"><b>Clip</b></a></td><td>class</td><td>bookkeeping (asset) view of a media clip.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact129413" target = "projectFrame"><b>clip</b></a></td><td>artifact</td><td>a Media Clip</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact136325" target = "projectFrame"><b>clip</b></a></td><td>artifact</td><td>bookkeeping (asset) view of a media clip.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact129413" target = "projectFrame"><b>clip</b></a></td><td>artifact</td><td>a Media Clip</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class128901.html#refclass128901" target = "projectFrame"><b>Clip</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation128901" target = "projectFrame"><b>clips</b></a></td><td>relation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class137861.html#refclass137861" target = "projectFrame"><b>Codec</b></a></td><td>class</td><td>description of some media data decoder or encoder facility</td></tr>

View file

@ -18,14 +18,14 @@
<table>
<tr bgcolor=#f0f0f0><td align=center><b>Name</b></td><td align=center><b>Kind</b></td><td align=center><b>Description</b></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact128645" target = "projectFrame"><b>edl</b></a></td><td>artifact</td><td>the (high level) Edit Decision List within the current Session</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class128133.html#refclass128133" target = "projectFrame"><b>EDL</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refcomponent128389" target = "projectFrame"><b>EDL</b></a></td><td>component</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class128133.html#refclass128133" target = "projectFrame"><b>EDL</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refobject diagram128773" target = "projectFrame"><b>EDL Example1</b></a></td><td>object diagram</td><td>A simple example showing how the actual objects are placed in the Fixture (=definitive playlist). It shows a Video and Audio clip placed on two tracks</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refobject diagram128901" target = "projectFrame"><b>EDL Example2</b></a></td><td>object diagram</td><td>More 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</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation128005" target = "projectFrame"><b>edls</b></a></td><td>relation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class137733.html#refclass137733" target = "projectFrame"><b>Effect</b></a></td><td>class</td><td>Effect or media processing component</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact137221" target = "projectFrame"><b>effect</b></a></td><td>artifact</td><td>Effect or media processing component</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact129541" target = "projectFrame"><b>effect</b></a></td><td>artifact</td><td>EDL representation of a pluggable and automatable effect.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact137221" target = "projectFrame"><b>effect</b></a></td><td>artifact</td><td>Effect or media processing component</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class129029.html#refclass129029" target = "projectFrame"><b>Effect</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation138885" target = "projectFrame"><b>elements</b></a></td><td>relation</td><td>relevant MObjects comprising this segment. TODO: actually necessary??</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation132997" target = "projectFrame"><b>enable</b></a></td><td>operation</td><td>change the enabled status of this asset. Note the corresponding #isActive predicate may depend on the enablement status of parent assets as well</td></tr>

View file

@ -24,8 +24,8 @@
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation133381" target = "projectFrame"><b>howtoProc</b></a></td><td>operation</td><td>@return descriptor how to build a render pipeline corresponding to this media</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class132101.html#refclass132101" target = "projectFrame"><b>Hub</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact132741" target = "projectFrame"><b>hub</b></a></td><td>artifact</td><td>special ProcNode used to build data distributing connections</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133893" target = "projectFrame"><b>HUE</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133253" target = "projectFrame"><b>HUE</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133893" target = "projectFrame"><b>HUE</b></a></td><td>class instance</td><td></td></tr>
</table>
</body>
</html>

View file

@ -20,8 +20,8 @@
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute130437" target = "projectFrame"><b>id</b></a></td><td>attribute</td><td>Asset primary key.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass diagram128309" target = "projectFrame"><b>In Memory Database</b></a></td><td>class diagram</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refactivity action pin128133" target = "projectFrame"><b>inFixture</b></a></td><td>activity action pin</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131461" target = "projectFrame"><b>input</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134149" target = "projectFrame"><b>input</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131461" target = "projectFrame"><b>input</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132869" target = "projectFrame"><b>input</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation131461" target = "projectFrame"><b>instance</b></a></td><td>operation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation143621" target = "projectFrame"><b>instructions</b></a></td><td>relation</td><td></td></tr>

View file

@ -18,6 +18,7 @@
<table>
<tr bgcolor=#f0f0f0><td align=center><b>Name</b></td><td align=center><b>Kind</b></td><td align=center><b>Description</b></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute130565" target = "projectFrame"><b>name</b></a></td><td>attribute</td><td>element ID, comprehensible but sanitized. The tuple (category, name, org) is unique.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation145541" target = "projectFrame"><b>next</b></a></td><td>relation</td><td>next additional Placement, if any</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact131461" target = "projectFrame"><b>nodecreatertool</b></a></td><td>artifact</td><td>central Tool implementing the Renderengine building</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class134405.html#refclass134405" target = "projectFrame"><b>NodeCreatorTool</b></a></td><td>class</td><td>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.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation144133" target = "projectFrame"><b>nodes</b></a></td><td>relation</td><td></td></tr>

View file

@ -19,9 +19,9 @@
<tr bgcolor=#f0f0f0><td align=center><b>Name</b></td><td align=center><b>Kind</b></td><td align=center><b>Description</b></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute129029" target = "projectFrame"><b>offset</b></a></td><td>attribute</td><td>Offset the actual position by this (time) value relative to the anchor point. TODO: Representation?</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute130821" target = "projectFrame"><b>org</b></a></td><td>attribute</td><td>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 cinelerra-3 codebase is "cin3".</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134405" target = "projectFrame"><b>ouput</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133125" target = "projectFrame"><b>ouput</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131333" target = "projectFrame"><b>ouput</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134405" target = "projectFrame"><b>ouput</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class138117.html#refclass138117" target = "projectFrame"><b>OutPort</b></a></td><td>class</td><td>structural asset corresponding to some port generating media output</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact137605" target = "projectFrame"><b>outport</b></a></td><td>artifact</td><td>structural asset corresponding to some port generating media output</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation132613" target = "projectFrame"><b>output</b></a></td><td>relation</td><td></td></tr>

View file

@ -26,7 +26,7 @@
<tr bgcolor=#f0f0f0><td><a href="class130437.html#refclass130437" target = "projectFrame"><b>PathManager</b></a></td><td>class</td><td>While building a render engine, this Strategy class decides on the actual render strategy in accordance to the current controller settings (system state)</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact131717" target = "projectFrame"><b>pathmanager</b></a></td><td>artifact</td><td>Manager for deciding the actual render strategy</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact129029" target = "projectFrame"><b>placement</b></a></td><td>artifact</td><td>Key Abstraction: a way to place and locate a Media Object</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class128645.html#refclass128645" target = "projectFrame"><b>Placement</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class128645.html#refclass128645" target = "projectFrame"><b>Placement</b></a></td><td>class</td><td>used to specify the position of a MObject in the EDL. This can be done in various ways (absolute, relative). <br />Placement at the same time acts as (refcounting) smart pointer for accessing the MObject.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation129413" target = "projectFrame"><b>play</b></a></td><td>operation</td><td>TODO: will probably be handled differently (see Cehteh)</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refnode128261" target = "projectFrame"><b>playlist</b></a></td><td>node</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refattribute128901" target = "projectFrame"><b>plugID</b></a></td><td>attribute</td><td>Identifier of the Plugin to be used</td></tr>

View file

@ -40,13 +40,13 @@
<tr bgcolor=#f0f0f0><td><a href="index.html#refrelation129541" target = "projectFrame"><b>tracks</b></a></td><td>relation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class131845.html#refclass131845" target = "projectFrame"><b>Trafo</b></a></td><td>class</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact132485" target = "projectFrame"><b>trafo</b></a></td><td>artifact</td><td>transforming processing Node </td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation130565" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation130693" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation130309" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation130437" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation130181" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation130565" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation129925" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation130053" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation130181" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refoperation129797" target = "projectFrame"><b>treat</b></a></td><td>operation</td><td>This operation is to be overloaded for the specific MObject subclasses to be treated.</td></tr>
</table>
</body>

View file

@ -22,20 +22,20 @@
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact134021" target = "projectFrame"><b>vframe</b></a></td><td>artifact</td><td>a buffer and render process holding a Video frame</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131973" target = "projectFrame"><b>vid1</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133381" target = "projectFrame"><b>vid1</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129925" target = "projectFrame"><b>vid_A</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129413" target = "projectFrame"><b>vid_A</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134021" target = "projectFrame"><b>vid_a</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131717" target = "projectFrame"><b>vid_a</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128645" target = "projectFrame"><b>vid_A</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129413" target = "projectFrame"><b>vid_A</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131717" target = "projectFrame"><b>vid_a</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129925" target = "projectFrame"><b>vid_A</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134021" target = "projectFrame"><b>vid_a</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133765" target = "projectFrame"><b>video</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134533" target = "projectFrame"><b>video</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance131077" target = "projectFrame"><b>video</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134533" target = "projectFrame"><b>video</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132741" target = "projectFrame"><b>video</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance132997" target = "projectFrame"><b>video1</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133637" target = "projectFrame"><b>video1</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129157" target = "projectFrame"><b>video1</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance134277" target = "projectFrame"><b>video1</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance133637" target = "projectFrame"><b>video1</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance128517" target = "projectFrame"><b>video1</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance129157" target = "projectFrame"><b>video1</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refclass instance130949" target = "projectFrame"><b>video1</b></a></td><td>class instance</td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class132997.html#refclass132997" target = "projectFrame"><b>VRender</b></a></td><td>class</td><td>Representation of a Video render process. (Encapsulates the video buffers for the actual calculations)</td></tr>
<tr bgcolor=#f0f0f0><td><a href="index.html#refartifact133509" target = "projectFrame"><b>vrender</b></a></td><td>artifact</td><td>Representation of a Video render process</td></tr>

View file

@ -21,6 +21,7 @@
<tr bgcolor=#f0f0f0><td><a href="class131077.html#refoperation128901"><b>build</b></a></td><td><a href="class131077.html#refclass131077"><b>Assembler</b></a></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class130565.html#refoperation128517"><b>buildEngine</b></a></td><td><a href="class130565.html#refclass130565"><b>BuilderFacade</b></a></td><td>Main Operation of the Builder: create a render engine for a given part of the timeline</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class130437.html#refoperation128261"><b>buildProcessor</b></a></td><td><a href="class130437.html#refclass130437"><b>PathManager</b></a></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class128645.html#refoperation134277"><b>chain</b></a></td><td><a href="class128645.html#refclass128645"><b>Placement</b></a></td><td>create and add another Placement for this media object, thus increasingly constraining the (possible) position of this object.</td></tr>
<tr bgcolor=#f0f0f0><td><a href="class139781.html#refoperation133765"><b>clear</b></a></td><td><a href="class139781.html#refclass139781"><b>SessManager</b></a></td><td>clear current session contents <br />without resetting overall session config.<br />Afterwards, the session will contain only one <br />empty EDL, while all Assets are retained.<br /></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class130693.html#refoperation128773"><b>configure</b></a></td><td><a href="class130693.html#refclass130693"><b>ToolFactory</b></a></td><td></td></tr>
<tr bgcolor=#f0f0f0><td><a href="class136709.html#refoperation133253"><b>createClip</b></a></td><td><a href="class136709.html#refclass136709"><b>Media</b></a></td><td>create a (possibly compound) Clip refering to this media, ready to be added to the EDL.</td></tr>

View file

@ -27,6 +27,7 @@
#include "common/time.hpp"
#include "common/factory.hpp"
#include "proc/mobject/mobject.hpp"
#include "proc/mobject/session/chainplacement.hpp"
#include "proc/mobject/session/track.hpp"
@ -34,12 +35,11 @@ namespace mobject
{
class Placement;
class ExplicitPlacement;
class PlacementFactory;
class Placement
template<class OBJ> /////TODO: unsolved design problem here!
class Placement : public shared_ptr<OBJ>
{
protected:
typedef cinelerra::Time Time;
@ -47,18 +47,7 @@ namespace mobject
public:
MObject* subject;
/**
* styles of placement.
*/
enum Style
{
FIXED,
RELATIVE
};
static PlacementFactory create;
ChainPlacement chain;
/** resolve the network of placement and
* provide the resulting (explicit) placement.
@ -67,28 +56,11 @@ namespace mobject
protected:
Placement ();
friend class PlacementFactory;
};
typedef shared_ptr<Placement> PPla;
/**
* Factory specialized for creating Placement objects.
*/
class PlacementFactory : public cinelerra::Factory<Placement>
{
public:
typedef shared_ptr<Placement> PType;
typedef cinelerra::Time Time;
PType operator() (Placement::Style, Time, PMO subject);
};
} // namespace mobject

View file

@ -0,0 +1,38 @@
/*
ChainPlacement - Chaining and additionally constraining Placements
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
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.
* *****************************************************/
#include "proc/mobject/session/chainplacement.hpp"
#include "proc/mobject/placement.hpp"
namespace mobject
{
namespace session
{
/** */
} // namespace mobject::session
} // namespace mobject

View file

@ -0,0 +1,55 @@
/*
CHAINPLACEMENT.hpp - Chaining and additionally constraining Placements
Copyright (C) CinelerraCV
2007, Christian Thaeter <ct@pipapo.org>
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.
*/
#ifndef MOBJECT_SESSION_CHAINPLACEMENT_H
#define MOBJECT_SESSION_CHAINPLACEMENT_H
namespace mobject
{
class Placement;
namespace session
{
class FixedPlacement;
class RelativePlacement;
template<class MO>
struct ChainPlacement
{
protected:
/** next additional Placement, if any */
Placement<MO> * next;
public:
FixedPlacement& operator() (Time);
};
} // namespace mobject::session
} // namespace mobject
#endif

View file

@ -72,7 +72,7 @@ namespace mobject
// using the Placement interface
// TODO: how to handle unterdetermined Placement? Throw?
FixedPlacement & fixpla = pc.addPlacement(Placement::FIXED, Time(1)); // TODO: the track??
FixedPlacement & fixpla = pc.chain(Placement::FIXED, Time(1)); // TODO: the track??
ExplicitPlacement expla = pc.resolve();
ASSERT (expla.time == 1);
ASSERT (!expla.isOverdetermined());
@ -80,7 +80,7 @@ namespace mobject
ASSERT (*fixpla == *pc);
// now overconstraining with another Placement
pc.addPlacement(Placement::FIXED, Time(2));
pc.chain(Placement::FIXED, Time(2));
expla = pc.resolve();
ASSERT (expla.time == 2); // the latest addition wins
ASSERT (expla.isOverdetermined());

View file

@ -22,7 +22,7 @@ classcanvas 129413 class_ref 128517 // MObject
end
classcanvas 129669 class_ref 128645 // Placement
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 574 129 2000
xyz 539 121 2000
end
classcanvas 129925 class_ref 128389 // Track
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
@ -46,15 +46,15 @@ classcanvas 131973 class_ref 129157 // Meta
end
classcanvas 132229 class_ref 129285 // FixedPlacement
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 665 373 2000
xyz 678 374 2005
end
classcanvas 132869 class_ref 129413 // RelativePlacement
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 479 276 2000
xyz 477 342 2000
end
classcanvas 134149 class_ref 129541 // Allocation
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 590 373 2000
xyz 592 342 2000
end
classcanvas 134405 class_ref 129669 // Label
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
@ -62,7 +62,7 @@ classcanvas 134405 class_ref 129669 // Label
end
classcanvas 135429 class_ref 129797 // ExplicitPlacement
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 660 233 2004
xyz 673 258 2004
end
classcanvas 135813 class_ref 129797 // ExplicitPlacement
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
@ -73,7 +73,7 @@ classcanvas 136581 class_ref 129925 // Auto
xyz 375 466 2005
end
note 136837 "Placement \"locates\" a Media Object"
xyzwh 368 83 3005 207 36
xyzwh 370 73 3005 207 36
textcanvas 136965 "the Timeline is a list of placements reduced to absolute coordinates (time, track)"
xyzwh 464 925 2000 121 90
textcanvas 137093 "Fixture is the actual assembly of various Media Objects ready to be performed"
@ -102,6 +102,10 @@ classcanvas 139653 class_ref 139781 // SessManager
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 101 301 2000
end
classcanvas 141317 class_ref 139909 // ChainPlacement
draw_all_relations default hide_attributes default hide_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_infonote default shadow default
xyz 677 148 2000
end
relationcanvas 128389 relation_ref 128005 // <directional aggregation by value>
from ref 128005 z 1999 to ref 128133
role_a_pos 201 603 3000 no_role_b
@ -152,34 +156,29 @@ relationcanvas 132101 relation_ref 129669 // <generalisation>
from ref 131973 z 1999 to ref 130949
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 132485 relation_ref 129797 // <generalisation>
from ref 132229 z 1999 to ref 129669
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 132997 relation_ref 129925 // <unidirectional association>
from ref 132869 z 1999 to point 529 240
line 133893 z 1999 to ref 129413
role_a_pos 413 204 3000 no_role_b
multiplicity_a_pos 401 197 3000 multiplicity_b_pos 515 251 3000
multiplicity_a_pos 401 197 3000 multiplicity_b_pos 515 317 3000
relationcanvas 134533 relation_ref 130309 // <generalisation>
from ref 134405 z 1999 to ref 131973
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 135173 relation_ref 130565 // <generalisation>
from ref 134149 z 1999 to point 610 312
line 140037 z 1999 to ref 129669
from ref 134149 z 1999 to point 576 266
line 142853 z 1999 to ref 129669
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 135301 relation_ref 130693 // <generalisation>
from ref 132869 z 1999 to ref 129669
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 135557 relation_ref 130821 // <realization>
from ref 132229 z 1999 to ref 135429
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 135685 relation_ref 130949 // <generalisation>
from ref 135429 z 1999 to ref 129669
geometry VHV
from ref 135429 z 1999 to point 724 236
line 141445 z 1999 to point 576 236
line 141573 z 1999 to ref 129669
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 135941 relation_ref 131077 // <directional aggregation by value>
@ -209,7 +208,7 @@ relationcanvas 138757 relation_ref 137093 // <directional aggregation>
geometry VHr
from ref 138629 z 1999 stereotype "<<list>>" xyz 479 716 3000 to point 517 714
line 138885 z 1999 to ref 135813
role_a_pos 524 717 3000 no_role_b
role_a_pos 529 783 3000 no_role_b
multiplicity_a_pos 505 783 3000 no_multiplicity_b
relationcanvas 139141 relation_ref 140805 // <generalisation>
from ref 139013 z 1999 to ref 131461
@ -227,6 +226,20 @@ relationcanvas 139781 relation_ref 142853 // <unidirectional association>
multiplicity_a_pos 126 426 3000 no_multiplicity_b
relationcanvas 140165 relation_ref 142981 // <unidirectional association>
from ref 129669 z 1999 to ref 129413
role_a_pos 413 146 3000 no_role_b
multiplicity_a_pos 403 146 3000 multiplicity_b_pos 547 148 3000
role_a_pos 401 145 3000 no_role_b
multiplicity_a_pos 401 178 3000 multiplicity_b_pos 512 178 3000
relationcanvas 140293 relation_ref 143109 // <generalisation>
from ref 132229 z 1999 to ref 135429
no_role_a no_role_b
no_multiplicity_a no_multiplicity_b
relationcanvas 142213 relation_ref 143237 // <unidirectional association>
from ref 129669 z 1999 to ref 141317
role_a_pos 640 145 3000 no_role_b
multiplicity_a_pos 664 171 3000 no_multiplicity_b
relationcanvas 142341 relation_ref 143365 // <unidirectional association>
from ref 141317 z 1999 to point 724 207
line 142597 z 1999 to point 637 207
line 142725 z 1999 to ref 129669
role_a_pos 640 191 3000 no_role_b
no_multiplicity_a no_multiplicity_b
end

View file

@ -1,6 +1,6 @@
format 40
"MObject" // ProcessingLayer::MObject
revision 23
revision 24
modified_by 5 "hiv"
// class settings
//class diagram settings
@ -433,6 +433,8 @@ ${members}};
"
explicit_switch_type ""
comment "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."
operation 128005 "resolve"
public explicit_return_type "ExplicitPlacement [ProcessingLayer::MObject]&"
nparams 0
@ -458,6 +460,33 @@ ${class}::${name} ${(}${)}${const}${volatile} ${throw}${staticnl}
classrelation_ref 144901 // subject (<unidirectional association>)
b multiplicity "1..*" parent class_ref 128517 // MObject
end
operation 134277 "chain"
public explicit_return_type ""
nparams 1
param in name "style" explicit_type ""
cpp_decl " ${comment}${friend}${static}${inline}${virtual}${type} ${name} ${(}const ${t0}& ${p0}${)}${const}${volatile} ${throw}${abstract};"
cpp_def "${comment}${inline}${type}
${class}::${name} ${(}const ${t0}& ${p0}${)}${const}${volatile} ${throw}${staticnl}
{
${body}
}
"
comment "create and add another Placement for this media object, thus increasingly constraining the (possible) position of this object."
end
classrelation 145413 // chain (<unidirectional association>)
relation 143237 --->
a role_name "chain" multiplicity "1" protected
comment "Chain of additional Placements further constraining the position of this MObject"
cpp default " ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value};
"
classrelation_ref 145413 // chain (<unidirectional association>)
b multiplicity "" parent class_ref 139909 // ChainPlacement
end
end
class 129797 "ExplicitPlacement"
@ -683,19 +712,11 @@ ${inlines}
idl_decl ""
explicit_switch_type ""
classrelation 130437 // <generalisation>
relation 129797 ---|>
classrelation 145285 // <generalisation>
relation 143109 ---|>
a public
cpp default "${type}"
classrelation_ref 130437 // <generalisation>
b multiplicity "" parent class_ref 128645 // Placement
end
classrelation 131461 // <realization>
relation 130821 -_-|>
a public
cpp default "${type}"
classrelation_ref 131461 // <realization>
classrelation_ref 145285 // <generalisation>
b multiplicity "" parent class_ref 129797 // ExplicitPlacement
end
end
@ -1058,6 +1079,28 @@ ${inlines}
comment "Provides the implementation for getting the acutal value of a time varying or automated effect/plugin parameter"
end
class 139909 "ChainPlacement"
visibility package
cpp_decl "${comment}${template}class ${name}${inherit}
{
${members} };
${inlines}
"
java_decl ""
idl_decl ""
explicit_switch_type ""
classrelation 145541 // next (<unidirectional association>)
relation 143365 --->
a role_name "next" multiplicity "" protected
comment "next additional Placement, if any"
cpp default " ${comment}${static}${mutable}${volatile}${const}${type}* ${name}${value};
"
classrelation_ref 145541 // next (<unidirectional association>)
b multiplicity "" parent class_ref 128645 // Placement
end
end
end
package_ref 128901 // Builder

View file

@ -1,6 +1,6 @@
format 40
"ProcessingLayer" // ProcessingLayer
revision 3
revision 4
modified_by 5 "hiv"
// class settings
//class diagram settings
@ -26,7 +26,7 @@ format 40
package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
show_infonote default drawing_language default
package_ref 128133 // AssetManager
package_ref 128133 // Asset
package_ref 128261 // MObject
@ -222,8 +222,6 @@ format 40
"100"
end
relations
relation_ref 128645 // <association>
classinstance_ref 130053 //
end
end
@ -248,8 +246,6 @@ format 40
"\"Hue\""
end
relations
relation_ref 128645 // <association>
classinstance_ref 130309 //
end
end
@ -276,8 +272,6 @@ format 40
"\"Hue\""
end
relations
relation_ref 128645 // <association>
classinstance_ref 130309 //
end
end

View file

@ -1,6 +1,6 @@
format 40
"session" // design::codegen::proc::mobject::session
revision 9
revision 10
modified_by 5 "hiv"
// class settings
//class diagram settings
@ -511,6 +511,45 @@ ${namespace_end}"
comment "abstract base class of all MObjects representing meta data or processing instructions"
end
artifact 139013 "chainplacement"
stereotype "source"
cpp_h "/*
${NAME}.hpp - ${description}
@{CopyrightClaim}@{GPLHeader}
*/
#ifndef ${NAMESPACE}_${NAME}_H
#define ${NAMESPACE}_${NAME}_H
${includes}
${declarations}
${namespace_start}
${definition}
${namespace_end}
#endif
"
cpp_src "/*
${Name} - ${description}
@{CopyrightClaim}@{GPLHeader}
* *****************************************************/
${includes}
${namespace_start}
${members}
${namespace_end}"
associated_classes
class_ref 139909 // ChainPlacement
end
comment "Chaining and additionally constraining Placements"
end
artifact 129797 "fixedplacement"
stereotype "source"
cpp_h "/*

View file

@ -3,16 +3,18 @@ diagrams
classdiagram_ref 130309 // Asset Kinds
860 633 100 4 0 0
active classdiagram_ref 128133 // Session structure
860 633 100 4 89 0
860 633 100 4 0 0
classdiagram_ref 130437 // Media-Asset Relations
860 633 100 4 0 0
classdiagram_ref 128389 // Render Entities
688 506 100 4 120 0
end
show_stereotypes
selected attribute_ref 128133 // relType
selected class_ref 129285 // FixedPlacement
open
deploymentview_ref 128133 // EXE Deployment
deploymentview_ref 128773 // gen
deploymentview_ref 128901 // gen
classview_ref 128901 // Assets
class_ref 128517 // MObject
class_ref 128645 // Placement

View file

@ -1,6 +1,6 @@
format 40
"cinelerra3"
revision 32
revision 33
modified_by 5 "hiv"
cpp_root_dir "../../src/"

View file

@ -2079,14 +2079,23 @@ DAMAGE.
The fact of being placed in the [[Session|SessionOverview]]/[[EDL]]is constitutive for all sorts of [[MObject]]s, without Placement they make no sense. Thus &amp;mdash; technically &amp;mdash; Placements act as ''smart pointers''. Of course, there are several kinds of Placements and they are templated on the type of MObject they are refering to. Placements can be //aggregated// to increasingly constrain the resulting &quot;location&quot; of the refered ~MObject. See &amp;rarr; [[handling of Placements|PlacementHandling]] for more details</pre>
</div>
<div title="PlacementHandling" modifier="Ichthyostega" modified="200710100148" created="200710100124" tags="design" changecount="3">
<div title="PlacementHandling" modifier="Ichthyostega" modified="200710130309" created="200710100124" tags="design" changecount="4">
<pre>[[Placement]]s are at the very core of all [[editing operations|EditingOperations]], because they act as handles (smart pointers) to access the [[media objects|MObject]] to be manipulated. Moreover, Placements are the actual content of the EDL(s) and Fixture and thus are small objects with //value semantics//. Many editing tasks include finding some Placement in the EDL or directly take a ref to some Placement. By acting on the Placement object, we can in some cases change parameters of the way the media object is placed (e.g. adjust an offset), while by dereferencing the Placement object, we access the &quot;real&quot; media object (e.g. for trimming its length).
Placements are ''templated'' on the type of the actual ~MObject they refer to, thus defining the interface/methods usable on this object. Each Placement has a ''kind'', which determines its actual placing and locating behaviour, but besides that, we don't stress the identity of a placement object (~MObjects on the other hand //do have// a distinguishable identity): initially, you create a Placement of some specific kind (fixed, relative,...), but later on, you treat the placement polymorphically and don't care about its kind. The sole purpose of the placement's kind is to select some virtual function implementing the desired behaviour.
There is no limitation to one single Placement per ~MObject, indeed we can ''aggregate'' several Placements, resulting in their properties and constraints being combined to yield the actual position of the ~MObject refered by those Placements.
* {{red{to be worked out...}}} how to implement this, esp. the aggregation. Use a special &quot;placement aggregation&quot; subtype, or rather chain aggregated placements directly in the way a decorator works? And how to handle the case of a //over constrained// Placement?
!design decisions
* Placements can be aggregated in a sort of chain.
* resolving into an ExplicitPlacement traverses this chain
* //overconstraining// a placement is not an error, we just stop traversing the chain (ignoring the remaining additionla Placements) at the moment the position is completely defined.
* {{red{question...}}} how to implement this? externally, decorator-style or using the State pattern?
* {{red{problem...}}} how to get at the individual MObject sub-Interfaces. Why is this a Problem?
*# we want the EDL/Fixture to be a collection of Placements. This means, either we store pointers, or Placement needs to be //one// unique type!
*# but if Placement is //a single type//, then we can get only MObjects from a Placement.
*# then either we had to do everything by a visitor (which gets the concrete subtype dynamically), or we'd end up switching on type.
</pre>
</div>
<div title="Playlist" modifier="Ichthyostega" modified="200706250727" created="200706220456" tags="def" changecount="3">