PLaSK library

Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
plask::Block< dim > Struct Template Reference
Geometry Objects

Represent figure which, depends from `dim` is: More...

`#include <plask/geometry/leaf.hpp>`

Inheritance diagram for plask::Block< dim >:
[legend]
Collaboration diagram for plask::Block< dim >:
[legend]

## Public Types
typedef GeometryObjectLeaf< dim >::DVec | DVec
| Vector of doubles type in space on this, vector in space with dim number of dimensions.
typedef GeometryObjectLeaf< dim >::Box | Box
| Rectangle type in space on this, rectangle in space with dim number of dimensions.
Public Types inherited from plask::GeometryObjectLeaf< dim >
typedef GeometryObjectD< dim >::DVec | DVec
typedef GeometryObjectD< dim >::Box | Box
Public Types inherited from plask::GeometryObjectD< dim >
typedef Primitive< dim >::Box | Box
typedef Primitive< dim >::DVec | DVec
Public Types inherited from plask::GeometryObject
enum | Type { TYPE_LEAF = 0 , TYPE_TRANSFORM = 1 , TYPE_SPACE_CHANGER = 2 , TYPE_CONTAINER = 3 , TYPE_GEOMETRY = 4 , TYPE_SEPARATOR = 5 }
| Type of geometry object. More...
typedef std::function< bool(const GeometryObject &)> | Predicate
| Predicate on GeometryObject.

## Public Member Functions
std::string | getTypeName () const override
| Get name of object type (like: "block2d", "shelf", "stack3d", etc.).
void | setSize (DVec &&new_size)
| Set size and inform observers about changes.
template<typename... VecCtrArg>
void | setSize (VecCtrArg &&... vecCtrArg)
| Set size and inform observers about changes.
| Block (const DVec &size=Primitive< dim >::ZERO_VEC, const shared_ptr< Material > &material=shared_ptr< Material >())
| Create block.
| Block (const DVec &size, shared_ptr< MaterialsDB::MixedCompositionFactory > materialTopBottom)
| Block (const Block &src)
Box | getBoundingBox () const override
| Calculate minimal rectangle which contains all points of geometry object.
bool | contains (const DVec &p) const override
| Check if this geometry object contains point.
shared_ptr< GeometryObject > | shallowCopy () const override
| Get shallow copy of this.
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< dim >::LineSegment > &segments, unsigned max_steps, double min_step_size) const override
void | writeXMLAttr (XMLWriter::Element &dest_xml_object, const AxisNames &axes) const override
| Append XML attributes of this to `dest_xml_object`.
void | writeXMLAttr (XMLWriter::Element &dest_xml_object, const AxisNames &axes) const
| Append XML attributes of this to `dest_xml_object`.
void | writeXMLAttr (XMLWriter::Element &dest_xml_object, const AxisNames &axes) const
| Append XML attributes of this to `dest_xml_object`.
void | addLineSegmentsToSet (std::set< typename GeometryObjectD< 2 >::LineSegment > &segments, unsigned max_steps, double min_step_size) const
void | addLineSegmentsToSet (std::set< typename GeometryObjectD< 3 >::LineSegment > &segments, unsigned max_steps, double min_step_size) const
void | writeXMLAttr (XMLWriter::Element &dest_xml_object, const AxisNames &axes) const
| Append XML attributes of this to `dest_xml_object`.
void | writeXMLAttr (XMLWriter::Element &dest_xml_object, const AxisNames &axes) const
| Append XML attributes of this to `dest_xml_object`.
void | addLineSegmentsToSet (std::set< typename GeometryObjectD< 2 >::LineSegment > &segments, unsigned max_steps, double min_step_size) const
void | addLineSegmentsToSet (std::set< typename GeometryObjectD< 3 >::LineSegment > &segments, unsigned max_steps, double min_step_size) const
Public Member Functions inherited from plask::GeometryObjectLeaf< dim >
GeometryReader & | readMaterial (GeometryReader &src)
| GeometryObjectLeaf ()
| Construct leaf with uninitialized material (all material getting methods returns nullptr).
| GeometryObjectLeaf (const GeometryObjectLeaf< dim > &src)
| Copy-constructor.
| GeometryObjectLeaf (shared_ptr< Material > material)
| Construct leaf which uses solid material.
| GeometryObjectLeaf (shared_ptr< MaterialsDB::MixedCompositionFactory > materialTopBottom)
| Construct leaf which uses linearly changeble material.
shared_ptr< Material > | getRepresentativeMaterial () const
| Get representative material of this leaf (typically material which is returned in center of object).
shared_ptr< Material > | singleMaterial () const
| Get material only if it this leaf is solid (has assign exactly one material).
void | setMaterial (shared_ptr< Material > new_material)
| Set new, solid on all surface, material.
void | setMaterialFast (shared_ptr< Material > new_material)
| Set new, solid on all surface, material.
void | setMaterialTopBottomCompositionFast (shared_ptr< MaterialsDB::MixedCompositionFactory > materialTopBottom)
| Set new graded material.
void | setMaterialTopBottomComposition (shared_ptr< MaterialsDB::MixedCompositionFactory > materialTopBottom)
| Set new material material.
void | setMaterialDraftTopBottomCompositionFast (shared_ptr< MaterialsDB::MixedCompositionFactory > materialTopBottom)
| Set new draft graded material.
void | setMaterialProviderFast (MaterialProvider *provider)
| Set new custom material provider.
void | setMaterialProvider (MaterialProvider *provider)
| Set new custom material provider.
const MaterialProvider * | getMaterialProvider () const
| Return pointer to the material provider.
GeometryObject::Type | getType () const override
| Check if geometry is: leaf, transform or container type object.
shared_ptr< Material > | getMaterial (const DVec &p) const override
| Return material in a given point inside the geometry object.
void | getBoundingBoxesToVec (const GeometryObject::Predicate &predicate, std::vector< Box > &dest, const PathHints *path=0) const override
| Calculate and append to vector bounding boxes of all nodes which fulfill given `predicate`, optionally marked by path.
void | getObjectsToVec (const GeometryObject::Predicate &predicate, std::vector< shared_ptr< const GeometryObject > > &dest, const PathHints *path=0) const override
| Append all objects from subtree with this in root, which fulfill predicate to vector `dest`.
void | getPositionsToVec (const GeometryObject::Predicate &predicate, std::vector< DVec > &dest, const PathHints *=0) const override
| Calculate and append to vector positions of all nodes which fulfill given `predicate`, optionally marked by path.
bool | hasInSubtree (const GeometryObject &el) const override
| Check if el is in subtree with `this` in root.
GeometryObject::Subtree | getPathsTo (const GeometryObject &el, const PathHints *path=0) const override
| Find paths to el.
GeometryObject::Subtree | getPathsAt (const DVec &point, bool=false) const override
| Find all paths to objects which lies at given `point`.
std::size_t | getChildrenCount () const override
| Get number of all children of this in geometry graph.
shared_ptr< GeometryObject > | getChildNo (std::size_t child_no) const override
| Get child with given index.
shared_ptr< const GeometryObject > | changedVersion (const GeometryObject::Changer &changer, Vec< 3, double > *translation=0) const override
| Get this or copy of this with some changes in subtree.
shared_ptr< GeometryObject > | deepCopy (std::map< const GeometryObject *, shared_ptr< GeometryObject > > &copied) const override
| Get deep copy of this.
Public Member Functions inherited from plask::GeometryObjectD< dim >
int | getDimensionsCount () const override
| Get number of dimensions.
virtual DVec | getBoundingBoxSize () const
virtual Box | getRealBoundingBox () const
| Calculate minimal rectangle which contains all points of real geometry object.
shared_ptr< Material > | getMaterialOrAir (const DVec &p) const
| Return material in a given point inside the geometry object.
void | getBoundingBoxesToVec (const GeometryObject::Predicate &predicate, std::vector< Box > &dest, const PathHints &path) const
| Calculate and append to vector bounding boxes of all nodes which fulfill given `predicate`, marked by path.
std::vector< Box > | getBoundingBoxes (const GeometryObject::Predicate &predicate, const PathHints *path=0) const
| Calculate the vector of bounding boxes of all nodes which fulfill given `predicate`, optionally marked by path.
std::vector< Box > | getBoundingBoxes (const GeometryObject::Predicate &predicate, const PathHints &path)
| Calculate the vector of bounding boxes of all nodes which fulfill given `predicate`, marked by path.
void | getLeafsBoundingBoxesToVec (std::vector< Box > &dest, const PathHints *path=0) const
| Calculate and append to vector bounding boxes of all leafs, optionally marked by path.
void | getLeafsBoundingBoxesToVec (std::vector< Box > &dest, const PathHints &path) const
| Calculate and append to vector bounding boxes of all leafs, marked by path.
std::vector< Box > | getLeafsBoundingBoxes (const PathHints *path=0) const
| Calculate bounding boxes of all leafs, optionally marked by path.
std::vector< Box > | getLeafsBoundingBoxes (const PathHints &path) const
| Calculate bounding boxes of all leafs, marked by path.
void | getObjectBoundingBoxesToVec (std::vector< Box > &dest, const GeometryObject &object, const PathHints *path=0) const
| Calculate and append to vector bounding boxes of all instances of given `object`, optionally marked by path.
void | getObjectBoundingBoxesToVec (std::vector< Box > &dest, const GeometryObject &object, const PathHints &path) const
| Calculate and append to vector bounding boxes of all instances of given `object`, marked by path.
std::vector< Box > | getObjectBoundingBoxes (const GeometryObject &object, const PathHints *path=0) const
| Calculate bounding boxes of all instances of given `object`, optionally marked by path.
std::vector< Box > | getObjectBoundingBoxes (const GeometryObject &object, const PathHints &path) const
| Calculate bounding boxes of all instances of given `objects`, marked by `path`.
void | getPositionsToVec (const Predicate &predicate, std::vector< DVec > &dest, const PathHints &path) const
| Calculate and append to vector positions of all nodes which fulfill given `predicate`, marked by path.
std::vector< DVec > | getPositions (const Predicate &predicate, const PathHints *path=0) const
| Calculate and append to vector positions of all nodes which fulfill given `predicate`, optionally marked by path.
std::vector< DVec > | getPositions (const Predicate &predicate, const PathHints &path) const
| Calculate and append to vector positions of all nodes which fulfill given `predicate`, marked by path.
void | getLeafsPositionsToVec (std::vector< DVec > &dest, const PathHints *path=0) const
| Calculate and append to vector positions of all leafs, optionally marked by path.
void | getLeafsPositionsToVec (std::vector< DVec > &dest, const PathHints &path) const
| Calculate and append to vector positions of all leafs, marked by path.
std::vector< DVec > | getLeafsPositions (const PathHints *path=0) const
| Calculate and return a vector of positions of all leafs, optionally marked by path.
std::vector< DVec > | getLeafsPositions (const PathHints &path) const
| Calculate and return a vector of positions of all leafs, marked by path.
void | getObjectPositionsToVec (std::vector< DVec > &dest, const GeometryObject &object, const PathHints *path=0) const
| Calculate and append to vector positions of all instances of given `object`, optionally marked by path.
void | getObjectPositionsToVec (std::vector< DVec > &dest, const GeometryObject &object, const PathHints &path) const
| Calculate and append to vector positions of all instances of given `object`, marked by path.
std::vector< DVec > | getObjectPositions (const GeometryObject &object, const PathHints *path=0) const
| Calculate and return a vector of positions of all instances of given `object`, optionally marked by path.
std::vector< DVec > | getObjectPositions (const GeometryObject &object, const PathHints &path) const
| Calculate and return a vector of positions of all instances of given `object`, marked by path.
shared_ptr< const GeometryObject > | getMatchingAt (const DVec &point, const Predicate &predicate, const PathHints *path=0) const
| Get object closest to the root, which contains specific point and fulfills the predicate.
shared_ptr< const GeometryObject > | getMatchingAt (const DVec &point, const Predicate &predicate, const PathHints &path) const
| Get object closest to the root, which contains specific point and fulfills the predicate.
bool | objectIncludes (const GeometryObject &object, const PathHints *path, const DVec &point) const
| Check if specified geometry object contains a point point.
bool | objectIncludes (const GeometryObject &object, const PathHints &path, const DVec &point) const
| Check if specified geometry object contains a point point.
bool | objectIncludes (const GeometryObject &object, const DVec &point) const
| Check if specified geometry object contains a point point.
std::set< std::string > | getRolesAt (const DVec &point, const plask::PathHints *path=0) const
| Get a sum of roles sets of all objects which lies on path from this to leaf at given `point`.
std::set< std::string > | getRolesAt (const DVec &point, const plask::PathHints &path) const
| Get a sum of roles sets of all objects which lies on path from this to leaf at given `point`.
shared_ptr< const GeometryObject > | hasRoleAt (const std::string &role_name, const DVec &point, const plask::PathHints *path=0) const
| Check if any object at given `point`, not hidden by another object, plays role with given name `role_name` (if so, returns non-nullptr).
shared_ptr< const GeometryObject > | hasRoleAt (const std::string &role_name, const DVec &point, const plask::PathHints &path) const
| Check if any object at given `point`, not hidden by another object, plays role with given name `role_name` (if so, returns non-nullptr).
virtual void | addLineSegmentsToSet (std::set< LineSegment > &PLASK_UNUSED(segments), unsigned PLASK_UNUSED(max_steps), double PLASK_UNUSED(min_step_size)) const =0
| Add characteristic points to the set and edges connecting them.
std::set< LineSegment > | getLineSegments (unsigned max_steps=PLASK_GEOMETRY_MAX_STEPS, double min_step_size=PLASK_GEOMETRY_MIN_STEP_SIZE) const
| Add characteristic points to the set and edges connecting them.
Public Member Functions inherited from plask::GeometryObject
void | setMaxSteps (unsigned value)
| Set max_steps.
void | setMinStepSize (double value)
| Set min_step_size.
template<typename ClassT , typename methodT >
boost::signals2::connection | changedConnectMethod (ClassT *obj, methodT method, boost::signals2::connect_position at=boost::signals2::at_back)
| Connect a method to changed signal.
template<typename ClassT , typename methodT >
void | changedDisconnectMethod (ClassT *obj, methodT method)
| Disconnect a method from changed signal.
template<typename EventT = Event, typename... Args>
void | fireChanged (Args &&... event_constructor_params_without_source)
| Call changed with this as event source.
| GeometryObject (const GeometryObject &to_copy)
| Initialize this to be the same as `to_copy` but doesn't have any changes observer.
GeometryObject & | operator= (const GeometryObject &to_copy)
| Set this to be the same as `to_copy` but doesn't change changes observer.
| GeometryObject ()
| GeometryObject (unsigned max_steps, double min_step_size)
virtual | ~GeometryObject ()
| Virtual destructor.
virtual void | writeXML (XMLWriter::Element &parent_xml_object, WriteXMLCallback &write_cb, AxisNames parent_axes) const
| Write geometry tree branch rooted by this to XML.
void | writeXML (XMLWriter::Element &parent_xml_object, WriteXMLCallback &write_cb) const
| Write geometry tree branch rooted by this to XML.
void | writeXML (XMLWriter::Element &parent_xml_object) const
| Write geometry tree branch rooted by this to XML.
template<int DIMS>
shared_ptr< GeometryObjectD< DIMS > > | asD ()
| Cast this to GeometryObjectD<DIMS>.
template<int DIMS>
shared_ptr< const GeometryObjectD< DIMS > > | asD () const
| Cast this to GeometryObjectD<DIMS> (const version).
shared_ptr< Geometry > | asGeometry ()
| Cast this to Geometry.
shared_ptr< const Geometry > | asGeometry () const
| Cast this to Geometry.
bool | isLeaf () const
bool | isTransform () const
bool | isSpaceChanger () const
bool | isContainer () const
bool | isGeometry () const
virtual void | addPointsAlongToSet (std::set< double > &points, Primitive< 3 >::Direction PLASK_UNUSED(direction), unsigned PLASK_UNUSED(max_steps), double PLASK_UNUSED(min_step_size)) const =0
| Add characteristic points information along specified axis to set.
std::set< double > | getPointsAlong (Primitive< 3 >::Direction direction, unsigned max_steps=PLASK_GEOMETRY_MAX_STEPS, double min_step_size=PLASK_GEOMETRY_MIN_STEP_SIZE) const
| Get characteristic points information along specified axis.
bool | hasRole (std::string role_name) const
| Check if this object belongs to class (has tag) with name `role_name`.
void | addRole (std::string role_name)
| Add this to given class.
void | removeRole (std::string role_name)
| Remove this from given class, do nothing if this is not in given class.
void | clearRoles ()
| Clear set of roles of this.
virtual void | validate () const
| Check if object is ready for calculation.
bool | hasInSubtree (const GeometryObject &el, const PathHints *pathHints) const
bool | hasInSubtree (shared_ptr< const GeometryObject > el, const PathHints *pathHints) const
void | getObjectsToVec (const Predicate &predicate, std::vector< shared_ptr< const GeometryObject > > &dest, const PathHints &path) const
| Append all objects from subtree with this in root, which fulfill predicate to vector `dest`.
std::vector< shared_ptr< const GeometryObject > > | getObjects (const Predicate &predicate, const PathHints *path=0) const
| Get vector of all objects from subtree with this in root, which fulfill predicate.
std::vector< shared_ptr< const GeometryObject > > | getObjects (const Predicate &predicate, const PathHints &path) const
| Get vector of all objects from subtree with this in root, which fulfill predicate.
void | getLeafsToVec (std::vector< shared_ptr< const GeometryObject > > &dest, const PathHints *path=0) const
| Append all leafs in subtree with this in root to vector `dest`.
void | getLeafsToVec (std::vector< shared_ptr< const GeometryObject > > &dest, const PathHints &path) const
| Append all leafs in subtree with this in root to vector `dest`.
std::vector< shared_ptr< const GeometryObject > > | getLeafs (const PathHints *path=0) const
| Get all leafs in subtree with this object as root.
std::vector< shared_ptr< const GeometryObject > > | getLeafs (const PathHints &path) const
| Get all leafs in subtree with this object as root.
void | getObjectsWithRoleToVec (const std::string &role, std::vector< shared_ptr< const GeometryObject > > &dest) const
| Append all objects with a specified role in subtree with this in root to vector `dest`.
std::vector< shared_ptr< const GeometryObject > > | getObjectsWithRole (const std::string &role) const
| Get all objects with a specified role in subtree with this object as root.
virtual std::size_t | getRealChildrenCount () const
| Get number of real (physically stored) children in geometry graph.
virtual shared_ptr< GeometryObject > | getRealChildNo (std::size_t child_no) const
| Get real (physically stored) child with given index.
virtual void | removeAtUnsafe (std::size_t index)
| Remove child at given `index`.
void | removeAt (std::size_t index)
| Remove child at given `index`.
void | removeRangeUnsafe (std::size_t index_begin, std::size_t index_end)
bool | removeRange (std::size_t index_begin, std::size_t index_end)
| Remove all children in given range [index_begin, index_end).
virtual void | forEachRealObjectInSubtree (std::function< bool(const GeometryObject &)> callback) const
| Call a `callback` for each object in subtree with `this` in root.
FunctorIndexedIterator< ChildGetter > | begin () const
FunctorIndexedIterator< ChildGetter > | end () const
shared_ptr< GeometryObject > | deepCopy ()
| Get deep copy of this.
bool | canHasAsChild (const GeometryObject &potential_child) const
bool | canHasAsParent (const GeometryObject &potential_parent) const
void | ensureCanHasAsParent (const GeometryObject &potential_parent) const
| Throw CyclicReferenceException if `potential_parent` is in subtree with this in root.
void | ensureCanHaveAsChild (const GeometryObject &potential_child) const
| Throw CyclicReferenceException if `potential_child` has this in subtree.

## Public Attributes
DVec | size
| Size and upper corner of block.
Public Attributes inherited from plask::GeometryObject
unsigned | max_steps
| Maximum number of points to split a single leaf.
double | min_step_size
| Minimum distance between divisions for a single leaf.
std::set< std::string > | roles
| Roles/tags.
boost::signals2::signal< void(Event &)> | changed
| Changed signal, fired when object was changed.

## Static Public Attributes
static const char * | NAME = dim == 2 ? PLASK_BLOCK2D_NAME : PLASK_BLOCK3D_NAME
Static Public Attributes inherited from plask::GeometryObjectD< dim >
static const int | DIM = dim

## Additional Inherited Members
Static Public Member Functions inherited from plask::GeometryObject
static bool | PredicateIsLeaf (const GeometryObject &el)
| Predicate which check if given object is leaf.
Protected Member Functions inherited from plask::GeometryObject
virtual void | writeXMLChildren (XMLWriter::Element &dest_xml_object, WriteXMLCallback &write_cb, const AxisNames &axes) const
| Append all children of this to XML `dest_xml_object`.
void | ensureIsValidChildNr (std::size_t child_no, const char *method_name="getChildNo", const char *arg_name="child_no") const
| Check if given `index` is valid child index and throw exception of it is not.
void | ensureIsValidInsertPosition (std::size_t child_no, const char *method_name="insert", const char *arg_name="pos") const
| Check if given `index` is valid insert index and throw exception of it is not.
void | fireChildrenChanged ()
| Inform observers that children list was changed (also that this is resized)
void | fireChildrenRemoved (std::size_t beginIndex, std::size_t endIndex)
void | fireChildrenInserted (std::size_t beginIndex, std::size_t endIndex)
Protected Attributes inherited from plask::GeometryObjectLeaf< dim >
std::unique_ptr< MaterialProvider > | materialProvider

## Detailed Description

template<int dim>
struct plask::Block< dim >

Represent figure which, depends from `dim` is:

- for dim = 2 - rectangle,
- for dim = 3 - cuboid.
  Template Parameters

    dim | number of dimensions

Definition at line 284 of file leaf.hpp.

## Member Typedef Documentation

## ◆ Box

template<int dim>

typedef GeometryObjectLeaf<dim>::Box plask::Block< dim >::Box

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

Definition at line 289 of file leaf.hpp.

## ◆ DVec

template<int dim>

typedef GeometryObjectLeaf<dim>::DVec plask::Block< dim >::DVec

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

Definition at line 286 of file leaf.hpp.

## Constructor & Destructor Documentation

## ◆ Block() [1/3]

template<int dim>

plask::Block< dim >::Block | ( | const DVec & | size = `Primitive<dim>::ZERO_VEC`,
|  | const shared_ptr< Material > & | material = `shared_ptr<Material>()`
| ) |  |
| inline explicit

Create block.

Parameters

  size | size/upper corner of block
  material | block material

Definition at line 324 of file leaf.hpp.

## ◆ Block() [2/3]

template<int dim>

plask::Block< dim >::Block | ( | const DVec & | size,
|  | shared_ptr< MaterialsDB::MixedCompositionFactory > | materialTopBottom
| ) |  |
| inline explicit

Definition at line 331 of file leaf.hpp.

## ◆ Block() [3/3]

template<int dim>

plask::Block< dim >::Block | ( | const Block< dim > & | src | ) |
| inline explicit

Definition at line 334 of file leaf.hpp.

## Member Function Documentation

## ◆ addLineSegmentsToSet() [1/5]

void plask::Block< 2 >::addLineSegmentsToSet | ( | std::set< typename GeometryObjectD< 2 >::LineSegment > & | segments,
|  | unsigned | max_steps,
|  | double | min_step_size
| ) |  | const

Definition at line 196 of file leaf.cpp.

## ◆ addLineSegmentsToSet() [2/5]

void plask::Block< 2 >::addLineSegmentsToSet | ( | std::set< typename GeometryObjectD< 2 >::LineSegment > & | segments,
|  | unsigned | max_steps,
|  | double | min_step_size
| ) |  | const

## ◆ addLineSegmentsToSet() [3/5]

void plask::Block< 3 >::addLineSegmentsToSet | ( | std::set< typename GeometryObjectD< 3 >::LineSegment > & | segments,
|  | unsigned | max_steps,
|  | double | min_step_size
| ) |  | const

Definition at line 224 of file leaf.cpp.

## ◆ addLineSegmentsToSet() [4/5]

void plask::Block< 3 >::addLineSegmentsToSet | ( | std::set< typename GeometryObjectD< 3 >::LineSegment > & | segments,
|  | unsigned | max_steps,
|  | double | min_step_size
| ) |  | const

## ◆ addLineSegmentsToSet() [5/5]

template<int dim>

void plask::Block< dim >::addLineSegmentsToSet | ( | std::set< typename GeometryObjectD< dim >::LineSegment > & | segments,
|  | unsigned | max_steps,
|  | double | min_step_size
| ) |  | const
| override

## ◆ addPointsAlongToSet()

template<int dim>

void plask::Block< dim >::addPointsAlongToSet | ( | std::set< double > & | points,
|  | Primitive< 3 >::Direction | direction,
|  | unsigned | max_steps,
|  | double | min_step_size
| ) |  | const
| override

Definition at line 177 of file leaf.cpp.

## ◆ contains()

template<int dim>

bool plask::Block< dim >::contains | ( | const DVec & | point | ) | const
| override virtual

Check if this geometry object contains point.

Parameters

  point | point in local coordinates

Returns
  true only if this geometry contains point p

Implements plask::GeometryObjectD< dim >.

Definition at line 172 of file leaf.cpp.

## ◆ getBoundingBox()

template<int dim>

Block< dim >::Box plask::Block< dim >::getBoundingBox | ( |  | ) | const
| override virtual

Calculate minimal rectangle which contains all points of geometry object.

Returns
  calculated rectangle

Implements plask::GeometryObjectD< dim >.

Reimplemented in plask::RotatedCuboid.

Definition at line 168 of file leaf.cpp.

## ◆ getTypeName()

template<int dim>

std::string plask::Block< dim >::getTypeName | ( |  | ) | const
| override virtual

Get name of object type (like: "block2d", "shelf", "stack3d", etc.).

This name is used as tag name when object is serialized to XML.

Returns
  name of object type

Implements plask::GeometryObject.

Reimplemented in plask::RotatedCuboid.

Definition at line 166 of file leaf.cpp.

## ◆ setSize() [1/2]

template<int dim>

void plask::Block< dim >::setSize | ( | DVec && | new_size | ) |
| inline

Set size and inform observers about changes.

Parameters

  new_size | new size to set

Definition at line 304 of file leaf.hpp.

## ◆ setSize() [2/2]

template<int dim>
template<typename... VecCtrArg>

void plask::Block< dim >::setSize | ( | VecCtrArg &&... | vecCtrArg | ) |
| inline

Set size and inform observers about changes.

Parameters

  vecCtrArg | new size to set (parameters to Vec<dim> constructor)

Definition at line 315 of file leaf.hpp.

## ◆ shallowCopy()

template<int dim>

shared_ptr< GeometryObject > plask::Block< dim >::shallowCopy | ( |  | ) | const
| inline override virtual

Get shallow copy of this.

In the shallow copy all children are the same

Returns
  shallow copy of this

Implements plask::GeometryObject.

Reimplemented in plask::RotatedCuboid.

Definition at line 342 of file leaf.hpp.

## ◆ writeXMLAttr() [1/5]

void plask::Block< 2 >::writeXMLAttr | ( | XMLWriter::Element & | dest_xml_object,
|  | const AxisNames & | axes
| ) |  | const
| virtual

Append XML attributes of this to `dest_xml_object`.

By default do nothing.

Parameters

  dest_xml_object | XML tag where attributes should be append
  axes | chosen name of axes

Reimplemented from plask::GeometryObject.

Reimplemented in plask::RotatedCuboid.

Definition at line 149 of file leaf.cpp.

## ◆ writeXMLAttr() [2/5]

void plask::Block< 3 >::writeXMLAttr | ( | XMLWriter::Element & | dest_xml_object,
|  | const AxisNames & | axes
| ) |  | const
| virtual

Append XML attributes of this to `dest_xml_object`.

By default do nothing.

Parameters

  dest_xml_object | XML tag where attributes should be append
  axes | chosen name of axes

Reimplemented from plask::GeometryObject.

Reimplemented in plask::RotatedCuboid.

Definition at line 156 of file leaf.cpp.

## ◆ writeXMLAttr() [3/5]

void plask::Block< 2 >::writeXMLAttr | ( | XMLWriter::Element & | dest_xml_object,
|  | const AxisNames & | axes
| ) |  | const
| virtual

Append XML attributes of this to `dest_xml_object`.

By default do nothing.

Parameters

  dest_xml_object | XML tag where attributes should be append
  axes | chosen name of axes

Reimplemented from plask::GeometryObject.

Reimplemented in plask::RotatedCuboid.

## ◆ writeXMLAttr() [4/5]

void plask::Block< 3 >::writeXMLAttr | ( | XMLWriter::Element & | dest_xml_object,
|  | const AxisNames & | axes
| ) |  | const
| virtual

Append XML attributes of this to `dest_xml_object`.

By default do nothing.

Parameters

  dest_xml_object | XML tag where attributes should be append
  axes | chosen name of axes

Reimplemented from plask::GeometryObject.

Reimplemented in plask::RotatedCuboid.

## ◆ writeXMLAttr() [5/5]

template<int dim>

void plask::Block< dim >::writeXMLAttr | ( | XMLWriter::Element & | dest_xml_object,
|  | const AxisNames & | axes
| ) |  | const
| override virtual

Append XML attributes of this to `dest_xml_object`.

By default do nothing.

Parameters

  dest_xml_object | XML tag where attributes should be append
  axes | chosen name of axes

Reimplemented from plask::GeometryObject.

Reimplemented in plask::RotatedCuboid.

## Member Data Documentation

## ◆ NAME

template<int dim>

const char * plask::Block< dim >::NAME = dim == 2 ? PLASK_BLOCK2D_NAME : PLASK_BLOCK3D_NAME
| static

Definition at line 291 of file leaf.hpp.

## ◆ size

template<int dim>

DVec plask::Block< dim >::size

Size and upper corner of block.

Lower corner is a zero vector.

Definition at line 298 of file leaf.hpp.

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

- plask/geometry/leaf.hpp
- plask/geometry/leaf.cpp