|
std::string | getTypeName () const override |
| Get name of object type (like: "block2d", "shelf", "stack3d", etc.).
|
|
| StackContainer (const double baseHeight=0.0, const ChildAligner &aligner=DefaultAligner()) |
|
void | onChildChanged (const GeometryObject::Event &evt) override |
| Called by child.change signal, call this change.
|
|
PathHints::Hint | insertUnsafe (const shared_ptr< ChildType > &el, const std::size_t pos, const ChildAligner &aligner) |
| Insert children to stack at given position.
|
|
PathHints::Hint | insertUnsafe (const shared_ptr< ChildType > &el, const std::size_t pos) |
|
PathHints::Hint | insert (const shared_ptr< ChildType > &el, const std::size_t pos, const ChildAligner &aligner) |
| Insert children to stack at given position.
|
|
PathHints::Hint | insert (const shared_ptr< ChildType > &el, const std::size_t pos) |
|
PathHints::Hint | addUnsafe (const shared_ptr< ChildType > &el, const ChildAligner &aligner) |
| Add children to stack top.
|
|
PathHints::Hint | addUnsafe (const shared_ptr< ChildType > &el) |
|
PathHints::Hint | add (const shared_ptr< ChildType > &el, const ChildAligner &aligner) |
| Add children to stack top.
|
|
PathHints::Hint | add (const shared_ptr< ChildType > &el) |
|
PathHints::Hint | push_back (const shared_ptr< ChildType > &el, const ChildAligner &aligner) |
| Add child to stack top.
|
|
PathHints::Hint | push_back (const shared_ptr< ChildType > &el) |
|
PathHints::Hint | push_front (const shared_ptr< ChildType > &el, const ChildAligner &aligner) |
| Add child to stack bottom, move all other children up.
|
|
PathHints::Hint | push_front (const shared_ptr< ChildType > &el) |
|
const ChildAligner & | getAlignerAt (std::size_t child_no) const |
|
bool | removeIfTUnsafe (const std::function< bool(const shared_ptr< TranslationT > &c)> &predicate) override |
| Remove all children which fulfil predicate.
|
|
void | removeAtUnsafe (std::size_t index) override |
| Remove child at given index .
|
|
void | writeXML (XMLWriter::Element &parent_xml_object, GeometryObject::WriteXMLCallback &write_cb, AxisNames parent_axes) const override |
| Call writeXMLAttr for this container attribute and writeXMLChildAttr for each child tag.
|
|
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.
|
|
const StackContainer< 2 >::ChildAligner & | DefaultAligner () |
|
const StackContainer< 3 >::ChildAligner & | DefaultAligner () |
|
const StackContainer< 2 >::ChildAligner & | DefaultAligner () |
|
const StackContainer< 3 >::ChildAligner & | DefaultAligner () |
|
| WithAligners (Args &&... args) |
| Delegate all constructors to parent class.
|
|
void | onChildChanged (const GeometryObject::Event &evt) override |
| Called by child.change signal.
|
|
bool | removeIfTUnsafe (const std::function< bool(const shared_ptr< TranslationT > &c)> &predicate) override |
|
void | removeAtUnsafe (std::size_t index) override |
|
void | writeXMLChildAttr (XMLWriter::Element &dest_xml_child_tag, std::size_t child_index, const AxisNames &axes) const override |
|
void | move (std::size_t index, ChildAligner aligner) |
| Set new aligner for child at given index .
|
|
void | move (shared_ptr< const TranslationT > child, ChildAligner aligner) |
| Set new aligner for given child .
|
|
void | move (const TranslationT &child, ChildAligner aligner) |
| Set new aligner for given child .
|
|
const std::vector< ChildAligner > & | getAligners () const |
| Get const reference to aligners.
|
|
| StackContainerBaseImpl (const double baseHeight=0.0) |
|
double | getBaseHeight () const |
| Get component of position in growing direction where stack starts.
|
|
void | setBaseHeight (double newBaseHeight) |
| Set height where should start first object.
|
|
void | setZeroBefore (std::size_t index) |
| Set zero coordinate at the bottom of the specified object.
|
|
void | setZeroBefore (const shared_ptr< ChildType > &object, const PathHints *path=0) |
| Set zero coordinate at the bottom of the specified object.
|
|
void | setZeroBefore (const shared_ptr< ChildType > &object, const PathHints &path) |
| Set zero coordinate at the bottom of the specified object.
|
|
void | alignZeroOn (std::size_t index, double pos=0.) |
| Align zero coordinate with the specified position of the object of specified index.
|
|
void | alignZeroOn (const shared_ptr< ChildType > &object, const PathHints *path=0, double pos=0.) |
| Align zero coordinate with the zero of the specified object.
|
|
void | alignZeroOn (const shared_ptr< ChildType > &object, const PathHints &path, double pos=0.) |
| Align zero coordinate with the zero of the specified object.
|
|
std::size_t | getInsertionIndexForHeight (double height) const |
|
const shared_ptr< TranslationT > | getChildForHeight (double height, shared_ptr< TranslationT > &sec_candidate) const |
|
const shared_ptr< TranslationT > | getChildForHeight (double height) const |
|
bool | contains (const DVec &p) const override |
|
shared_ptr< Material > | getMaterial (const DVec &p) const override |
|
GeometryObject::Subtree | getPathsAt (const DVec &point, bool all=false) const override |
|
bool | removeIfTUnsafe (const std::function< bool(const shared_ptr< TranslationT > &c)> &predicate) override |
| Remove all children which fulfil predicate.
|
|
double | getHeight () const |
| Get height of stack.
|
|
| ~GeometryObjectContainer () |
| Disconnect onChildChanged from current child change signal.
|
|
void | connectOnChildChanged (Translation< dim > &child) |
| Connect onChildChanged to current child change signal.
|
|
void | disconnectOnChildChanged (Translation< dim > &child) |
| Disconnect onChildChanged from current child change signal.
|
|
const TranslationVector & | getChildrenVector () const |
| Get physically stored children (with translations).
|
|
GeometryObject::Type | getType () const override |
|
bool | contains (const DVec &p) const override |
|
Box | getBoundingBox () const override |
| Calculate minimal rectangle which contains all points of geometry object.
|
|
shared_ptr< Material > | getMaterial (const DVec &p) const override |
| Iterate over children in reverse order and check if any returns material.
|
|
void | getBoundingBoxesToVec (const GeometryObject::Predicate &predicate, std::vector< Box > &dest, const PathHints *path=0) const override |
|
void | getObjectsToVec (const GeometryObject::Predicate &predicate, std::vector< shared_ptr< const GeometryObject > > &dest, const PathHints *path=0) const override |
| Append all objects from subtree with this in root, which fulfill predicate to vector dest .
|
|
virtual void | getPositionsToVec (const GeometryObject::Predicate &predicate, std::vector< DVec > &dest, const PathHints *path=0) const override |
|
bool | hasInSubtree (const GeometryObject &el) const override |
| Check if el is in subtree with this in root.
|
|
template<typename ChildIter > |
GeometryObject::Subtree | findPathsFromChildTo (ChildIter childBegin, ChildIter childEnd, const GeometryObject &el, const PathHints *path=0) const |
|
GeometryObject::Subtree | getPathsTo (const GeometryObject &el, const PathHints *path=0) const override |
| Find paths to el.
|
|
GeometryObject::Subtree | getPathsAt (const DVec &point, bool all=false) const override |
|
std::size_t | getChildrenCount () const override |
| Get number of all children of this in geometry graph.
|
|
shared_ptr< GeometryObject > | getChildNo (std::size_t child_no) const override |
| Get child with given index.
|
|
std::size_t | getChildIndex (const shared_ptr< ChildType > &el, const PathHints *path=0) const |
| Return index of the given item.
|
|
std::size_t | getChildIndex (const shared_ptr< ChildType > &el, const PathHints &path) const |
| Return index of the given item.
|
|
virtual shared_ptr< const GeometryObject > | changedVersion (const GeometryObject::Changer &changer, Vec< 3, double > *translation=0) const override |
| Get this or copy of this with some changes in subtree.
|
|
bool | removeIfT (const std::function< bool(const shared_ptr< TranslationT > &c)> &predicate) |
| Remove all children which fulfil predicate.
|
|
bool | removeIf (const std::function< bool(const shared_ptr< ChildType > &c)> &predicate) |
| Remove all children which fulfil predicate.
|
|
bool | removeT (shared_ptr< const TranslationT > el) |
| Remove all children exactly equal to el.
|
|
bool | remove (shared_ptr< const ChildType > el) |
| Remove all children exactly equal to el.
|
|
bool | remove (const PathHints &hints) |
| Remove child pointed, for this container, in hints.
|
|
void | clear () |
| Remove all children from the container.
|
|
template<typename UnaryFunction > |
void | forEachChild (UnaryFunction fun, const PathHints *path=nullptr) const |
| Call fun(child) for each real child of this.
|
|
void | addPointsAlongToSet (std::set< double > &points, Primitive< 3 >::Direction direction, unsigned max_steps, double min_step_size) const override |
|
void | addLineSegmentsToSet (std::set< typename GeometryObjectD< dim >::LineSegment > &segments, unsigned max_steps, double min_step_size) const override |
|
int | getDimensionsCount () const override |
| Get number of dimensions.
|
|
virtual Subtree | getPathsAt (const DVec &point, bool all=false) const =0 |
| Find all paths to objects which lies at given point .
|
|
virtual bool | contains (const DVec &point) const =0 |
| Check if this geometry object contains point.
|
|
virtual DVec | getBoundingBoxSize () const |
|
virtual Box | getRealBoundingBox () const |
| Calculate minimal rectangle which contains all points of real geometry object.
|
|
virtual shared_ptr< Material > | getMaterial (const DVec &p) const =0 |
| Return material in a given point inside the geometry object.
|
|
shared_ptr< Material > | getMaterialOrAir (const DVec &p) const |
| Return material in a given point inside the geometry object.
|
|
virtual void | getBoundingBoxesToVec (const GeometryObject::Predicate &predicate, std::vector< Box > &dest, const PathHints *path=0) const =0 |
| Calculate and append to vector bounding boxes of all nodes which fulfill given predicate , optionally marked by path.
|
|
void | getBoundingBoxesToVec (const GeometryObject::Predicate &predicate, std::vector< Box > &dest, const PathHints &path) const |
| Calculate and append to vector bounding boxes of all nodes which fulfill given predicate , marked by path.
|
|
std::vector< Box > | getBoundingBoxes (const GeometryObject::Predicate &predicate, const PathHints *path=0) const |
| Calculate the vector of bounding boxes of all nodes which fulfill given predicate , optionally marked by path.
|
|
std::vector< Box > | getBoundingBoxes (const GeometryObject::Predicate &predicate, const PathHints &path) |
| Calculate the vector of bounding boxes of all nodes which fulfill given predicate , marked by path.
|
|
void | getLeafsBoundingBoxesToVec (std::vector< Box > &dest, const PathHints *path=0) const |
| Calculate and append to vector bounding boxes of all leafs, optionally marked by path.
|
|
void | getLeafsBoundingBoxesToVec (std::vector< Box > &dest, const PathHints &path) const |
| Calculate and append to vector bounding boxes of all leafs, marked by path.
|
|
std::vector< Box > | getLeafsBoundingBoxes (const PathHints *path=0) const |
| Calculate bounding boxes of all leafs, optionally marked by path.
|
|
std::vector< Box > | getLeafsBoundingBoxes (const PathHints &path) const |
| Calculate bounding boxes of all leafs, marked by path.
|
|
void | getObjectBoundingBoxesToVec (std::vector< Box > &dest, const GeometryObject &object, const PathHints *path=0) const |
| Calculate and append to vector bounding boxes of all instances of given object , optionally marked by path.
|
|
void | getObjectBoundingBoxesToVec (std::vector< Box > &dest, const GeometryObject &object, const PathHints &path) const |
| Calculate and append to vector bounding boxes of all instances of given object , marked by path.
|
|
std::vector< Box > | getObjectBoundingBoxes (const GeometryObject &object, const PathHints *path=0) const |
| Calculate bounding boxes of all instances of given object , optionally marked by path.
|
|
std::vector< Box > | getObjectBoundingBoxes (const GeometryObject &object, const PathHints &path) const |
| Calculate bounding boxes of all instances of given objects , marked by path .
|
|
virtual void | getPositionsToVec (const Predicate &predicate, std::vector< DVec > &dest, const PathHints *path=0) const =0 |
| Calculate and append to vector positions of all nodes which fulfill given predicate , optionally marked by path.
|
|
void | getPositionsToVec (const Predicate &predicate, std::vector< DVec > &dest, const PathHints &path) const |
| Calculate and append to vector positions of all nodes which fulfill given predicate , marked by path.
|
|
std::vector< DVec > | getPositions (const Predicate &predicate, const PathHints *path=0) const |
| Calculate and append to vector positions of all nodes which fulfill given predicate , optionally marked by path.
|
|
std::vector< DVec > | getPositions (const Predicate &predicate, const PathHints &path) const |
| Calculate and append to vector positions of all nodes which fulfill given predicate , marked by path.
|
|
void | getLeafsPositionsToVec (std::vector< DVec > &dest, const PathHints *path=0) const |
| Calculate and append to vector positions of all leafs, optionally marked by path.
|
|
void | getLeafsPositionsToVec (std::vector< DVec > &dest, const PathHints &path) const |
| Calculate and append to vector positions of all leafs, marked by path.
|
|
std::vector< DVec > | getLeafsPositions (const PathHints *path=0) const |
| Calculate and return a vector of positions of all leafs, optionally marked by path.
|
|
std::vector< DVec > | getLeafsPositions (const PathHints &path) const |
| Calculate and return a vector of positions of all leafs, marked by path.
|
|
void | getObjectPositionsToVec (std::vector< DVec > &dest, const GeometryObject &object, const PathHints *path=0) const |
| Calculate and append to vector positions of all instances of given object , optionally marked by path.
|
|
void | getObjectPositionsToVec (std::vector< DVec > &dest, const GeometryObject &object, const PathHints &path) const |
| Calculate and append to vector positions of all instances of given object , marked by path.
|
|
std::vector< DVec > | getObjectPositions (const GeometryObject &object, const PathHints *path=0) const |
| Calculate and return a vector of positions of all instances of given object , optionally marked by path.
|
|
std::vector< DVec > | getObjectPositions (const GeometryObject &object, const PathHints &path) const |
| Calculate and return a vector of positions of all instances of given object , marked by path.
|
|
shared_ptr< const GeometryObject > | getMatchingAt (const DVec &point, const Predicate &predicate, const PathHints *path=0) const |
| Get object closest to the root, which contains specific point and fulfills the predicate.
|
|
shared_ptr< const GeometryObject > | getMatchingAt (const DVec &point, const Predicate &predicate, const PathHints &path) const |
| Get object closest to the root, which contains specific point and fulfills the predicate.
|
|
bool | objectIncludes (const GeometryObject &object, const PathHints *path, const DVec &point) const |
| Check if specified geometry object contains a point point.
|
|
bool | objectIncludes (const GeometryObject &object, const PathHints &path, const DVec &point) const |
| Check if specified geometry object contains a point point.
|
|
bool | objectIncludes (const GeometryObject &object, const DVec &point) const |
| Check if specified geometry object contains a point point.
|
|
std::set< std::string > | getRolesAt (const DVec &point, const plask::PathHints *path=0) const |
| Get a sum of roles sets of all objects which lies on path from this to leaf at given point .
|
|
std::set< std::string > | getRolesAt (const DVec &point, const plask::PathHints &path) const |
| Get a sum of roles sets of all objects which lies on path from this to leaf at given point .
|
|
shared_ptr< const GeometryObject > | hasRoleAt (const std::string &role_name, const DVec &point, const plask::PathHints *path=0) const |
| Check if any object at given point , not hidden by another object, plays role with given name role_name (if so, returns non-nullptr).
|
|
shared_ptr< const GeometryObject > | hasRoleAt (const std::string &role_name, const DVec &point, const plask::PathHints &path) const |
| Check if any object at given point , not hidden by another object, plays role with given name role_name (if so, returns non-nullptr).
|
|
virtual void | addLineSegmentsToSet (std::set< LineSegment > &PLASK_UNUSED(segments), unsigned PLASK_UNUSED(max_steps), double PLASK_UNUSED(min_step_size)) const =0 |
| Add characteristic points to the set and edges connecting them.
|
|
std::set< LineSegment > | getLineSegments (unsigned max_steps=PLASK_GEOMETRY_MAX_STEPS, double min_step_size=PLASK_GEOMETRY_MIN_STEP_SIZE) const |
| Add characteristic points to the set and edges connecting them.
|
|
virtual Subtree | getPathsTo (const GeometryObject &el, const PathHints *pathHints=0) const=0 |
| Find paths to el.
|
|
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.
|
|