PLaSK library

Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
plask::Geometry3D Class Reference

Geometry trunk in 3D space. More...

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

Inheritance diagram for plask::Geometry3D:
[legend]
Collaboration diagram for plask::Geometry3D:
[legend]

## Public Member Functions
std::string | getTypeName () const override
| Get name of object type (like: "block2d", "shelf", "stack3d", etc.).
void | setLeftEdge (const edge::Strategy &newValue)
| Set strategy for the left edge.
const edge::Strategy & | getLeftEdge ()
| Get left edge strategy.
void | setRightEdge (const edge::Strategy &newValue)
| Set strategy for the right edge.
const edge::Strategy & | getRightEdge ()
| Get right edge strategy.
void | setBottomEdge (const edge::Strategy &newValue)
| Set strategy for the bottom edge.
const edge::Strategy & | getBottomEdge ()
| Get bottom edge strategy.
void | setTopEdge (const edge::Strategy &newValue)
| Set strategy for the top edge.
const edge::Strategy & | getTopEdge ()
| Get top edge strategy.
void | setEdges (Direction direction, const edge::Strategy &border_lo, const edge::Strategy &border_hi) override
| Set strategies for both edges in specified direction.
void | setEdges (Direction direction, const edge::Strategy &border_to_set) override
| Set all edges in given direction or throw exception if this edges can't be set for this calculation space or direction.
void | setEdge (Direction direction, bool higher, const edge::Strategy &border_to_set) override
| Set strategies for a edge in specified direction.
const edge::Strategy & | getEdge (Direction direction, bool higher) const override
| Get edge strategy or throw exception if edge can't be get for this calculation space or direction.
| Geometry3D (shared_ptr< GeometryObjectD< 3 > > child=shared_ptr< GeometryObjectD< 3 > >())
| Construct geometry over given 3D `child` object.
shared_ptr< GeometryObjectD< 3 > > | getChild () const override
| Get child object used by this geometry.
shared_ptr< GeometryObjectD< 3 > > | getChildUnsafe () const override
| Get child geometry.
void | setChildUnsafe (shared_ptr< GeometryObjectD< 3 > > child)
| Set new child.
void | setChild (shared_ptr< GeometryObjectD< 3 > > child)
| Set new child.
bool | hasChild () const
void | removeAtUnsafe (std::size_t) override
| Remove child at given `index`.
shared_ptr< GeometryObjectD< 3 > > | getObject3D () const override
| Get child object used by this geometry.
shared_ptr< Material > | getMaterial (const Vec< 3, double > &p) const override
CoordsType | wrapEdges (CoordsType p) const override
shared_ptr< GeometryObject > | shallowCopy () const override
| Get shallow copy of this.
shared_ptr< GeometryObject > | deepCopy (std::map< const GeometryObject *, shared_ptr< GeometryObject > > &copied) const override
| Get deep copy of this.
void | addPointsAlongToSet (std::set< double > &points, Primitive< 3 >::Direction direction, unsigned=0, double=0) const override
| Add characteristic points information along specified axis to set.
std::set< double > | getPointsAlong (Primitive< 3 >::Direction direction) const
| Get characteristic points information along specified axis.
void | addLineSegmentsToSet (std::set< typename GeometryObjectD< 3 >::LineSegment > &segments) const
| Add characteristic points to the set and edges connecting them.
std::set< typename GeometryObjectD< 3 >::LineSegment > | getLineSegments () const
| Add characteristic points to the set and edges connecting them.
shared_ptr< const GeometryObject > | changedVersion (const Changer &changer, Vec< 3, double > *translation=0) const override
| Get this or copy of this child with some changes in subtree.
Public Member Functions inherited from plask::GeometryD< 3 >
int | getDimensionsCount () const override
| Get number of dimensions.
virtual shared_ptr< Material > | getMaterial (const Vec< dim, double > &p) const
| Get material in point `p` of child space.
const Primitive< dim >::Box & | getChildBoundingBox () const
| Get bounding box of child geometry.
bool | hasInSubtree (const GeometryObject &el) const override
| Check if el is in subtree with child (see getChild) of `this` in root.
bool | hasInSubtree (shared_ptr< const GeometryObject > el, const PathHints *pathHints) const
Subtree | getPathsTo (const GeometryObject &el, const PathHints *pathHints=0) const override
| Find paths to el.
void | getObjectsToVec (const Predicate &predicate, std::vector< shared_ptr< const GeometryObject > > &dest, const PathHints *path=0) const override
| Append all objects from subtree with child (see getChild) of this in root, which fulfill predicate to vector `dest`.
std::size_t | getChildrenCount () const override
| Get number of children of `this`.
shared_ptr< GeometryObject > | getChildNo (std::size_t child_no) const override
| Get child_no-th child of this.
std::vector< shared_ptr< const GeometryObject > > | getLeafs (const PathHints *path=nullptr) const
| Get all leafs in subtree with child (see getChild) of this object as root.
std::vector< shared_ptr< const GeometryObject > > | getLeafs (const PathHints &path) const
| Get all leafs in subtree with child (see getChild) of this object as root.
std::vector< CoordsType > | getLeafsPositions (const PathHints *path=nullptr) const
| Calculate and return a vector of positions of all leafs, optionally marked by path.
std::vector< CoordsType > | getLeafsPositions (const PathHints &path) const
| Calculate and return a vector of positions of all leafs, optionally marked by path.
std::vector< CoordsType > | getObjectPositions (const GeometryObject &object, const PathHints *path=nullptr) const
| Calculate and return a vector of positions of all instances of given `object`, optionally marked by path.
std::vector< CoordsType > | getObjectPositions (const GeometryObject &object, const PathHints &path) const
| Calculate and return a vector of positions of all instances of given `object`, optionally marked by path.
std::vector< CoordsType > | getObjectPositions (const shared_ptr< const GeometryObject > &object, const PathHints *path=nullptr) const
| Calculate and return a vector of positions of all instances of given `object`, optionally marked by path.
std::vector< CoordsType > | getObjectPositions (const shared_ptr< const GeometryObject > &object, const PathHints &path) const
| Calculate and return a vector of positions of all instances of given `object`, optionally marked by path.
std::vector< typename Primitive< DIM >::Box > | getLeafsBoundingBoxes (const PathHints *path=nullptr) const
| Calculate bounding boxes of all leafs, optionally marked by path.
std::vector< typename Primitive< DIM >::Box > | getLeafsBoundingBoxes (const PathHints &path) const
| Calculate bounding boxes of all leafs, optionally marked by path.
std::vector< typename Primitive< DIM >::Box > | getObjectBoundingBoxes (const GeometryObject &object, const PathHints *path=nullptr) const
| Calculate bounding boxes (relative to child of this) of all instances of given `object`, optionally marked by path.
std::vector< typename Primitive< DIM >::Box > | getObjectBoundingBoxes (const GeometryObject &object, const PathHints &path) const
| Calculate bounding boxes (relative to child of this) of all instances of given `object`, optionally marked by path.
std::vector< typename Primitive< DIM >::Box > | getObjectBoundingBoxes (const shared_ptr< const GeometryObject > &object, const PathHints *path=nullptr) const
| Calculate bounding boxes (relative to child of this) of all instances of given `object`, optionally marked by path.
std::vector< typename Primitive< DIM >::Box > | getObjectBoundingBoxes (const shared_ptr< const GeometryObject > &object, const PathHints &path) const
| Calculate bounding boxes (relative to child of this) of all instances of given `object`, optionally marked by path.
std::vector< shared_ptr< const GeometryObject > > | getObjectsWithRole (const std::string &role) const
| Get all objects with a specified role with this object as root.
GeometryObject::Subtree | getPathsAt (const CoordsType &point, bool all=false) const
| Find all paths to objects which lies at given `point`.
shared_ptr< const GeometryObject > | getMatchingAt (const CoordsType &point, const Predicate &predicate, const PathHints *path=0)
| Get object closest to the root (child of this), which contains specific point and fulfills the predicate.
shared_ptr< const GeometryObject > | getMatchingAt (const CoordsType &point, const Predicate &predicate, const PathHints &path)
| Get object closest to the root (child of this), which contains specific point and fulfills the predicate.
bool | objectIncludes (const GeometryObject &object, const PathHints *path, const CoordsType &point) const
| Check if specified geometry object contains a point point.
bool | objectIncludes (const GeometryObject &object, const PathHints &path, const CoordsType &point) const
| Check if specified geometry object contains a point point.
bool | objectIncludes (const GeometryObject &object, const CoordsType &point) const
| Check if specified geometry object contains a point point.
shared_ptr< const GeometryObject > | hasRoleAt (const std::string &role_name, const CoordsType &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 CoordsType &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).
std::set< std::string > | getRolesAt (const CoordsType &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 CoordsType &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`.
void | setPlanarEdges (const edge::Strategy &border_to_set) override
| Set all planar edges or throw exception if this edges can't be set for this calculation space or direction.
void | setPlanarEdges (const edge::Strategy &border_to_set)
| Set all planar edges or throw exception if this edges can't be set for this calculation space or direction.
void | setPlanarEdges (const edge::Strategy &border_to_set)
| Set all planar edges or throw exception if this edges can't be set for this calculation space or direction.
virtual CoordsType | wrapEdges (CoordsType p) const=0
| Wrap point to canonical position respecting edge settings (mirror, extend and periodic)
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 | 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`.
Public Member Functions inherited from plask::Geometry
| Geometry (shared_ptr< Material > defaultMaterial=make_shared< materials::Air >())
| Calculation space constructor, set default material.
| Geometry (const Geometry &to_copy)
| Initialize this to be the same as `to_copy` but doesn't have any changes observer.
Geometry & | operator= (const Geometry &to_copy)
| Set this to be the same as `to_copy` but doesn't changed changes observer.
virtual | ~Geometry ()
| Inform observators that this is being deleted.
void | setAllEdges (const edge::Strategy &border_to_set)
| Set all edges (planar and up-bottom).
void | setEdges (const std::function< plask::optional< std::string >(const std::string &s)> &borderValuesGetter, const AxisNames &axesNames, const MaterialsDB &materialsDB=MaterialsDB::getDefault(), bool draft=false)
| Set edges using string value which is gotten from `borderValuesGetter`.
virtual bool | isSymmetric (Direction direction) const
| Check if structure in given direction is symmetric, i.e.
bool | isPeriodic (Direction direction) const
| Check if structure in given direction is periodic, i.e.
bool | isExtended (Direction direction, bool higher) const
| Check if structure extends in given direction.
Type | getType () const override
| Check if geometry is: leaf, transform or container type object.
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.
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.

## Static Public Attributes
static constexpr const char * | NAME = "cartesian" PLASK_GEOMETRY_TYPE_NAME_SUFFIX_3D

## Additional Inherited Members
Public Types inherited from plask::GeometryD< 3 >
enum |
typedef Vec< dim, double > | CoordsType
Public Types inherited from plask::Geometry
enum | Direction { DIRECTION_LONG = Primitive<3>::DIRECTION_LONG , DIRECTION_TRAN = Primitive<3>::DIRECTION_TRAN , DIRECTION_VERT = Primitive<3>::DIRECTION_VERT }
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.
Static Public Member Functions inherited from plask::GeometryObject
static bool | PredicateIsLeaf (const GeometryObject &el)
| Predicate which check if given object is leaf.
Public Attributes inherited from plask::Geometry
shared_ptr< Material > | defaultMaterial
| Default material (which will be used for places in which geometry doesn't define any material), typically air.
AxisNames | axisNames
| Axis names for this geometry.
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.
Protected Member Functions inherited from plask::GeometryD< 3 >
shared_ptr< Material > | getMaterialOrDefault (const Vec< dim, double > &p) const
| Get material from geometry or return default material if geometry returns nullptr.
void | onChildChanged (const GeometryObject::Event &evt)
| Refresh bounding box cache.
void | disconnectOnChildChanged ()
| Disconnect onChildChanged from current child change signal.
void | initNewChild ()
| Initialize bounding box cache and onChange connection.
virtual | ~GeometryD ()
Protected Member Functions inherited from plask::Geometry
virtual const char * | alternativeDirectionName (std::size_t ax, std::size_t orient) const
void | storeEdgeInXML (XMLWriter::Element &dest_xml_object, Direction direction, bool higher) const
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)
Static Protected Member Functions inherited from plask::Geometry
template<typename EdgeType >
static const EdgeType & | castEdge (const edge::Strategy &strategy)
| Dynamic cast edge to given type and throw exception in case of bad cast.
Protected Attributes inherited from plask::GeometryD< 3 >
Primitive< dim >::Box | cachedBoundingBox
| Childs bounding box.

## Detailed Description

Geometry trunk in 3D space.

Definition at line 1150 of file space.hpp.

## Constructor & Destructor Documentation

## ◆ Geometry3D()

plask::Geometry3D::Geometry3D | ( | shared_ptr< GeometryObjectD< 3 > > | child = `shared_ptr<GeometryObjectD<3>>()` | ) |
| explicit

Construct geometry over given 3D `child` object.

Parameters

  child | child, of equal to nullptr (default) you should call setChild before use this geometry

Definition at line 456 of file space.cpp.

## Member Function Documentation

## ◆ addLineSegmentsToSet()

void plask::Geometry3D::addLineSegmentsToSet | ( | std::set< typename GeometryObjectD< 3 >::LineSegment > & | segments | ) | const
| inline

Add characteristic points to the set and edges connecting them.

Parameters

  [in,out] | segments | set to extend

Definition at line 1328 of file space.hpp.

## ◆ addPointsAlongToSet()

void plask::Geometry3D::addPointsAlongToSet | ( | std::set< double > & | points,
|  | Primitive< 3 >::Direction | direction,
|  | unsigned | = `0`,
|  | double | = `0`
| ) |  | const
| inline override

Add characteristic points information along specified axis to set.

Parameters

  [in,out] | points | ordered set of division points along specified axis
  | direction | axis direction

Definition at line 1303 of file space.hpp.

## ◆ changedVersion()

shared_ptr< const GeometryObject > plask::Geometry3D::changedVersion | ( | const Changer & | changer,
|  | Vec< 3, double > * | translation = `0`
| ) |  | const
| override virtual

Get this or copy of this child with some changes in subtree.

Parameters

  [in] | changer | changer which will be applied to subtree with this in root
  [out] | translation | optional, if non-null, recommended translation of this after change will be stored

Returns
  pointer to this (if nothing was change) or copy of this with some changes in subtree

Implements plask::GeometryObject.

Definition at line 547 of file space.cpp.

## ◆ deepCopy()

shared_ptr< GeometryObject > plask::Geometry3D::deepCopy | ( | std::map< const GeometryObject *, shared_ptr< GeometryObject > > & | copied | ) | const
| override virtual

Get deep copy of this.

In the deep copy all children are copied.

Parameters

  copied | map containing copied objects to avoid double copying

Returns
  deep copy of this

Implements plask::GeometryObject.

Definition at line 507 of file space.cpp.

## ◆ getBottomEdge()

const edge::Strategy & plask::Geometry3D::getBottomEdge | ( |  | ) |
| inline

Get bottom edge strategy.

Returns
  bottom edge strategy

Definition at line 1205 of file space.hpp.

## ◆ getChild()

shared_ptr< GeometryObjectD< 3 > > plask::Geometry3D::getChild | ( |  | ) | const
| override virtual

Get child object used by this geometry.

Returns
  child object

Implements plask::GeometryD< 3 >.

Definition at line 461 of file space.cpp.

## ◆ getChildUnsafe()

shared_ptr< GeometryObjectD< 3 > > plask::Geometry3D::getChildUnsafe | ( |  | ) | const
| override virtual

Get child geometry.

Returns
  child geometry or `nullptr` if there is no child

Implements plask::GeometryD< 3 >.

Definition at line 466 of file space.cpp.

## ◆ getEdge()

const edge::Strategy & plask::Geometry3D::getEdge | ( | Direction | direction,
|  | bool | higher
| ) |  | const
| override virtual

Get edge strategy or throw exception if edge can't be get for this calculation space or direction.

Parameters

  direction | see Direction
  higher | `true` for higher bound, `false` for lower

Returns
  edge strategy for given edge

Implements plask::Geometry.

Definition at line 443 of file space.cpp.

## ◆ getLeftEdge()

const edge::Strategy & plask::Geometry3D::getLeftEdge | ( |  | ) |
| inline

Get left edge strategy.

Returns
  left edge strategy

Definition at line 1175 of file space.hpp.

## ◆ getLineSegments()

std::set< typename GeometryObjectD< 3 >::LineSegment > plask::Geometry3D::getLineSegments | ( |  | ) | const
| inline

Add characteristic points to the set and edges connecting them.

Returns
  segments set

Definition at line 1342 of file space.hpp.

## ◆ getMaterial()

shared_ptr< Material > plask::Geometry3D::getMaterial | ( | const Vec< 3, double > & | p | ) | const
| override

Definition at line 474 of file space.cpp.

## ◆ getObject3D()

shared_ptr< GeometryObjectD< 3 > > plask::Geometry3D::getObject3D | ( |  | ) | const
| override virtual

Get child object used by this geometry.

Returns
  child object

Implements plask::Geometry.

Definition at line 470 of file space.cpp.

## ◆ getPointsAlong()

std::set< double > plask::Geometry3D::getPointsAlong | ( | Primitive< 3 >::Direction | direction | ) | const
| inline

Get characteristic points information along specified axis.

Parameters

  direction | axis direction

Returns
  ordered set of division points along specified axis

Definition at line 1318 of file space.hpp.

## ◆ getRightEdge()

const edge::Strategy & plask::Geometry3D::getRightEdge | ( |  | ) |
| inline

Get right edge strategy.

Returns
  right edge strategy

Definition at line 1190 of file space.hpp.

## ◆ getTopEdge()

const edge::Strategy & plask::Geometry3D::getTopEdge | ( |  | ) |
| inline

Get top edge strategy.

Returns
  top edge strategy

Definition at line 1220 of file space.hpp.

## ◆ getTypeName()

std::string plask::Geometry3D::getTypeName | ( |  | ) | const
| inline 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.

Definition at line 1160 of file space.hpp.

## ◆ hasChild()

bool plask::Geometry3D::hasChild | ( |  | ) | const
| inline

Returns
  `true` only if child is set (is not `nullptr`)

Definition at line 1280 of file space.hpp.

## ◆ removeAtUnsafe()

void plask::Geometry3D::removeAtUnsafe | ( | std::size_t | index | ) |
| inline override virtual

Remove child at given `index`.

This is unsafe but fast version, it doesn't check index and doesn't call fireChildrenChanged() to inform listeners about this object changes. Caller should do this manually or call removeAt(std::size_t) instead.

Default implementation throw exception but this method is overwritten in subroles.

Parameters

  index | index of real child to remove

Reimplemented from plask::GeometryObject.

Definition at line 1282 of file space.hpp.

## ◆ setBottomEdge()

void plask::Geometry3D::setBottomEdge | ( | const edge::Strategy & | newValue | ) |
| inline

Set strategy for the bottom edge.

Parameters

  newValue | new strategy for the bottom edge

Definition at line 1196 of file space.hpp.

## ◆ setChild()

void plask::Geometry3D::setChild | ( | shared_ptr< GeometryObjectD< 3 > > | child | ) |
| inline

Set new child.

Informs observers about change.

Parameters

  child | new child

Definition at line 1271 of file space.hpp.

## ◆ setChildUnsafe()

void plask::Geometry3D::setChildUnsafe | ( | shared_ptr< GeometryObjectD< 3 > > | child | ) |
| inline

Set new child.

This method doesn't inform observers about change.

Parameters

  child | new child

Definition at line 1261 of file space.hpp.

## ◆ setEdge()

void plask::Geometry3D::setEdge | ( | Direction | direction,
|  | bool | higher,
|  | const edge::Strategy & | border_to_set
| ) |  |
| override virtual

Set strategies for a edge in specified direction.

Parameters

  direction | direction of the edges
  higher | indicates whether higher- or lower-coordinate edge is to be set
  border_to_set | new strategy for the edge with higher coordinate

Implements plask::Geometry.

Definition at line 434 of file space.cpp.

## ◆ setEdges() [1/2]

void plask::Geometry3D::setEdges | ( | Direction | direction,
|  | const edge::Strategy & | border_lo,
|  | const edge::Strategy & | border_hi
| ) |  |
| override virtual

Set strategies for both edges in specified direction.

Parameters

  direction | direction of the edges
  border_lo | new strategy for the edge with lower coordinate
  border_hi | new strategy for the edge with higher coordinate

Implements plask::Geometry.

Definition at line 416 of file space.cpp.

## ◆ setEdges() [2/2]

void plask::Geometry3D::setEdges | ( | Direction | direction,
|  | const edge::Strategy & | border_to_set
| ) |  |
| override virtual

Set all edges in given direction or throw exception if this edges can't be set for this calculation space or direction.

Parameters

  direction | see Direction
  border_to_set | new edge strategy for given edges

Reimplemented from plask::Geometry.

Definition at line 425 of file space.cpp.

## ◆ setLeftEdge()

void plask::Geometry3D::setLeftEdge | ( | const edge::Strategy & | newValue | ) |
| inline

Set strategy for the left edge.

Parameters

  newValue | new strategy for the left edge

Definition at line 1166 of file space.hpp.

## ◆ setRightEdge()

void plask::Geometry3D::setRightEdge | ( | const edge::Strategy & | newValue | ) |
| inline

Set strategy for the right edge.

Parameters

  newValue | new strategy for the right edge

Definition at line 1181 of file space.hpp.

## ◆ setTopEdge()

void plask::Geometry3D::setTopEdge | ( | const edge::Strategy & | newValue | ) |
| inline

Set strategy for the top edge.

Parameters

  newValue | new strategy for the top edge

Definition at line 1211 of file space.hpp.

## ◆ shallowCopy()

shared_ptr< GeometryObject > plask::Geometry3D::shallowCopy | ( |  | ) | const
| override virtual

Get shallow copy of this.

In the shallow copy all children are the same

Returns
  shallow copy of this

Implements plask::GeometryObject.

Definition at line 499 of file space.cpp.

## ◆ wrapEdges()

GeometryD< 3 >::CoordsType plask::Geometry3D::wrapEdges | ( | CoordsType | p | ) | const
| override

Definition at line 490 of file space.cpp.

## Member Data Documentation

## ◆ NAME

constexpr const char* plask::Geometry3D::NAME = "cartesian" PLASK_GEOMETRY_TYPE_NAME_SUFFIX_3D
| static constexpr

Definition at line 1158 of file space.hpp.

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

- plask/geometry/space.hpp
- plask/geometry/space.cpp