PLaSK library

Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | List of all members
plask::MultiStackContainer< UpperClass > Class Template Reference
Geometry Objects

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< Material > | getMaterial (const DVec &p) const override
std::size_t | getChildrenCount () const override
shared_ptr< GeometryObject > | getChildNo (std::size_t child_no) const override
std::size_t | getRealChildrenCount () const override
shared_ptr< GeometryObject > | getRealChildNo (std::size_t child_no) const override
unsigned | getRepeatCount () const
void | setRepeatCount (unsigned new_repeat_count)
shared_ptr< GeometryObject > | shallowCopy () const override
shared_ptr< GeometryObject > | deepCopy (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< GeometryObject > | changedVersionForChildren (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
| ) |  |
| inline explicit

Constructor.

Parameters

  repeat_count | how many times stack should be repeated, must be 1 or more
  baseHeight | height where the first object should start
  aligner | default 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
| override protected

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
| inline override

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

  height | to 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
| override protected

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:

- plask/geometry/stack.hpp
- plask/geometry/stack.cpp