![]() |
Lumiera 0.pre.04~rc.1
»edit your freedom«
|
Declaration of all kinds of MObjects to be treated by some "Builder tool". More...
Go to the source code of this file.
Declaration of all kinds of MObjects to be treated by some "Builder tool".
This is part of Lumiera's visitation mechanism: Individual MObject subclasses may declare by the DEFINE_PROCESSABLE_BY macro to be specifically processable by a builder tool (visitor). On the other hand, any concrete builder tool (visitor) is free to define a treat(Type) function for each of these specific subclasses. If the tool doesn't define such a specific treat(..) function, the next suitable function for a supertype will be used.
Now there needs to be one location where all the specific kinds of treat-able MObjects are declared together (in a typelist). Moreover, we need the full declaration of these classes. This is the catch of using the visitor pattern. Thus, any class to be treated specifically (as opposed to be just treated through a supertype or super interface) has two liabilities:
Definition in file applicable-builder-target-types.hpp.
#include "steam/mobject/builder/buildertool.hpp"#include "steam/mobject/session/root.hpp"#include "steam/mobject/session/clip.hpp"#include "steam/mobject/session/effect.hpp"#include "steam/mobject/session/auto.hpp"#include "steam/mobject/session/binding.hpp"Namespaces | |
| namespace | steam |
| Steam-Layer implementation namespace root. | |
| namespace | steam::mobject |
| Media-Objects, edit operations and high-level session. | |
| namespace | steam::mobject::builder |
| Namespace of the Builder, transforming high-level into low-level. | |
Typedefs | |
| using | BuilderTargetTypes = Types< session::Root, session::Clip, session::Effect, session::Binding, session::AbstractMO > ::List |
Classes | |
| struct | ApplicableBuilderTargetTypes< TOOL > |
| Marker used to declare some visiting Tool class to be actually a mobject::builder::BuilderTool and to possibly accept and treat the common selection of types to be handled by any such builder tool. More... | |