PLaSK library
Loading...
Searching...
No Matches
plask::Geometry2DCylindrical Class Reference

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

#include <plask/geometry/space.hpp>

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

Public Member Functions

std::string getTypeName () const override
 Get name of object type (like: "block2d", "shelf", "stack3d", etc.).
 
void setInnerEdge (const edge::UniversalStrategy &newValue)
 Set strategy for inner edge.
 
const edge::UniversalStrategygetInnerEdge ()
 Get inner edge strategy.
 
void setOuterEdge (const edge::UniversalStrategy &newValue)
 Set strategy for outer edge.
 
const edge::UniversalStrategygetOuterEdge ()
 Get outer edge strategy.
 
void setBottomEdge (const edge::Strategy &newValue)
 Set strategy for bottom edge.
 
const edge::StrategygetBottomEdge ()
 Get bottom edge strategy.
 
void setUpEdge (const edge::Strategy &newValue)
 Set strategy for up edge.
 
const edge::StrategygetUpEdge ()
 Get up edge strategy.
 
 Geometry2DCylindrical (shared_ptr< Revolution > revolution=shared_ptr< Revolution >())
 Construct geometry over given revolution object.
 
 Geometry2DCylindrical (shared_ptr< GeometryObjectD< 2 > > childGeometry)
 Construct geometry over revolution object build on top of given 2D childGeometry.
 
shared_ptr< GeometryObjectD< 2 > > getChild () const override
 Get child of revolution 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< MaterialgetMaterial (const Vec< 2, double > &p) const override
 
shared_ptr< RevolutiongetRevolution () const
 Get revolution object included in this geometry.
 
shared_ptr< GeometryObjectD< 3 > > getObject3D () const override
 Get revolution object included in this geometry.
 
void setRevolution (shared_ptr< Revolution > revolution)
 Set new revolution object for this geometry and inform observers about changing of geometry.
 
void setEdges (Direction direction, const edge::Strategy &border_lo, const edge::Strategy &border_hi) override
 Set all edges in given direction or throw exception if this edges can't be set for this calculation space or 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 edge or throw exception if this edge can't be set for this calculation space or direction.
 
const edge::StrategygetEdge (Direction direction, bool higher) const override
 Get edge strategy or throw exception if edge can't be get for this calculation space or direction.
 
bool isSymmetric (Direction direction) const override
 Check if structure in given direction is symmetric, i.e.
 
CoordsType wrapEdges (CoordsType p) const override
 
shared_ptr< GeometryObjectshallowCopy () const override
 Get shallow copy of this.
 
shared_ptr< GeometryObjectdeepCopy (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< doublegetPointsAlong (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 GeometryObjectchangedVersion (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< MaterialgetMaterial (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< GeometryObjectgetChildNo (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< CoordsTypegetLeafsPositions (const PathHints *path=nullptr) const
 Calculate and return a vector of positions of all leafs, optionally marked by path.
 
std::vector< CoordsTypegetLeafsPositions (const PathHints &path) const
 Calculate and return a vector of positions of all leafs, optionally marked by path.
 
std::vector< CoordsTypegetObjectPositions (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< CoordsTypegetObjectPositions (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< CoordsTypegetObjectPositions (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< CoordsTypegetObjectPositions (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 GeometryObjectgetMatchingAt (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 GeometryObjectgetMatchingAt (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 GeometryObjecthasRoleAt (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 GeometryObjecthasRoleAt (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.
 
Geometryoperator= (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.
 
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.
 
GeometryObjectoperator= (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< GeometryasGeometry ()
 Cast this to Geometry.
 
shared_ptr< const GeometryasGeometry () 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< doublegetPointsAlong (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< GeometryObjectgetRealChildNo (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< GeometryObjectdeepCopy ()
 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 charNAME = "cylindrical"
 

Protected Member Functions

const charalternativeDirectionName (std::size_t ax, std::size_t orient) const override
 
- Protected Member Functions inherited from plask::GeometryD< 2 >
shared_ptr< MaterialgetMaterialOrDefault (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
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)
 

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< MaterialdefaultMaterial
 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.
 
- Static Protected Member Functions inherited from plask::Geometry
template<typename EdgeType >
static const EdgeTypecastEdge (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 Cylindrical space.

See also
plask::Revolution

Definition at line 933 of file space.hpp.

Constructor & Destructor Documentation

◆ Geometry2DCylindrical() [1/2]

plask::Geometry2DCylindrical::Geometry2DCylindrical ( shared_ptr< Revolution revolution = shared_ptr<Revolution>())
explicit

Construct geometry over given revolution object.

Parameters
revolutionrevolution object

Definition at line 291 of file space.cpp.

◆ Geometry2DCylindrical() [2/2]

plask::Geometry2DCylindrical::Geometry2DCylindrical ( shared_ptr< GeometryObjectD< 2 > >  childGeometry)
explicit

Construct geometry over revolution object build on top of given 2D childGeometry.

It construct new plask::Revolution object internally.

Parameters
childGeometryparameters which will be passed to plask::Revolution constructor

Definition at line 297 of file space.cpp.

Member Function Documentation

◆ addLineSegmentsToSet()

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

Add characteristic points to the set and edges connecting them.

Parameters
[in,out]segmentsset to extend

Definition at line 1110 of file space.hpp.

◆ addPointsAlongToSet()

void plask::Geometry2DCylindrical::addPointsAlongToSet ( std::set< double > &  points,
Primitive< 3 >::Direction  direction,
unsigned  = 0,
double  = 0 
) const
inlineoverride

Add characteristic points information along specified axis to set.

Parameters
[in,out]pointsordered set of division points along specified axis
directionaxis direction

Definition at line 1085 of file space.hpp.

◆ alternativeDirectionName()

const char * plask::Geometry2DCylindrical::alternativeDirectionName ( std::size_t  ax,
std::size_t  orient 
) const
inlineoverrideprotectedvirtual
Returns
alternative direction name
Parameters
axaxis
orientorientation

Reimplemented from plask::Geometry.

Definition at line 1141 of file space.hpp.

◆ changedVersion()

shared_ptr< const GeometryObject > plask::Geometry2DCylindrical::changedVersion ( const Changer changer,
Vec< 3, double > *  translation = 0 
) const
overridevirtual

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

Parameters
[in]changerchanger which will be applied to subtree with this in root
[out]translationoptional, 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 535 of file space.cpp.

◆ deepCopy()

shared_ptr< GeometryObject > plask::Geometry2DCylindrical::deepCopy ( std::map< const GeometryObject *, shared_ptr< GeometryObject > > &  copied) const
overridevirtual

Get deep copy of this.

In the deep copy all children are copied.

Parameters
copiedmap containing copied objects to avoid double copying
Returns
deep copy of this

Implements plask::GeometryObject.

Definition at line 399 of file space.cpp.

◆ getBottomEdge()

const edge::Strategy & plask::Geometry2DCylindrical::getBottomEdge ( )
inline

Get bottom edge strategy.

Returns
bottom edge strategy

Definition at line 989 of file space.hpp.

◆ getChild()

shared_ptr< GeometryObjectD< 2 > > plask::Geometry2DCylindrical::getChild ( ) const
overridevirtual

Get child of revolution object used by this geometry.

Returns
child geometry

Implements plask::GeometryD< 2 >.

Definition at line 303 of file space.cpp.

◆ getChildUnsafe()

shared_ptr< GeometryObjectD< 2 > > plask::Geometry2DCylindrical::getChildUnsafe ( ) const
overridevirtual

Get child geometry.

Returns
child geometry or nullptr if there is no child

Implements plask::GeometryD< 2 >.

Definition at line 310 of file space.cpp.

◆ getEdge()

const edge::Strategy & plask::Geometry2DCylindrical::getEdge ( Direction  direction,
bool  higher 
) const
overridevirtual

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

Parameters
directionsee Direction
highertrue for higher bound, false for lower
Returns
edge strategy for given edge

Implements plask::Geometry.

Definition at line 387 of file space.cpp.

◆ getInnerEdge()

const edge::UniversalStrategy & plask::Geometry2DCylindrical::getInnerEdge ( )
inline

Get inner edge strategy.

Returns
inner edge strategy

Definition at line 959 of file space.hpp.

◆ getLineSegments()

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

Add characteristic points to the set and edges connecting them.

Returns
segments set

Definition at line 1124 of file space.hpp.

◆ getMaterial()

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

Definition at line 314 of file space.cpp.

◆ getObject3D()

shared_ptr< GeometryObjectD< 3 > > plask::Geometry2DCylindrical::getObject3D ( ) const
inlineoverridevirtual

Get revolution object included in this geometry.

Returns
revolution object included in this geometry

Implements plask::Geometry.

Definition at line 1042 of file space.hpp.

◆ getOuterEdge()

const edge::UniversalStrategy & plask::Geometry2DCylindrical::getOuterEdge ( )
inline

Get outer edge strategy.

Returns
outer edge strategy

Definition at line 974 of file space.hpp.

◆ getPointsAlong()

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

Get characteristic points information along specified axis.

Parameters
directionaxis direction
Returns
ordered set of division points along specified axis

Definition at line 1100 of file space.hpp.

◆ getRevolution()

shared_ptr< Revolution > plask::Geometry2DCylindrical::getRevolution ( ) const
inline

Get revolution object included in this geometry.

Returns
revolution object included in this geometry

Definition at line 1036 of file space.hpp.

◆ getTypeName()

std::string plask::Geometry2DCylindrical::getTypeName ( ) const
inlineoverridevirtual

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 944 of file space.hpp.

◆ getUpEdge()

const edge::Strategy & plask::Geometry2DCylindrical::getUpEdge ( )
inline

Get up edge strategy.

Returns
up edge strategy

Definition at line 1004 of file space.hpp.

◆ isSymmetric()

bool plask::Geometry2DCylindrical::isSymmetric ( Direction  direction) const
inlineoverridevirtual

Check if structure in given direction is symmetric, i.e.

one of edge in this direction is mirror.

Parameters
directiondirection to check
Returns
true only if structure is symmetric in given direction

Reimplemented from plask::Geometry.

Definition at line 1068 of file space.hpp.

◆ removeAtUnsafe()

void plask::Geometry2DCylindrical::removeAtUnsafe ( std::size_t  index)
inlineoverridevirtual

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
indexindex of real child to remove

Reimplemented from plask::GeometryObject.

Definition at line 1028 of file space.hpp.

◆ setBottomEdge()

void plask::Geometry2DCylindrical::setBottomEdge ( const edge::Strategy newValue)
inline

Set strategy for bottom edge.

Parameters
newValuenew strategy for bottom edge

Definition at line 980 of file space.hpp.

◆ setEdge()

void plask::Geometry2DCylindrical::setEdge ( Direction  direction,
bool  higher,
const edge::Strategy border_to_set 
)
overridevirtual

Set edge or throw exception if this edge can't be set for this calculation space or direction.

Parameters
directionsee Direction
highertrue for higher bound, false for lower
border_to_setnew edge strategy for given edge

Implements plask::Geometry.

Definition at line 374 of file space.cpp.

◆ setEdges() [1/2]

void plask::Geometry2DCylindrical::setEdges ( Direction  direction,
const edge::Strategy border_lo,
const edge::Strategy border_hi 
)
overridevirtual

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

Parameters
directionsee Direction
border_lonew edge strategy for lower edge in given direction
border_hinew edge strategy for higher edge in given direction

Implements plask::Geometry.

Definition at line 359 of file space.cpp.

◆ setEdges() [2/2]

void plask::Geometry2DCylindrical::setEdges ( Direction  direction,
const edge::Strategy border_to_set 
)
overridevirtual

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

Parameters
directionsee Direction
border_to_setnew edge strategy for given edges

Reimplemented from plask::Geometry.

Definition at line 346 of file space.cpp.

◆ setInnerEdge()

void plask::Geometry2DCylindrical::setInnerEdge ( const edge::UniversalStrategy newValue)
inline

Set strategy for inner edge.

Parameters
newValuenew strategy for inner edge

Definition at line 950 of file space.hpp.

◆ setOuterEdge()

void plask::Geometry2DCylindrical::setOuterEdge ( const edge::UniversalStrategy newValue)
inline

Set strategy for outer edge.

Parameters
newValuenew strategy for outer edge

Definition at line 965 of file space.hpp.

◆ setRevolution()

void plask::Geometry2DCylindrical::setRevolution ( shared_ptr< Revolution revolution)

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

Parameters
revolutionnew revolution object to set and use

Definition at line 336 of file space.cpp.

◆ setUpEdge()

void plask::Geometry2DCylindrical::setUpEdge ( const edge::Strategy newValue)
inline

Set strategy for up edge.

Parameters
newValuenew strategy for up edge

Definition at line 995 of file space.hpp.

◆ shallowCopy()

shared_ptr< GeometryObject > plask::Geometry2DCylindrical::shallowCopy ( ) const
overridevirtual

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 392 of file space.cpp.

◆ wrapEdges()

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

Definition at line 329 of file space.cpp.

◆ writeXML()

void plask::Geometry2DCylindrical::writeXML ( XMLWriter::Element parent_xml_object,
WriteXMLCallback write_cb,
AxisNames  parent_axes 
) const
overridevirtual

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_objectdestination, parent XML object
write_cbwrite callback, used to get names for objects and paths
parent_axesnames of axes (typically used by parent of this)

Reimplemented from plask::GeometryObject.

Definition at line 409 of file space.cpp.

Member Data Documentation

◆ NAME

constexpr const char* plask::Geometry2DCylindrical::NAME = "cylindrical"
staticconstexpr

Definition at line 942 of file space.hpp.


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