diff --git a/src/doxygen.dox b/src/doxygen.dox index e794bd331..4a7746672 100644 --- a/src/doxygen.dox +++ b/src/doxygen.dox @@ -72,6 +72,10 @@ with the *ASCIIDOC* tool and published at the [Lumiera website](http://Lumiera.o @ingroup steam */ +/** @defgroup fixture Fixture and low-level-Model + @ingroup steam +*/ + /** @defgroup player Playback and Render Control @ingroup steam */ diff --git a/src/steam/common.hpp b/src/steam/common.hpp index cd474c660..62bb5ba28 100644 --- a/src/steam/common.hpp +++ b/src/steam/common.hpp @@ -126,6 +126,19 @@ namespace steam { }//(End)namespace mobject + + + /** + * Fixture and low-level-Model. + * The shared data structure used as render nodes network. + * It is created or updated by the [Builder](\ref session::builder) + * after any relevant change of \ref Session contents, while used + * by the engine as work data structure for the render jobs. + */ + namespace fixture { + + } + } //(End)namespace steam #endif /*STEAM_COMMON_H*/ diff --git a/src/steam/mobject/session/fixture.cpp b/src/steam/fixture/fixture.cpp similarity index 93% rename from src/steam/mobject/session/fixture.cpp rename to src/steam/fixture/fixture.cpp index fb1578308..78373f297 100644 --- a/src/steam/mobject/session/fixture.cpp +++ b/src/steam/fixture/fixture.cpp @@ -28,12 +28,11 @@ */ -#include "steam/mobject/session/fixture.hpp" +#include "steam/fixture/fixture.hpp" #include "include/logging.h" namespace steam { -namespace mobject { -namespace session { +namespace fixture { @@ -66,4 +65,4 @@ namespace session { -}}} // namespace steam::mobject::session +}} // namespace steam::fixture diff --git a/src/steam/mobject/session/fixture.hpp b/src/steam/fixture/fixture.hpp similarity index 89% rename from src/steam/mobject/session/fixture.hpp rename to src/steam/fixture/fixture.hpp index dc579eabf..28a931c51 100644 --- a/src/steam/mobject/session/fixture.hpp +++ b/src/steam/fixture/fixture.hpp @@ -35,15 +35,17 @@ ** of a more recent builder run. Ongoing render processes are also tracked per segment, ** which allows the individual calculation steps just to assume the data is "there". ** + ** @ingroup fixture + ** ** @todo WIP implementation of session core from 2010 ** @todo as of 2016, this effort is considered stalled but basically valid */ -#ifndef MOBJECT_SESSION_FIXTURE_H -#define MOBJECT_SESSION_FIXTURE_H +#ifndef STEAM_FIXTURE_FIXTURE_H +#define STEAM_FIXTURE_FIXTURE_H -#include "steam/mobject/session/segmentation.hpp" +#include "steam/fixture/segmentation.hpp" #include "steam/mobject/session/fork.hpp" #include "steam/mobject/explicitplacement.hpp" #include "steam/mobject/session/auto.hpp" @@ -60,12 +62,14 @@ using std::unique_ptr; namespace steam { -namespace mobject { -namespace session { +namespace fixture { + using mobject::session::Auto; + using mobject::ExplicitPlacement; /** + * @ingroup fixture * @todo 1/2012 Just a Placeholder. The real thing is not yet implemented. * @see http://lumiera.org/wiki/renderengine.html#Fixture */ @@ -86,7 +90,7 @@ namespace session { bool isValid() const; private: - virtual bool validate() + virtual bool validate() { TODO ("how to validate a Fixture?"); return false; @@ -94,11 +98,9 @@ namespace session { }; - - - typedef shared_ptr PFix; + using PFixture = shared_ptr; -}}} // namespace steam::mobject::session -#endif +}} // namespace steam::fixture +#endif /*STEAM_FIXTURE_FIXTURE_H*/ diff --git a/src/steam/mobject/session/segment.cpp b/src/steam/fixture/segment.cpp similarity index 90% rename from src/steam/mobject/session/segment.cpp rename to src/steam/fixture/segment.cpp index b977c41c3..b852145dc 100644 --- a/src/steam/mobject/session/segment.cpp +++ b/src/steam/fixture/segment.cpp @@ -26,17 +26,16 @@ ** @todo 2016 likely to stay, but expect some extensive rework */ -#include "steam/mobject/session/segment.hpp" +#include "steam/fixture/segment.hpp" #include "steam/mobject/explicitplacement.hpp" namespace steam { -namespace mobject { -namespace session { +namespace fixture { /** */ -}}} // namespace steam::mobject::session +}} // namespace steam::fixture diff --git a/src/steam/mobject/session/segment.hpp b/src/steam/fixture/segment.hpp similarity index 91% rename from src/steam/mobject/session/segment.hpp rename to src/steam/fixture/segment.hpp index b288da305..a6dd17cb3 100644 --- a/src/steam/mobject/session/segment.hpp +++ b/src/steam/fixture/segment.hpp @@ -28,8 +28,8 @@ */ -#ifndef MOBJECT_SESSION_SEGMENT_H -#define MOBJECT_SESSION_SEGMENT_H +#ifndef STEAM_FIXTURE_SEGMENT_H +#define STEAM_FIXTURE_SEGMENT_H #include @@ -40,9 +40,9 @@ using std::list; namespace steam { -namespace mobject { -namespace session { +namespace fixture { + using mobject::ExplicitPlacement; /** * For the purpose of building and rendering, the fixture (for each timeline) @@ -50,6 +50,7 @@ namespace session { * For each segment there is a RenderGraph (unit of the render engine) which * is able to render all ExitNodes for this segment. * + * @ingroup fixture * @todo 1/2012 Just a Placeholder. The real thing is not yet implemented. * @see http://lumiera.org/wiki/renderengine.html#Fixture */ @@ -71,5 +72,5 @@ namespace session { -}}} // namespace steam::mobject::session -#endif +}} // namespace steam::fixture +#endif /*STEAM_FIXTURE_SEGMENT_H*/ diff --git a/src/steam/mobject/session/segmentation.cpp b/src/steam/fixture/segmentation.cpp similarity index 88% rename from src/steam/mobject/session/segmentation.cpp rename to src/steam/fixture/segmentation.cpp index 9f5fd0608..1258e0674 100644 --- a/src/steam/mobject/session/segmentation.cpp +++ b/src/steam/fixture/segmentation.cpp @@ -1,5 +1,5 @@ /* - Segementation - Partitioning of a timeline for organising the render graph. + Segmentation - Partitioning of a timeline for organising the render graph. Copyright (C) Lumiera.org 2008, Hermann Vosseler @@ -27,14 +27,13 @@ */ #include "lib/error.hpp" -#include "steam/mobject/session/segmentation.hpp" -#include "steam/mobject/builder/fixture-change-detector.hpp" +#include "steam/fixture/segmentation.hpp" +//#include "steam/mobject/builder/fixture-change-detector.hpp" ///////////TODO namespace steam { -namespace mobject { -namespace session { +namespace fixture { namespace error = lumiera::error; @@ -79,4 +78,4 @@ namespace session { -}}} // namespace steam::mobject::session +}} // namespace steam::fixture diff --git a/src/steam/mobject/session/segmentation.hpp b/src/steam/fixture/segmentation.hpp similarity index 93% rename from src/steam/mobject/session/segmentation.hpp rename to src/steam/fixture/segmentation.hpp index 32bcf0e71..fb6a4d087 100644 --- a/src/steam/mobject/session/segmentation.hpp +++ b/src/steam/fixture/segmentation.hpp @@ -43,11 +43,11 @@ */ -#ifndef MOBJECT_SESSION_SEGMENTATION_H -#define MOBJECT_SESSION_SEGMENTATION_H +#ifndef STEAM_FIXTURE_SEGMENTATION_H +#define STEAM_FIXTURE_SEGMENTATION_H -#include "steam/mobject/session/segment.hpp" +#include "steam/fixture/segment.hpp" #include @@ -55,8 +55,7 @@ using std::list; namespace steam { -namespace mobject { -namespace session { +namespace fixture { /** @@ -65,6 +64,7 @@ namespace session { * The Segmentation defines and maintains this partitioning. Furthermore, * it is the general entry point for accessing the correct part of the engine * responsible for a given timeline time point. + * @ingroup fixture * @see SegmentationTool actually calculating the Segmentation * * @todo 1/2012 Just a Placeholder. The real thing is not yet implemented. @@ -84,5 +84,5 @@ namespace session { -}}} // namespace steam::mobject::session -#endif +}} // namespace steam::fixture +#endif /*STEAM_FIXTURE_SEGMENTATION_H*/ diff --git a/src/steam/mobject/builder/segmentation-tool.cpp b/src/steam/mobject/builder/segmentation-tool.cpp index 11840742d..10a030c36 100644 --- a/src/steam/mobject/builder/segmentation-tool.cpp +++ b/src/steam/mobject/builder/segmentation-tool.cpp @@ -37,7 +37,7 @@ namespace builder { using mobject::Buildable; using session::Clip; using session::Effect; - using session::Fixture; + using fixture::Fixture; /////////////////////////////////TICKET #414 diff --git a/src/steam/mobject/builder/segmentation-tool.hpp b/src/steam/mobject/builder/segmentation-tool.hpp index fd70efa17..28d176e41 100644 --- a/src/steam/mobject/builder/segmentation-tool.hpp +++ b/src/steam/mobject/builder/segmentation-tool.hpp @@ -37,8 +37,8 @@ #include "steam/mobject/builder/applicable-builder-target-types.hpp" -#include "steam/mobject/session/segmentation.hpp" -#include "steam/mobject/session/fixture.hpp" //////TODO really on the header?? +#include "steam/fixture/segmentation.hpp" +#include "steam/fixture/fixture.hpp" //////TODO really on the header?? #include @@ -63,7 +63,7 @@ namespace builder { { public: - SegmentationTool (session::Fixture &) ; + SegmentationTool (fixture::Fixture &) ; void treat (mobject::session::Clip& clip) ; void treat (mobject::session::Effect& effect) ; @@ -75,7 +75,7 @@ namespace builder { bool empty() const; private: - typedef mobject::session::Segment Segment; + using Segment = fixture::Segment; /** Partitioning of the Timeline to be created by this tool. */ //session::Segmentation& segments_; diff --git a/src/steam/mobject/builder/toolfactory.cpp b/src/steam/mobject/builder/toolfactory.cpp index 2f54cd953..b1b532dca 100644 --- a/src/steam/mobject/builder/toolfactory.cpp +++ b/src/steam/mobject/builder/toolfactory.cpp @@ -43,21 +43,21 @@ namespace builder { struct BuildProcessState { - session::Fixture & fixedTimeline_; + fixture::Fixture & fixedTimeline_; unique_ptr procSegment_; unique_ptr segmentation_; unique_ptr fabrication_; - BuildProcessState (session::Fixture& theTimeline) + BuildProcessState (fixture::Fixture& theTimeline) : fixedTimeline_(theTimeline), procSegment_(new engine::RenderGraph()) { } }; - ToolFactory::ToolFactory (session::Fixture& theFixture) + ToolFactory::ToolFactory (fixture::Fixture& theFixture) : state_(new BuildProcessState (theFixture)) { ENSURE (state_->fixedTimeline_.isValid()); diff --git a/src/steam/mobject/builder/toolfactory.hpp b/src/steam/mobject/builder/toolfactory.hpp index e86778549..ddab9e901 100644 --- a/src/steam/mobject/builder/toolfactory.hpp +++ b/src/steam/mobject/builder/toolfactory.hpp @@ -33,7 +33,7 @@ #ifndef MOBJECT_BUILDER_TOOLFACTORY_H #define MOBJECT_BUILDER_TOOLFACTORY_H -#include "steam/mobject/session/fixture.hpp" +#include "steam/fixture/fixture.hpp" #include "steam/mobject/builder/segmentation-tool.hpp" #include "steam/mobject/builder/nodecreatortool.hpp" #include "steam/mobject/builder/mould.hpp" @@ -63,7 +63,7 @@ namespace builder { public: /** prepare a builder tool kit for dealing with the given Fixture, * which is a snapshot of some timeline made explicit. */ - ToolFactory (session::Fixture&); + ToolFactory (fixture::Fixture&); /** prepare a tool for properly segmenting the Fixture */ SegmentationTool & configureSegmentation (); diff --git a/src/steam/mobject/builderfacade.cpp b/src/steam/mobject/builderfacade.cpp index 2b83410b2..593e4b7df 100644 --- a/src/steam/mobject/builderfacade.cpp +++ b/src/steam/mobject/builderfacade.cpp @@ -28,7 +28,7 @@ #include "steam/mobject/builder/common.hpp" #include "steam/mobject/builderfacade.hpp" -#include "steam/mobject/session/fixture.hpp" +#include "steam/fixture/fixture.hpp" namespace steam { namespace mobject { diff --git a/src/steam/mobject/explicitplacement.hpp b/src/steam/mobject/explicitplacement.hpp index 800da48e2..608bc3bfb 100644 --- a/src/steam/mobject/explicitplacement.hpp +++ b/src/steam/mobject/explicitplacement.hpp @@ -57,6 +57,7 @@ namespace mobject { * contains only ExplicitPlacement objects and is processed * by the Builder to create the render engine node network. * + * @ingroup fixture * @see Placement#resolve factory method for deriving an ExplicitPlacement */ class ExplicitPlacement : public Placement diff --git a/src/steam/mobject/session.hpp b/src/steam/mobject/session.hpp index 8ef74aa5b..0f2bb6564 100644 --- a/src/steam/mobject/session.hpp +++ b/src/steam/mobject/session.hpp @@ -67,14 +67,16 @@ namespace asset { class Timeline; typedef lib::P PTimeline; class Sequence; typedef lib::P PSequence; } +namespace fixture { + class Fixture; + using PFixture = std::shared_ptr; +} namespace mobject { namespace session { class SessManager; class ElementQuery; - class Fixture; - typedef std::shared_ptr PFix; } typedef session::SessManager& PSess; ///< acts as a "PImpl" smart ptr @@ -137,7 +139,7 @@ namespace mobject { virtual MObjectRef getRoot() = 0; - virtual session::PFix& getFixture () = 0; + virtual fixture::PFixture& getFixture () = 0; virtual void rebuildFixture () = 0; }; diff --git a/src/steam/mobject/session/session-impl.cpp b/src/steam/mobject/session/session-impl.cpp index 431b8aa2d..4242c1710 100644 --- a/src/steam/mobject/session/session-impl.cpp +++ b/src/steam/mobject/session/session-impl.cpp @@ -54,7 +54,7 @@ namespace session { , timelineRegistry_ , sequenceRegistry_ ) , contents_( MObject::create (defaultsManager_)) - , fixture_(new Fixture) + , fixture_(new fixture::Fixture) { INFO (session, "new Session created."); } @@ -141,7 +141,7 @@ namespace session { - PFix& + PFixture& SessionImpl::getFixture () { return fixture_; diff --git a/src/steam/mobject/session/session-impl.hpp b/src/steam/mobject/session/session-impl.hpp index 4528a2856..b90175e82 100644 --- a/src/steam/mobject/session/session-impl.hpp +++ b/src/steam/mobject/session/session-impl.hpp @@ -47,7 +47,7 @@ #define STEAM_MOBJECT_SESSION_SESSIONIMPL_H #include "steam/mobject/session.hpp" -#include "steam/mobject/session/fixture.hpp" +#include "steam/fixture/fixture.hpp" #include "steam/mobject/session/placement-index.hpp" #include "steam/mobject/session/session-services.hpp" #include "steam/mobject/session/session-interface-modules.hpp" @@ -67,6 +67,7 @@ namespace steam { namespace mobject { namespace session { + using fixture::PFixture; /** @@ -78,7 +79,7 @@ namespace session { { PlacementIndex contents_; - PFix fixture_; + PFixture fixture_; @@ -88,10 +89,10 @@ namespace session { virtual MObjectRef attach (PMO const& placement) override; virtual bool detach (PMO const& placement) override; - virtual MObjectRef getRoot() override; + virtual MObjectRef getRoot() override; - virtual PFix& getFixture() override; - virtual void rebuildFixture() override; + virtual PFixture& getFixture() override; + virtual void rebuildFixture() override; protected: /* == management API === */ SessionImpl (); diff --git a/tests/core/steam/engine/mock-dispatcher.hpp b/tests/core/steam/engine/mock-dispatcher.hpp index e71c058ec..f36588e41 100644 --- a/tests/core/steam/engine/mock-dispatcher.hpp +++ b/tests/core/steam/engine/mock-dispatcher.hpp @@ -31,7 +31,7 @@ ////#include "steam/engine/procnode.hpp" //#include "steam/play/dummy-play-connection.hpp" -#include "steam/mobject/session/segmentation.hpp" +#include "steam/fixture/segmentation.hpp" #include "steam/mobject/model-port.hpp" #include "steam/engine/dispatcher.hpp" #include "steam/engine/job-ticket.hpp" @@ -82,7 +82,7 @@ namespace test { using std::make_tuple; using std::deque; ///////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1294 : organisation of namespaces / includes?? - using steam::mobject::session::Segmentation; + using fixture::Segmentation; namespace { // used internally diff --git a/tests/core/steam/mobject/session/deletecliptest.cpp b/tests/core/steam/mobject/session/deletecliptest.cpp index a3e126a24..f84b6af8f 100644 --- a/tests/core/steam/mobject/session/deletecliptest.cpp +++ b/tests/core/steam/mobject/session/deletecliptest.cpp @@ -35,15 +35,15 @@ //using std::string; +using std::dynamic_pointer_cast; //////////////////// TODO only temp using proc_interface::AssetManager; using proc_interface::PAsset; using proc_interface::IDA; -using std::dynamic_pointer_cast; /// TODO only temp -namespace steam { +namespace steam { namespace mobject { namespace session { namespace test { diff --git a/tests/core/steam/mobject/session/session-modify-parts-test.cpp b/tests/core/steam/mobject/session/session-modify-parts-test.cpp index ba71723cc..b32ceea58 100644 --- a/tests/core/steam/mobject/session/session-modify-parts-test.cpp +++ b/tests/core/steam/mobject/session/session-modify-parts-test.cpp @@ -27,7 +27,7 @@ #include "lib/test/run.hpp" #include "steam/mobject/session.hpp" -#include "steam/mobject/session/fixture.hpp" // TODO only temporarily needed +#include "steam/fixture/fixture.hpp" // TODO only temporarily needed //#include "steam/assetmanager.hpp" //////?? //#include "steam/asset/timeline.hpp" #include "steam/asset/sequence.hpp" diff --git a/tests/core/steam/mobject/session/session-structure-test.cpp b/tests/core/steam/mobject/session/session-structure-test.cpp index 3f0f636f9..8c8c83f8b 100644 --- a/tests/core/steam/mobject/session/session-structure-test.cpp +++ b/tests/core/steam/mobject/session/session-structure-test.cpp @@ -27,7 +27,7 @@ #include "lib/test/run.hpp" #include "steam/mobject/session.hpp" -#include "steam/mobject/session/fixture.hpp" // TODO only temporarily needed +#include "steam/fixture/fixture.hpp" // TODO only temporarily needed #include "steam/assetmanager.hpp" //////?? #include "steam/asset/timeline.hpp" #include "steam/asset/sequence.hpp"