#include <locatingpin.hpp>

Public Member Functions | |
| virtual LocatingPin * | clone () const |
| bool | isOverdetermined () const |
| LocatingPin (const LocatingPin &) | |
| it's OK to copy a LocainngPin, causing duplication of any chained lPins | |
| RelativeLocation & | operator() (PMO refObj, Time offset=0) |
| FixedLocation & | operator() (Time start, Track track=0) |
| LocatingPin & | operator= (const LocatingPin &) |
| const SolutionData | resolve () const |
| implementing the core Placement functionality. | |
Protected Types | |
|
typedef std::tr1::shared_ptr < asset::Pipe > | Pipe |
| typedef std::pair< Time, Pipe > | SolutionData |
| typedef lumiera::Time | Time |
| typedef Time * | Track |
Protected Member Functions | |
| LocatingPin & | addChain (LocatingPin *) |
| virtual int | getPrioLevel () const |
| order to consider when resolving. | |
| virtual void | intersect (LocatingSolution &) const |
| void | resolve (LocatingSolution &) const |
Protected Attributes | |
| scoped_ptr< LocatingPin > | next_ |
| next additional Pin, if any | |
Friends | |
| class | Placement< MObject > |
Classes | |
| struct | LocatingSolution |
Definition at line 81 of file locatingpin.hpp.
| LocatingPin & mobject::session::LocatingPin::addChain | ( | LocatingPin * | newLp | ) | [protected] |
| newLp |
|
Definition at line 69 of file locatingpin.cpp.
References getPrioLevel(), and next_.
00070 { 00071 REQUIRE (newLp); 00072 REQUIRE (!newLp->next_, "can insert only single LocatingPins"); 00073 00074 if (next_ && newLp->getPrioLevel() > next_->getPrioLevel()) 00075 return next_->addChain (newLp); 00076 else 00077 { 00078 scoped_ptr<LocatingPin> tmp_next (newLp); 00079 tmp_next->next_.swap(next_); 00080 next_.swap(tmp_next); 00081 return *newLp; 00082 } 00083 }

| virtual int mobject::session::LocatingPin::getPrioLevel | ( | ) | const [inline, protected, virtual] |
0=highest
Definition at line 94 of file locatingpin.hpp.
Referenced by addChain().

| const LocatingPin::SolutionData mobject::session::LocatingPin::resolve | ( | ) | const |
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).
Definition at line 97 of file locatingpin.cpp.
References mobject::session::LocatingPin::LocatingSolution::getPipe(), and mobject::session::LocatingPin::LocatingSolution::getTime().
00098 { 00099 LocatingSolution solution; 00100 resolve (solution); 00101 return SolutionData (solution.getTime(), solution.getPipe()); 00102 }

1.5.5