PLaSK library

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

Geometry trunk in 2D Cartesian space. More...

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

Inheritance diagram for plask::Geometry2DCartesian:
[legend]
Collaboration diagram for plask::Geometry2DCartesian:
[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 | 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.
void | setFrontMaterial (const shared_ptr< Material > material)
| Set material on the positive side of the axis along the extrusion.
shared_ptr< Material > | getFrontMaterial () const
void | setBackMaterial (const shared_ptr< Material > material)
| Set material on the negative side of the axis along the extrusion.
shared_ptr< Material > | getBackMaterial () const
| Geometry2DCartesian (shared_ptr< Extrusion > extrusion=shared_ptr< Extrusion >())
| Construct geometry over given `extrusion` object.
| Geometry2DCartesian (shared_ptr< GeometryObjectD< 2 > > childGeometry, double length)
| Construct geometry over extrusion object build on top of given 2D `childGeometry` and with given `length`.
shared_ptr< GeometryObjectD< 2 > > | getChild () const override
| Get child of extrusion object used by this geometry.
shared_ptr< GeometryObjectD< 2 > > | getChildUnsafe () const override
| Get child geometry.
void | removeAtUnsafe (std::size_t) override
| Remove child at given `index`.
shared_ptr< Material > | getMaterial (const Vec< 2, double > &p) const override
shared_ptr< Extrusion > | getExtrusion () const
| Get extrusion object included in this geometry.
shared_ptr< GeometryObjectD< 3 > > | getObject3D () const override
| Get extrusion object included in this geometry.
void | setExtrusion (shared_ptr< Extrusion > extrusion)
| Set new extrusion object for this geometry and inform observers about changing of geometry.
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< 2 >::LineSegment > &segments) const
| Add characteristic points to the set and edges connecting them.
std::set< typename GeometryObjectD< 2 >::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.
void | writeXML (XMLWriter::Element &parent_xml_object, WriteXMLCallback &write_cb, AxisNames axes) const override
| Write geometry tree branch rooted by this to XML.
Public Member Functions inherited from plask::GeometryD< 2 >
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.
virtual void | setEdges (Direction direction, const edge::Strategy &border_to_set)
| Set all edges in given direction or throw exception if this edges can't be set for this calculation space or direction.
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.
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_2D

## Additional Inherited Members
Public Types inherited from plask::GeometryD< 2 >
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< 2 >
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< 2 >
Primitive< dim >::Box | cachedBoundingBox
| Childs bounding box.

## Detailed Description

Geometry trunk in 2D Cartesian space.

See also
  plask::Extrusion

Definition at line 692 of file space.hpp.

## Constructor & Destructor Documentation

## ◆ Geometry2DCartesian() [1/2]

plask::Geometry2DCartesian::Geometry2DCartesian | ( | shared_ptr< Extrusion > | extrusion = `shared_ptr<Extrusion>()` | ) |
| explicit

Construct geometry over given `extrusion` object.

Parameters

  extrusion | extrusion geometry object

Definition at line 169 of file space.cpp.

## ◆ Geometry2DCartesian() [2/2]

plask::Geometry2DCartesian::Geometry2DCartesian | ( | shared_ptr< GeometryObjectD< 2 > > | childGeometry,
|  | double | length
| ) |  |

Construct geometry over extrusion object build on top of given 2D `childGeometry` and with given `length`.

It construct new extrusion object internally.

Parameters

  childGeometry,length | parameters which will be passed to plask::Extrusion constructor

Definition at line 175 of file space.cpp.

## Member Function Documentation

## ◆ addLineSegmentsToSet()

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

Add characteristic points to the set and edges connecting them.

Parameters

  [in,out] | segments | set to extend

Definition at line 898 of file space.hpp.

## ◆ addPointsAlongToSet()

void plask::Geometry2DCartesian::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 873 of file space.hpp.

## ◆ changedVersion()

shared_ptr< const GeometryObject > plask::Geometry2DCartesian::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 521 of file space.cpp.

## ◆ deepCopy()

shared_ptr< GeometryObject > plask::Geometry2DCartesian::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 266 of file space.cpp.

## ◆ getBackMaterial()

shared_ptr< Material > plask::Geometry2DCartesian::getBackMaterial | ( |  | ) | const
| inline

Returns
  material on the negative side of the axis along extrusion

Definition at line 806 of file space.hpp.

## ◆ getBottomEdge()

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

Get bottom edge strategy.

Returns
  bottom edge strategy

Definition at line 749 of file space.hpp.

## ◆ getChild()

shared_ptr< GeometryObjectD< 2 > > plask::Geometry2DCartesian::getChild | ( |  | ) | const
| override virtual

Get child of extrusion object used by this geometry.

Returns
  child geometry

Implements plask::GeometryD< 2 >.

Definition at line 181 of file space.cpp.

## ◆ getChildUnsafe()

shared_ptr< GeometryObjectD< 2 > > plask::Geometry2DCartesian::getChildUnsafe | ( |  | ) | const
| override virtual

Get child geometry.

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

Implements plask::GeometryD< 2 >.

Definition at line 188 of file space.cpp.

## ◆ getEdge()

const edge::Strategy & plask::Geometry2DCartesian::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 252 of file space.cpp.

## ◆ getExtrusion()

shared_ptr< Extrusion > plask::Geometry2DCartesian::getExtrusion | ( |  | ) | const
| inline

Get extrusion object included in this geometry.

Returns
  extrusion object included in this geometry

Definition at line 838 of file space.hpp.

## ◆ getFrontMaterial()

shared_ptr< Material > plask::Geometry2DCartesian::getFrontMaterial | ( |  | ) | const
| inline

Returns
  material on the positive side of the axis along the extrusion

Definition at line 794 of file space.hpp.

## ◆ getLeftEdge()

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

Get left edge strategy.

Returns
  left edge strategy

Definition at line 719 of file space.hpp.

## ◆ getLineSegments()

std::set< typename GeometryObjectD< 2 >::LineSegment > plask::Geometry2DCartesian::getLineSegments | ( |  | ) | const
| inline

Add characteristic points to the set and edges connecting them.

Returns
  segments set

Definition at line 912 of file space.hpp.

## ◆ getMaterial()

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

Definition at line 192 of file space.cpp.

## ◆ getObject3D()

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

Get extrusion object included in this geometry.

Returns
  extrusion object included in this geometry

Implements plask::Geometry.

Definition at line 844 of file space.hpp.

## ◆ getPointsAlong()

std::set< double > plask::Geometry2DCartesian::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 888 of file space.hpp.

## ◆ getRightEdge()

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

Get right edge strategy.

Returns
  right edge strategy

Definition at line 734 of file space.hpp.

## ◆ getTopEdge()

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

Get top edge strategy.

Returns
  top edge strategy

Definition at line 764 of file space.hpp.

## ◆ getTypeName()

std::string plask::Geometry2DCartesian::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 704 of file space.hpp.

## ◆ removeAtUnsafe()

void plask::Geometry2DCartesian::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 830 of file space.hpp.

## ◆ setBackMaterial()

void plask::Geometry2DCartesian::setBackMaterial | ( | const shared_ptr< Material > | material | ) |
| inline

Set material on the negative side of the axis along the extrusion.

Parameters

  material | material to set

Definition at line 800 of file space.hpp.

## ◆ setBottomEdge()

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

Set strategy for the bottom edge.

Parameters

  newValue | new strategy for the bottom edge

Definition at line 740 of file space.hpp.

## ◆ setEdge()

void plask::Geometry2DCartesian::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 243 of file space.cpp.

## ◆ setEdges()

void plask::Geometry2DCartesian::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 234 of file space.cpp.

## ◆ setExtrusion()

void plask::Geometry2DCartesian::setExtrusion | ( | shared_ptr< Extrusion > | extrusion | ) |

Set new extrusion object for this geometry and inform observers about changing of geometry.

Parameters

  extrusion | new extrusion object to set and use

Definition at line 212 of file space.cpp.

## ◆ setFrontMaterial()

void plask::Geometry2DCartesian::setFrontMaterial | ( | const shared_ptr< Material > | material | ) |
| inline

Set material on the positive side of the axis along the extrusion.

Parameters

  material | material to set

Definition at line 788 of file space.hpp.

## ◆ setLeftEdge()

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

Set strategy for the left edge.

Parameters

  newValue | new strategy for the left edge

Definition at line 710 of file space.hpp.

## ◆ setRightEdge()

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

Set strategy for the right edge.

Parameters

  newValue | new strategy for the right edge

Definition at line 725 of file space.hpp.

## ◆ setTopEdge()

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

Set strategy for the top edge.

Parameters

  newValue | new strategy for the top edge

Definition at line 755 of file space.hpp.

## ◆ shallowCopy()

shared_ptr< GeometryObject > plask::Geometry2DCartesian::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 257 of file space.cpp.

## ◆ wrapEdges()

GeometryD< 2 >::CoordsType plask::Geometry2DCartesian::wrapEdges | ( | CoordsType | p | ) | const
| override

Definition at line 205 of file space.cpp.

## ◆ writeXML()

void plask::Geometry2DCartesian::writeXML | ( | XMLWriter::Element & | parent_xml_object,
|  | WriteXMLCallback & | write_cb,
|  | AxisNames | parent_axes
| ) |  | const
| override virtual

Write geometry tree branch rooted by this to XML.

Default implementation write XML tag for this (with eventual name and axes attributes) call writeXMLAttr to append extra atribiutes, and write all real children. Typically you should overwrite only writeXMLAttr method.

Parameters

  parent_xml_object | destination, parent XML object
  write_cb | write callback, used to get names for objects and paths
  parent_axes | names of axes (typically used by parent of this)

Reimplemented from plask::GeometryObject.

Definition at line 278 of file space.cpp.

## Member Data Documentation

## ◆ NAME

constexpr const char* plask::Geometry2DCartesian::NAME = "cartesian" PLASK_GEOMETRY_TYPE_NAME_SUFFIX_2D
| static constexpr

Definition at line 702 of file space.hpp.

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

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