PLaSK library
Loading...
Searching...
No Matches
plask::MultiStackContainer< UpperClass > Class Template Reference

N-stacks. More...

#include <plask/geometry/stack.hpp>

Inheritance diagram for plask::MultiStackContainer< UpperClass >:
[legend]
Collaboration diagram for plask::MultiStackContainer< UpperClass >:
[legend]

Public Types

typedef StackContainerBaseImpl< DIM >::ChildType ChildType
 
typedef StackContainerBaseImpl< DIM >::TranslationT TranslationT
 
typedef UpperClass::DVec DVec
 Vector of doubles type in space on this, vector in space with dim number of dimensions.
 
typedef UpperClass::Box Box
 Rectangle type in space on this, rectangle in space with dim number of dimensions.
 

Public Member Functions

template<typename... UpperCtrArgs>
 MultiStackContainer (unsigned repeat_count, UpperCtrArgs &&... upperCtrArgs)
 Constructor.
 
Box getBoundingBox () const override
 
Box getRealBoundingBox () const override
 
void getBoundingBoxesToVec (const GeometryObject::Predicate &predicate, std::vector< Box > &dest, const PathHints *path=0) const override
 
void getObjectsToVec (const GeometryObject::Predicate &predicate, std::vector< shared_ptr< const GeometryObject > > &dest, const PathHints *path=0) const override
 
void getPositionsToVec (const GeometryObject::Predicate &predicate, std::vector< DVec > &dest, const PathHints *path=0) const override
 
GeometryObject::Subtree getPathsTo (const GeometryObject &el, const PathHints *path=0) const override
 
GeometryObject::Subtree getPathsAt (const DVec &point, bool all=false) const override
 
bool contains (const DVec &p) const override
 
shared_ptr< MaterialgetMaterial (const DVec &p) const override
 
std::size_t getChildrenCount () const override
 
shared_ptr< GeometryObjectgetChildNo (std::size_t child_no) const override
 
std::size_t getRealChildrenCount () const override
 
shared_ptr< GeometryObjectgetRealChildNo (std::size_t child_no) const override
 
unsigned getRepeatCount () const
 
void setRepeatCount (unsigned new_repeat_count)
 
shared_ptr< GeometryObjectshallowCopy () const override
 
shared_ptr< GeometryObjectdeepCopy (std::map< const GeometryObject *, shared_ptr< GeometryObject > > &copied) const override
 
void addPointsAlongToSet (std::set< double > &points, Primitive< 3 >::Direction direction, unsigned max_steps, double min_step_size) const override
 
void addLineSegmentsToSet (std::set< typename GeometryObjectD< UpperClass::DIM >::LineSegment > &segments, unsigned max_steps, double min_step_size) const override
 

Public Attributes

unsigned repeat_count
 How many times all stack is repeated.
 

Protected Member Functions

bool reduceHeight (double &height) const
 Reduce height to the first repetition.
 
void writeXMLAttr (XMLWriter::Element &dest_xml_object, const AxisNames &axes) const override
 
shared_ptr< GeometryObjectchangedVersionForChildren (std::vector< std::pair< shared_ptr< ChildType >, Vec< 3, double > > > &children_after_change, Vec< 3, double > *recomended_translation) const override
 

Detailed Description

template<typename UpperClass>
class plask::MultiStackContainer< UpperClass >

N-stacks.

Definition at line 550 of file stack.hpp.

Member Typedef Documentation

◆ Box

template<typename UpperClass >
typedef UpperClass::Box plask::MultiStackContainer< UpperClass >::Box

Rectangle type in space on this, rectangle in space with dim number of dimensions.

Definition at line 574 of file stack.hpp.

◆ ChildType

template<typename UpperClass >
typedef StackContainerBaseImpl<DIM>::ChildType plask::MultiStackContainer< UpperClass >::ChildType

Definition at line 567 of file stack.hpp.

◆ DVec

template<typename UpperClass >
typedef UpperClass::DVec plask::MultiStackContainer< UpperClass >::DVec

Vector of doubles type in space on this, vector in space with dim number of dimensions.

Definition at line 571 of file stack.hpp.

◆ TranslationT

template<typename UpperClass >
typedef StackContainerBaseImpl<DIM>::TranslationT plask::MultiStackContainer< UpperClass >::TranslationT

Definition at line 568 of file stack.hpp.

Constructor & Destructor Documentation

◆ MultiStackContainer()

template<typename UpperClass >
template<typename... UpperCtrArgs>
plask::MultiStackContainer< UpperClass >::MultiStackContainer ( unsigned  repeat_count,
UpperCtrArgs &&...  upperCtrArgs 
)
inlineexplicit

Constructor.

Parameters
repeat_counthow many times stack should be repeated, must be 1 or more
baseHeightheight where the first object should start
alignerdefault stack aligner

Definition at line 610 of file stack.hpp.

Member Function Documentation

◆ addLineSegmentsToSet()

template<typename UpperClass >
void plask::MultiStackContainer< UpperClass >::addLineSegmentsToSet ( std::set< typename GeometryObjectD< UpperClass::DIM >::LineSegment > &  segments,
unsigned  max_steps,
double  min_step_size 
) const
override

Definition at line 759 of file stack.cpp.

◆ addPointsAlongToSet()

template<typename UpperClass >
void plask::MultiStackContainer< UpperClass >::addPointsAlongToSet ( std::set< double > &  points,
Primitive< 3 >::Direction  direction,
unsigned  max_steps,
double  min_step_size 
) const
override

Definition at line 740 of file stack.cpp.

◆ changedVersionForChildren()

template<typename UpperClass >
shared_ptr< GeometryObject > plask::MultiStackContainer< UpperClass >::changedVersionForChildren ( std::vector< std::pair< shared_ptr< ChildType >, Vec< 3, double > > > &  children_after_change,
Vec< 3, double > *  recomended_translation 
) const
overrideprotected

Definition at line 729 of file stack.cpp.

◆ contains()

template<typename UpperClass >
bool plask::MultiStackContainer< UpperClass >::contains ( const DVec p) const
override

Definition at line 625 of file stack.cpp.

◆ deepCopy()

template<typename UpperClass >
shared_ptr< GeometryObject > plask::MultiStackContainer< UpperClass >::deepCopy ( std::map< const GeometryObject *, shared_ptr< GeometryObject > > &  copied) const
override

Definition at line 715 of file stack.cpp.

◆ getBoundingBox()

template<typename UpperClass >
MultiStackContainer< UpperClass >::Box plask::MultiStackContainer< UpperClass >::getBoundingBox ( ) const
override

Definition at line 495 of file stack.cpp.

◆ getBoundingBoxesToVec()

template<typename UpperClass >
void plask::MultiStackContainer< UpperClass >::getBoundingBoxesToVec ( const GeometryObject::Predicate predicate,
std::vector< Box > &  dest,
const PathHints path = 0 
) const
override

Definition at line 519 of file stack.cpp.

◆ getChildNo()

template<typename UpperClass >
shared_ptr< GeometryObject > plask::MultiStackContainer< UpperClass >::getChildNo ( std::size_t  child_no) const
override

Definition at line 642 of file stack.cpp.

◆ getChildrenCount()

template<typename UpperClass >
std::size_t plask::MultiStackContainer< UpperClass >::getChildrenCount ( ) const
inlineoverride

Definition at line 642 of file stack.hpp.

◆ getMaterial()

template<typename UpperClass >
shared_ptr< Material > plask::MultiStackContainer< UpperClass >::getMaterial ( const DVec p) const
override

Definition at line 633 of file stack.cpp.

◆ getObjectsToVec()

template<typename UpperClass >
void plask::MultiStackContainer< UpperClass >::getObjectsToVec ( const GeometryObject::Predicate predicate,
std::vector< shared_ptr< const GeometryObject > > &  dest,
const PathHints path = 0 
) const
override

Definition at line 539 of file stack.cpp.

◆ getPathsAt()

template<typename UpperClass >
GeometryObject::Subtree plask::MultiStackContainer< UpperClass >::getPathsAt ( const DVec point,
bool  all = false 
) const
override

Definition at line 615 of file stack.cpp.

◆ getPathsTo()

template<typename UpperClass >
GeometryObject::Subtree plask::MultiStackContainer< UpperClass >::getPathsTo ( const GeometryObject el,
const PathHints path = 0 
) const
override

Definition at line 595 of file stack.cpp.

◆ getPositionsToVec()

template<typename UpperClass >
void plask::MultiStackContainer< UpperClass >::getPositionsToVec ( const GeometryObject::Predicate predicate,
std::vector< DVec > &  dest,
const PathHints path = 0 
) const
override

Definition at line 555 of file stack.cpp.

◆ getRealBoundingBox()

template<typename UpperClass >
MultiStackContainer< UpperClass >::Box plask::MultiStackContainer< UpperClass >::getRealBoundingBox ( ) const
override

Definition at line 504 of file stack.cpp.

◆ getRealChildNo()

template<typename UpperClass >
shared_ptr< GeometryObject > plask::MultiStackContainer< UpperClass >::getRealChildNo ( std::size_t  child_no) const
override

Definition at line 660 of file stack.cpp.

◆ getRealChildrenCount()

template<typename UpperClass >
std::size_t plask::MultiStackContainer< UpperClass >::getRealChildrenCount ( ) const
override

Definition at line 655 of file stack.cpp.

◆ getRepeatCount()

template<typename UpperClass >
unsigned plask::MultiStackContainer< UpperClass >::getRepeatCount ( ) const
inline

Definition at line 650 of file stack.hpp.

◆ reduceHeight()

template<typename UpperClass >
bool plask::MultiStackContainer< UpperClass >::reduceHeight ( double height) const
protected

Reduce height to the first repetition.

Parameters
heightto reduce
Returns
true only if height is inside this stack (only in such case height is reduced)

Definition at line 486 of file stack.cpp.

◆ setRepeatCount()

template<typename UpperClass >
void plask::MultiStackContainer< UpperClass >::setRepeatCount ( unsigned  new_repeat_count)
inline

Definition at line 652 of file stack.hpp.

◆ shallowCopy()

template<typename UpperClass >
shared_ptr< GeometryObject > plask::MultiStackContainer< UpperClass >::shallowCopy ( ) const
override

Definition at line 706 of file stack.cpp.

◆ writeXMLAttr()

template<typename UpperClass >
void plask::MultiStackContainer< UpperClass >::writeXMLAttr ( XMLWriter::Element dest_xml_object,
const AxisNames axes 
) const
overrideprotected

Definition at line 665 of file stack.cpp.

Member Data Documentation

◆ repeat_count

template<typename UpperClass >
unsigned plask::MultiStackContainer< UpperClass >::repeat_count

How many times all stack is repeated.

Definition at line 601 of file stack.hpp.


The documentation for this class was generated from the following files: