Lumiera
0.pre.03
»edit your freedom«
|
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"
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... | |
Typedefs | |
typedef Types< session::Root, session::Clip, session::Effect, session::Binding, session::AbstractMO >::List | BuilderTargetTypes |
Namespaces | |
steam | |
Steam-Layer implementation namespace root. | |
steam::mobject | |
Media-Objects, edit operations and high-level session. | |
steam::mobject::builder | |
Namespace of the Builder, transforming high-level into low-level. | |