Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
explicitplacement.hpp
Go to the documentation of this file.
1/*
2 EXPLICITPLACEMENT.hpp - special Placement yielding an absolute location (Time,Output) for a MObject
3
4 Copyright (C)
5 2008, Hermann Vosseler <Ichthyostega@web.de>
6
7  **Lumiera** is free software; you can redistribute it and/or modify it
8  under the terms of the GNU General Public License as published by the
9  Free Software Foundation; either version 2 of the License, or (at your
10  option) any later version. See the file COPYING for further details.
11
12*/
13
14
30#ifndef STEAM_MOBJECT_EXPLICITPLACEMENT_H
31#define STEAM_MOBJECT_EXPLICITPLACEMENT_H
32
34
35
36
37namespace steam {
38namespace mobject {
39
40
41
58 class ExplicitPlacement : public Placement<MObject>
59 {
60 public:
61 const Time time;
62 const Pipe pipe;
63
64 typedef std::pair<Time,Pipe> SolutionData;
65
70 virtual
72 {
73 return *this; // and this very special dog breaks the wag-the-tail contract :-P
74 }
75
76
77 protected:
78 /* @todo ichthyo considers a much more elegant implementation utilising a subclass
79 * of FixedLocation, which would serve as Placement::LocatingSolution, and
80 * would be used as LocatingPin::chain subobject as well, so that it could
81 * be initialised directly here in the ExplicitPlacement ctor.
82 * /////////////////////////////////////////////////////////TICKET #100
83 */
85 : Placement<MObject>(base),
86 time(found.first), pipe(found.second)
87 { };
88
91
93
94 private:
97 };
98
99
100
101}} // namespace steam::mobject
102#endif /*STEAM_MOBJECT_EXPLICITPLACEMENT_H*/
Special kind of Placement, where the location of the MObject has been nailed down to a fixed position...
ExplicitPlacement(Placement< MObject > const &base, const SolutionData found)
virtual ExplicitPlacement resolve() const
no need to resolve any further, as this ExplicitPlacement already is the result of a resolve()-call.
ExplicitPlacement & operator=(const ExplicitPlacement &)
copying prohibited, ExplicitPlacement is effectively const!
ExplicitPlacement(ExplicitPlacement const &)=default
MObject is the interface class for all "Media Objects".
Definition mobject.hpp:72
A refcounting Handle to an MObject of type MO, used to constrain or explicitly specify the location w...
Steam-Layer implementation namespace root.
Core abstraction: placement of a media object into session context.