Lumiera  0.pre.03
»edit your freedom«
locatingpin.hpp File Reference

Go to the source code of this file.

Description

Implementing the Placement mechanics.

The various specifications how to place some MObject (logically) within the Session are given by small LocatingPin objects forming a chain. For resolving the actual position, at the moment (10/07) we use a preliminary implementation to support the most common Placement types (fixed and relative). It is comprised of the nested LocatingSolution and the functions FixedLocation::resolve(LocatingSolution&) and RelativeLocation::resolve(LocatingSolution&) etc. If this is to be extended, we'll need a real spatial discrete constraint solver (and this probably will be some library implementation, because the problem is anything but trivial).

Todo:
this can be considered a preliminary sketch without being backed by actual functionality. Just enough to be able to drive the design of other parts ahead. See esp. TICKET #100, which contains an idea for a refactoring.

Definition in file locatingpin.hpp.

#include "steam/common.hpp"
#include "lib/time/timevalue.hpp"
#include <utility>
#include <memory>

Classes

class  LocatingPin
 Positioning specification, possibly chained to further specifications. More...
 
struct  LocatingPin::LocatingSolution
 
class  PlacementRef< MX >
 Reference tag denoting a placement attached to the session. More...
 

Typedefs

typedef PlacementRef< MObject > PlaRef
 TODO: as of 5/09 the idea is to phase out direct dependency on the placement class and recast those dependencies in terms of PlacementRef.
 

Functions

bool operator== (LocatingPin const &pin1, LocatingPin const &pin2)
 check for equivalent definition of a complete locating chain
 

Namespaces

 steam
 Steam-Layer implementation namespace root.
 
 steam::asset
 The asset subsystem of the Steam-Layer.
 
 steam::mobject
 Media-Objects, edit operations and high-level session.
 
 steam::mobject::session
 Namespace of Session and user visible high-level objects.