Lumiera
0.pre.03
»edit your freedom«
|
#include "steam/mobject/session/locatingpin.hpp"
Positioning specification, possibly chained to further specifications.
The base class LocatingPin is a "no-op" specification which doesn't constrain the possible locations and thus can be embedded into pristine Placement by default. The Functor operators provide a way to add concrete positioning specifications, thereby defining the position of the MObject to be placed.
Definition at line 88 of file locatingpin.hpp.
Public Member Functions | |
LocatingPin (const LocatingPin &) | |
it's OK to copy a LocainngPin, causing duplication of any chained lPins | |
virtual LocatingPin * | clone () const |
bool | isOverdetermined () const |
FixedLocation & | operator() (Time start, Fork track=0) |
RelativeLocation & | operator() (PlacementRef< MObject > &refObj, Offset const &offset=Offset(Time::ZERO)) |
LocatingPin & | operator= (const LocatingPin &) |
const SolutionData | resolve () const |
implementing the core Placement functionality. More... | |
Classes | |
struct | LocatingSolution |
Friends | |
bool | operator== (LocatingPin const &, LocatingPin const &) |
check for equivalent definition of a complete locating chain | |
Protected Types | |
typedef Time * | Fork |
typedef lib::time::Offset | Offset |
typedef std::shared_ptr< asset::Pipe > | Pipe |
typedef std::pair< Time, Pipe > | SolutionData |
typedef lib::time::Time | Time |
typedef lib::time::TimeVar | TimeVar |
Protected Member Functions | |
LocatingPin & | addChain (LocatingPin *) |
virtual int | getPrioLevel () const |
order to consider when resolving. More... | |
virtual void | intersect (LocatingSolution &) const |
void | resolve (LocatingSolution &) const |
Protected Attributes | |
std::unique_ptr< LocatingPin > | next_ |
next additional Pin, if any | |
|
inlineprotectedvirtual |
order to consider when resolving.
0=highest
Definition at line 103 of file locatingpin.hpp.
References lumiera::anonymous_namespace{basic-setup.cpp}::resolve().
Referenced by LocatingPin::addChain().
|
protected |
newLp |
Definition at line 72 of file locatingpin.cpp.
References LocatingPin::getPrioLevel(), and LocatingPin::next_.
Referenced by LocatingPin::LocatingSolution::getTime().
const LocatingPin::SolutionData resolve | ( | ) | const |
implementing the core Placement functionality.
By combining all the chained locating pins, try to get at a definite position (for this chain and consequently for the MObject handled by the enclosing Placement object).
this could/should be replaced by a full-blown constraint solver at some point in the future
we are packing and unpacking the information (time,track) several times. Ichthyo considers a more elegant solution.
Definition at line 100 of file locatingpin.cpp.
References LocatingPin::LocatingSolution::getTime(), and LocatingPin::next_.