PLaSK library
|
Template of base class for containers which have aligners, one per child. More...
#include <plask/geometry/container.hpp>
Public Types | |
typedef ChildAlignerType | ChildAligner |
typedef ParentType::TranslationT | TranslationT |
Public Member Functions | |
template<typename... Args> | |
WithAligners (Args &&... args) | |
Delegate all constructors to parent class. | |
void | onChildChanged (const GeometryObject::Event &evt) override |
Called by child.change signal. | |
bool | removeIfTUnsafe (const std::function< bool(const shared_ptr< TranslationT > &c)> &predicate) override |
void | removeAtUnsafe (std::size_t index) override |
void | writeXMLChildAttr (XMLWriter::Element &dest_xml_child_tag, std::size_t child_index, const AxisNames &axes) const override |
void | move (std::size_t index, ChildAligner aligner) |
Set new aligner for child at given index . | |
void | move (shared_ptr< const TranslationT > child, ChildAligner aligner) |
Set new aligner for given child . | |
void | move (const TranslationT &child, ChildAligner aligner) |
Set new aligner for given child . | |
const std::vector< ChildAligner > & | getAligners () const |
Get const reference to aligners. | |
Protected Member Functions | |
PathHints::Hint | _insertUnsafe (const std::size_t pos, shared_ptr< TranslationT > to_insert, ChildAligner aligner) |
Do everything, but align to_insert by aligner. | |
PathHints::Hint | _insert (const std::size_t pos, shared_ptr< TranslationT > to_insert, ChildAligner aligner) |
PathHints::Hint | _addUnsafe (shared_ptr< TranslationT > to_add, ChildAligner aligner) |
ChildAligner | getAlignerFor (shared_ptr< const TranslationT > child) |
ChildAligner | getAlignerFor (TranslationT &child) |
void | align (shared_ptr< TranslationT > child) |
void | align (TranslationT *child) |
void | align (TranslationT &child) |
Protected Attributes | |
std::vector< ChildAligner > | aligners |
Template of base class for containers which have aligners, one per child.
It define proper remove methods and some, protected, helpers.
ParentType | container type to inherit from |
ChildAlignerType | aligner type |
Definition at line 361 of file container.hpp.
typedef ChildAlignerType plask::WithAligners< ParentType, ChildAlignerType >::ChildAligner |
Definition at line 362 of file container.hpp.
typedef ParentType::TranslationT plask::WithAligners< ParentType, ChildAlignerType >::TranslationT |
Definition at line 363 of file container.hpp.
|
inline |
Delegate all constructors to parent class.
Definition at line 422 of file container.hpp.
|
inlineprotected |
Definition at line 385 of file container.hpp.
|
inlineprotected |
Definition at line 380 of file container.hpp.
|
inlineprotected |
Do everything, but align to_insert by aligner.
Definition at line 371 of file container.hpp.
|
inlineprotected |
Definition at line 410 of file container.hpp.
|
inlineprotected |
Definition at line 417 of file container.hpp.
|
inlineprotected |
Definition at line 415 of file container.hpp.
|
inlineprotected |
Definition at line 399 of file container.hpp.
|
inlineprotected |
Definition at line 404 of file container.hpp.
|
inline |
Get const reference to aligners.
Definition at line 495 of file container.hpp.
|
inline |
Set new aligner for given child
.
child | child to move |
aligner | new position for given child |
Definition at line 488 of file container.hpp.
|
inline |
Set new aligner for given child
.
child | child to move |
aligner | new position for given child |
Definition at line 478 of file container.hpp.
|
inline |
Set new aligner for child at given index
.
index | index of child to move |
aligner | new position for child at given index |
Definition at line 466 of file container.hpp.
|
inlineoverride |
Called by child.change signal.
Definition at line 425 of file container.hpp.
|
inlineoverride |
Definition at line 450 of file container.hpp.
|
inlineoverride |
Definition at line 430 of file container.hpp.
|
inlineoverride |
Definition at line 455 of file container.hpp.
|
protected |
Definition at line 368 of file container.hpp.