Segmentation: reorganise namespaces
The Fixture and the low-level model backbone deserve a distinct namespace on their own. Since it's built by the Builder from the Session contents, and also used by the frame dispatch, we can expect dependence on some types from Steam-Layer, and thus this namespace needs to reside in Steam-Layer rather, while the actual low-level Model might become part of Vault-Layer, creating a hierarchy of data structures. (Remark: likely also the session related namespaces will need a reorganisation)
This commit is contained in:
parent
90593776f6
commit
d58174db4d
21 changed files with 86 additions and 65 deletions
|
|
@ -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
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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*/
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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<Fixture> PFix;
|
||||
using PFixture = shared_ptr<Fixture>;
|
||||
|
||||
|
||||
|
||||
}}} // namespace steam::mobject::session
|
||||
#endif
|
||||
}} // namespace steam::fixture
|
||||
#endif /*STEAM_FIXTURE_FIXTURE_H*/
|
||||
|
|
@ -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
|
||||
|
|
@ -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 <list>
|
||||
|
||||
|
|
@ -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*/
|
||||
|
|
@ -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 <Ichthyostega@web.de>
|
||||
|
|
@ -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
|
||||
|
|
@ -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 <list>
|
||||
|
||||
|
|
@ -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*/
|
||||
|
|
@ -37,7 +37,7 @@ namespace builder {
|
|||
using mobject::Buildable;
|
||||
using session::Clip;
|
||||
using session::Effect;
|
||||
using session::Fixture;
|
||||
using fixture::Fixture;
|
||||
|
||||
/////////////////////////////////TICKET #414
|
||||
|
||||
|
|
|
|||
|
|
@ -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 <list>
|
||||
|
|
@ -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_;
|
||||
|
|
|
|||
|
|
@ -43,21 +43,21 @@ namespace builder {
|
|||
struct BuildProcessState
|
||||
{
|
||||
|
||||
session::Fixture & fixedTimeline_;
|
||||
fixture::Fixture & fixedTimeline_;
|
||||
unique_ptr<engine::RenderGraph> procSegment_;
|
||||
|
||||
unique_ptr<SegmentationTool> segmentation_;
|
||||
unique_ptr<NodeCreatorTool> 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());
|
||||
|
|
|
|||
|
|
@ -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 ();
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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<MObject>
|
||||
|
|
|
|||
|
|
@ -67,14 +67,16 @@ namespace asset {
|
|||
class Timeline; typedef lib::P<Timeline> PTimeline;
|
||||
class Sequence; typedef lib::P<Sequence> PSequence;
|
||||
}
|
||||
namespace fixture {
|
||||
class Fixture;
|
||||
using PFixture = std::shared_ptr<Fixture>;
|
||||
}
|
||||
|
||||
namespace mobject {
|
||||
|
||||
namespace session {
|
||||
class SessManager;
|
||||
class ElementQuery;
|
||||
class Fixture;
|
||||
typedef std::shared_ptr<Fixture> 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;
|
||||
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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_;
|
||||
|
|
|
|||
|
|
@ -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 ();
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Reference in a new issue