Lumiera  0.pre.03
»edit your freedom«
timeline.hpp
Go to the documentation of this file.
1 /*
2  TIMELINE.hpp - independent top-level element of the Session
3 
4  Copyright (C) Lumiera.org
5  2009, Hermann Vosseler <Ichthyostega@web.de>
6 
7  This program is free software; you can redistribute it and/or
8  modify it under the terms of the GNU General Public License as
9  published by the Free Software Foundation; either version 2 of
10  the License, or (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program; if not, write to the Free Software
19  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 
21 */
22 
23 
60 #ifndef ASSET_TIMELINE_H
61 #define ASSET_TIMELINE_H
62 
63 #include "steam/asset/struct.hpp"
64 //#include "steam/mobject/mobject.hpp"
65 //#include "steam/mobject/placement.hpp"
67 //#include "steam/mobject/session/binding.hpp" ////TODO avoidable??
68 #include "lib/p.hpp"
69 #include "lib/element-tracker.hpp"
70 
71 
72 //#include <vector>
73 //#include <string>
74 
75 //using std::vector;
76 //using std::string;
77 
78 namespace steam {
79 namespace mobject {
80 namespace session {
81 
82  class Binding;
83  typedef MORef<Binding> RBinding;
84 }}
85 
86 
87 namespace asset {
88 
89 
90  class Timeline;
91  typedef lib::P<Timeline> PTimeline;
92 
93 
100  class Timeline
101  : public Struct
102  , public lib::AutoRegistered<Timeline>
103  {
105 
106  RBinding boundSequence_;
107 
108  Timeline (Ident const&, RBinding const&);
109 
110  public:
112  static PTimeline create (Asset::Ident const& idi, RBinding const& sequenceBinding);
113 
114  protected:
115  virtual void unlink ();
116 
117  };
118 
119 
120 
121 
123 
124 
125 }} // namespace steam::asset
126 #endif
An active (smart-ptr like) external reference to a specifically placed MObject "instance" within the ...
Definition: mobject-ref.hpp:93
Customised refcounting smart pointer.
Steam-Layer implementation namespace root.
Namespace of Session and user visible high-level objects.
Definition: sequence.hpp:74
Helper mixin template for implementing a type intended to participate in automatic element tracking...
External MObject/Placement reference.
a POD comprised of all the information sufficiently identifying any given Asset.
Definition: asset.hpp:158
Tracking instances automatically on creation and disposal.
Customised refcounting smart pointer template, built upon std::shared_ptr, but forwarding type relati...
Definition: trait.hpp:78
key abstraction: structural asset Created automatically as a sideeffect of building the structure of ...
Definition: struct.hpp:113
The asset subsystem of the Steam-Layer.
Definition: wrapperptr.hpp:44
Asset representation of structural elements within the model.