|
SMTK
@SMTK_VERSION@
Simulation Modeling Tool Kit
|
A entityref subclass that provides methods specific to entity-use records. More...
#include <UseEntity.h>
Public Member Functions | |
| SMTK_ENTITYREF_CLASS (UseEntity, EntityRef, isUseEntity) | |
| CellEntity | cell () const |
| Return the cell owning this cell-use. | |
| ShellEntity | boundingShellEntity () const |
| Return the first (usually the only) shell in which this use participates as a boundary. | |
| template<typename T > | |
| T | boundingShellEntities () const |
| Return the shells whose boundary this entity-use participates in, in a container of the specified type. More... | |
| template<typename T > | |
| T | shellEntities () const |
| Return the shells forming the boundary of this entity-use in a container of the specified type. More... | |
| Orientation | orientation () const |
| The orientation of the cell-use relative to the underlying cell. | |
| int | sense () const |
| Return the sense of the given use with respect to its parent cell. | |
| UseEntity & | setBoundingShellEntity (const ShellEntity &shell) |
| Set the higher-dimensional shell whose boundary this use participates in. | |
| UseEntity & | addShellEntity (const ShellEntity &shell) |
| Add a lower-dimensional shell to this use. More... | |
| template<typename T > | |
| UseEntity & | addShellEntities (const T &shellContainer) |
| Add the shells in the shellContainer to this entity-use (which form its boundary). More... | |
Public Member Functions inherited from smtk::model::EntityRef | |
| SMTK_BASE_TYPE (EntityRef) | |
| EntityRef () | |
| Construct an invalid entityref. | |
| EntityRef (ResourcePtr resource, const smtk::common::UUID &entityId) | |
| Construct a entityref referencing a given entity residing in the given rsrc. | |
| EntityRef (EntityPtr src) | |
| Construct a entityref referencing a given entity residing in the given rsrc. | |
| bool | setResource (ResourcePtr resource) |
| Change the underlying resource the entityref references. | |
| ResourcePtr | resource () |
| Return the underlying resource the entityref references. | |
| const ResourcePtr | resource () const |
| bool | setEntity (const smtk::common::UUID &entityId) |
| Change the UUID of the entity the entityref references. | |
| const smtk::common::UUID & | entity () const |
| Return the UUID of the entity the entityref references. | |
| smtk::model::EntityPtr | entityRecord () const |
| Return the smtk::model::Entity record for this model entity. | |
| smtk::resource::ComponentPtr | component () const |
| Return the resource component for this model entity. | |
| int | dimension () const |
| Return the nominal parametric dimension of the entity (or -1). More... | |
| int | dimensionBits () const |
| Return the nominal parametric dimension(s) of the entity as a bit vector. More... | |
| void | setDimensionBits (BitFlags dim) |
| Set the dimensionality of this entity. More... | |
| BitFlags | entityFlags () const |
| Return the bit vector describing the entity's type. More... | |
| std::string | flagSummary (int form=0) const |
| A string summary of the type of entity represented by this entityref. More... | |
| int | maxParametricDimension () const |
| Return the maximum number of coordinates required to parameterize this model's point locus. More... | |
| int | embeddingDimension () const |
| Return the dimension of the space into which this entity is embedded. More... | |
| std::string | name () const |
| Report the name associated with this entity. More... | |
| void | setName (const std::string &n) |
| Assign a name to an entity. More... | |
| std::string | assignDefaultName (bool overwrite=false) |
| Assign a default name to the entity. More... | |
| bool | hasVisibility () const |
| Returns true if the "visible" integer-property exists. | |
| bool | visible () const |
| Report the visibility associated with this entity. More... | |
| void | setVisible (bool vis) |
| Assign the visible property to an entity. More... | |
| void | setExclusions (bool v, int mask=Exclusions::Everything) |
| Set the exclusions. More... | |
| int | exclusions (int mask=Exclusions::Everything) const |
| Get the exclusions status. More... | |
| FloatList | color () const |
| Return a user-assigned color for the entity. More... | |
| bool | hasColor () const |
| Returns true if the "color" float-property exists. No check on the size is performed. | |
| void | setColor (const FloatList &rgba) |
| Assign a color to an entity. More... | |
| void | setColor (double r, double g, double b, double a=1.) |
| Assign a color to an entity. More... | |
| bool | isValid () const |
| Return whether the entityref is pointing to valid resource that contains the UUID of the entity. More... | |
| virtual bool | isValid (EntityPtr *entityRecord) const |
| Return whether the entityref is pointing to valid resource that contains the UUID of the entity. More... | |
| virtual bool | checkForArrangements (ArrangementKind k, EntityPtr &entry, Arrangements *&arr) const |
| A wrapper around EntityRef::isValid() which also verifies an arrangement exists. | |
| bool | isCellEntity () const |
| bool | isUseEntity () const |
| bool | isShellEntity () const |
| bool | isGroup () const |
| bool | isModel () const |
| bool | isInstance () const |
| bool | isSessionRef () const |
| bool | isAuxiliaryGeometry () const |
| bool | isConcept () const |
| bool | isVertex () const |
| bool | isEdge () const |
| bool | isFace () const |
| bool | isVolume () const |
| bool | isChain () const |
| bool | isLoop () const |
| bool | isShell () const |
| bool | isVertexUse () const |
| bool | isEdgeUse () const |
| bool | isFaceUse () const |
| bool | isVolumeUse () const |
| template<typename T > | |
| T | as () const |
| Reinterpret a entityref as a subclass. More... | |
| EntityRefs | bordantEntities (int ofDimension=-2) const |
| EntityRefs | boundaryEntities (int ofDimension=-2) const |
| std::vector< double > | boundingBox () const |
| std::vector< double > | unionBoundingBox (const std::vector< double > &b1, const std::vector< double > &b2) const |
| std::vector< double > | unionBoundingBox (const std::vector< double > &b1, const std::array< double, 6 > &b2) const |
| EntityRefs | lowerDimensionalBoundaries (int lowerDimension) |
| EntityRefs | higherDimensionalBordants (int higherDimension) |
| EntityRefs | adjacentEntities (int ofDimension) |
| template<typename T > | |
| T | relationsAs () const |
| Return all of the entities related to this entityref. More... | |
| EntityRefs | relations () const |
| Return a set of entities related to this entity. This method is provided for Python wrapping. | |
| EntityRef & | addRawRelation (const EntityRef &ent) |
| Add a relation to an entity, ent, without specifying the relationship's nature. More... | |
| EntityRef & | findOrAddRawRelation (const EntityRef &ent) |
| Find or add a relation to an entity, ent, without specifying the relationship's nature. More... | |
| EntityRef & | elideRawRelation (const EntityRef &ent) |
| Nullify a relation to the given entity, ent. More... | |
| Tessellation * | resetTessellation () |
| Return an empty tessellation attached to the entity. More... | |
| const Tessellation * | hasTessellation () const |
| Return the entity's tessellation if one exists or nullptr otherwise. | |
| const Tessellation * | hasAnalysisMesh () const |
| Return the entity's analysis mesh if one exists or nullptr otherwise. | |
| const Tessellation * | gotMesh () const |
| Return the entity's analysis mesh if one exists, otherwise return the entity's tessellation. More... | |
| int | setTessellation (const Tessellation *tess, int analysisMesh=0, bool updateBBox=false) |
| Set the tessellation of the entity, returning its generation number (or -1 on failure). More... | |
| int | setTessellationAndBoundingBox (const Tessellation *tess, int analysisMesh=0) |
| bool | removeTessellation (bool removeGen=false) |
| Remove the tessellation of the entity, returning true if such a tessellation existed. More... | |
| void | findEntitiesWithTessellation (std::map< smtk::model::EntityRef, smtk::model::EntityRef > &entityrefMap, std::set< smtk::model::EntityRef > &touched) const |
| A convenient method for finding all entities with tessellations owned by this entity. More... | |
| int | tessellationGeneration () const |
| Return the generation number of the current tessellation (or -1 if no tessellation). | |
| bool | setTessellationGeneration (int gen) |
| Set the tessellation generation number. More... | |
| void | setBoundingBox (const double bbox[6]) |
| Set the bounding box of the entity. More... | |
| template<typename T > | |
| bool | disassociateAttributes (const T &attribPtrs) |
| Returns true if at least 1 attribute in the set of attribPtrs was removed. | |
| smtk::attribute::Attributes | attributes (smtk::attribute::ConstResourcePtr res) const |
| Return a list of attributes on the entity based on an attribute resource. | |
| smtk::attribute::Attributes | attributes () const |
| Return a list of attributes on the entity based on the resource manager. More... | |
| template<typename T > | |
| bool | removeProperty (const std::string &name) |
| Remove the property of type T with the given name, returning true on success. More... | |
| void | setFloatProperty (const std::string &propName, smtk::model::Float propValue) |
| void | setFloatProperty (const std::string &propName, const smtk::model::FloatList &propValue) |
| smtk::model::FloatList const & | floatProperty (const std::string &propName) const |
| smtk::model::FloatList & | floatProperty (const std::string &propName) |
| bool | hasFloatProperty (const std::string &propName) const |
| bool | removeFloatProperty (const std::string &propName) |
| bool | hasFloatProperties () const |
| Does this entity have any float-valued properties? More... | |
| std::set< std::string > | floatPropertyNames () const |
| Return the names of all the floating-point properties. | |
| void | setStringProperty (const std::string &propName, const smtk::model::String &propValue) |
| void | setStringProperty (const std::string &propName, const smtk::model::StringList &propValue) |
| smtk::model::StringList const & | stringProperty (const std::string &propName) const |
| smtk::model::StringList & | stringProperty (const std::string &propName) |
| bool | hasStringProperty (const std::string &propName) const |
| bool | removeStringProperty (const std::string &propName) |
| bool | hasStringProperties () const |
| Does this entity have any string-valued properties? More... | |
| std::set< std::string > | stringPropertyNames () const |
| Return the names of all the string properties. | |
| void | setIntegerProperty (const std::string &propName, smtk::model::Integer propValue) |
| void | setIntegerProperty (const std::string &propName, const smtk::model::IntegerList &propValue) |
| smtk::model::IntegerList const & | integerProperty (const std::string &propName) const |
| smtk::model::IntegerList & | integerProperty (const std::string &propName) |
| bool | hasIntegerProperty (const std::string &propName) const |
| bool | removeIntegerProperty (const std::string &propName) |
| bool | hasIntegerProperties () const |
| Does this entity have any integer-valued properties? More... | |
| std::set< std::string > | integerPropertyNames () const |
| Return the names of all the integer properties. | |
| int | numberOfArrangementsOfKind (ArrangementKind k) const |
| Return the number of arrangements of the given kind k. | |
| Arrangement * | findArrangement (ArrangementKind k, int index) |
| Return the i-th arrangement of kind k (or nullptr). | |
| const Arrangement * | findArrangement (ArrangementKind k, int index) const |
| Return the i-th arrangement of kind k (or nullptr). | |
| bool | clearArrangements () |
| Delete all arrangements of this entity with prejudice. | |
| EntityRef | relationFromArrangement (ArrangementKind k, int arrangementIndex, int offset) const |
| Return the relation specified by the offset into the specified arrangement. | |
| bool | removeArrangement (ArrangementKind k, int index=-1) |
| Remove an arrangement. More... | |
| EntityRef & | embedEntity (const EntityRef &thingToEmbed, bool checkExistence=true) |
| Embed the specified thingToEmbed as an inclusion into this entityref's entity. More... | |
| template<typename T > | |
| EntityRef & | embedEntities (const T &container, bool checkExistence=true) |
| Embed each of the entities in the container inside this entity. | |
| bool | isEmbedded (EntityRef &ent) const |
| Return whether the specified entity is a direct inclusion in this entityref's entity. | |
| EntityRef | embeddedIn () const |
| Report the entity into which this entity is directly embedded. More... | |
| bool | unembedEntity (const EntityRef &thingToUnembed) |
| Unembed the specified thingToUnembed as an inclusion into this entityref's entity. More... | |
| template<typename T > | |
| EntityRef & | unembedEntities (const T &container) |
| template<typename T > | |
| T | embeddedEntities () const |
| template<typename T > | |
| T | instances () const |
| Return all the instances this object serves as a prototype for. | |
| Model | owningModel () const |
| Return the Model which owns this entity. More... | |
| SessionRef | owningSession () const |
| Return the SessionRef which owns this entity. More... | |
| Groups | containingGroups () const |
| Return the Groups which contains this entity. | |
| bool | isMember (const EntityRef &entity) const |
| Return true when this EntityRef has a SUPERSET_OF relationship with ent. | |
| EntityRef | memberOf () const |
| Return the first entity that this EntityRef has a SUBSET_OF relationship with. | |
| bool | operator== (const EntityRef &other) const |
| A comparator provided so that entityrefs may be included in ordered sets. | |
| bool | operator!= (const EntityRef &other) const |
| A comparator provided for convenience. | |
| bool | operator< (const EntityRef &other) const |
| A comparator provided so that entityrefs may be included in ordered sets. | |
| operator bool () const | |
| std::size_t | hash () const |
| A hash function for entityrefs. More... | |
| template<> | |
| SMTKCORE_EXPORT bool | removeProperty (const std::string &pname) |
| template<> | |
| SMTKCORE_EXPORT bool | removeProperty (const std::string &pname) |
| template<> | |
| SMTKCORE_EXPORT bool | removeProperty (const std::string &pname) |
| bool | hasAttributes () const |
| Does the entityref have any attributes associated with it? Note that this method uses the resource manager. More... | |
| bool | hasAttributes (smtk::attribute::ConstResourcePtr attRes) const |
| Does the entityref have any attributes associated with it from a specific attribute resource? | |
| bool | hasAttribute (const smtk::common::UUID &attribId) const |
| Does the entityref have a specific attribute (represented by an UUID) associate to it. More... | |
| bool | associateAttribute (smtk::attribute::ResourcePtr attResource, const smtk::common::UUID &attribId) |
| Does the entityref have any attributes associated with it? - To be deprecated. | |
| bool | disassociateAttribute (smtk::attribute::ResourcePtr attResource, const smtk::common::UUID &attribId) |
| Disassociate an attribute from the entity? - To be deprecated. | |
| bool | disassociateAttribute (smtk::attribute::ResourcePtr attResource, const smtk::common::UUID &attribId, bool reverse) |
| Disassociate an attribute from the entity? - To be deprecated! | |
| bool | disassociateAllAttributes (smtk::attribute::ResourcePtr attResource) |
| Remove all attribute association form this entityref. | |
| bool | disassociateAllAttributes (smtk::attribute::ResourcePtr attResource, bool reverse) |
| Remove all attribute association form this entityref - To be deprecated! | |
| smtk::attribute::Attributes | attributes (smtk::attribute::ConstDefinitionPtr def) const |
| Return a list of attributes on the entity based on an attribute definition. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from smtk::model::EntityRef | |
| template<typename S , typename T > | |
| static void | EntityRefsFromUUIDs (S &result, ResourcePtr, const T &uids) |
| Convert a set of UUIDs into a set of entityrefs referencing the same rsrc. More... | |
| template<typename S , typename T > | |
| static void | EntityRefsToUUIDs (S &uids, const T &entRefs) |
Protected Member Functions inherited from smtk::model::EntityRef | |
| EntityRef & | addMemberEntity (const EntityRef &memberToAdd) |
| Add an entity as a member of this entity without any membership constraint checks. | |
| template<typename T > | |
| EntityRef & | addMemberEntities (T begin, T end) |
| EntityRef & | removeMemberEntity (const EntityRef &memberToRemove) |
| Remove the memberToRemove from this EntityRef. More... | |
| EntityRef & | removeMemberEntity (int indexOfMemberToRemove) |
| Remove a member from this EntityRef given the index of its arrangement. More... | |
| template<typename T > | |
| EntityRef & | removeMemberEntities (T begin, T end) |
| ResourceEventRelationType | subsetRelationType (const EntityRef &member) const |
| Determine the nature of a SUPERSET_OF relationship. More... | |
| ResourceEventRelationType | embeddingRelationType (const EntityRef &embedded) const |
| Determine the nature of an EMBEDDED_IN relationship. More... | |
Protected Attributes inherited from smtk::model::EntityRef | |
| smtk::model::WeakResourcePtr | m_resource |
| smtk::common::UUID | m_entity |
A entityref subclass that provides methods specific to entity-use records.
An entity-use record provides a way to reference how a cell is employed (used) to bound a higher-dimensional cell. Entity-use records reference a particular sense in which their corresponding cell is used (e.g., an edge may used in its forward or backward sense). Entity-use records are associated with a particular higher-dimensional half-space that their corresponding cell defines (or helps define).
An edge's forward or backward senses may each be used by any number of different face loops.
A face has 0, 1, or 2 use records, depending on whether it appears in the shells of 0, 1, or 2 volumes.
A vertex may have any number of use records; one should exist for each volume, free face, or free edge attached to the vertex.
The boundingShellEntity() is the ShellEntity in which this use participates as part or all of a higher-dimensional use's boundary. VertexUse entities may participate in multiple chains, and so boundingShellEntities() is provided. VolumeUse entities should always return an invalid boundingShellEntity() (until the need for space-time or higher-dimensional modeling drives a change).
| UseEntity & smtk::model::UseEntity::addShellEntities | ( | const T & | shellContainer | ) |
Add the shells in the shellContainer to this entity-use (which form its boundary).
This calls addShellEntity for each entry in shellContainer.
| UseEntity & smtk::model::UseEntity::addShellEntity | ( | const ShellEntity & | shell | ) |
Add a lower-dimensional shell to this use.
Each shell added should be a top-level shell for the given use; shells may contain other shells. However, currently this is not detected or enforced and the existing sessions do not properly nest shells.
| T smtk::model::UseEntity::boundingShellEntities |
Return the shells whose boundary this entity-use participates in, in a container of the specified type.
For all but VertexUse entities, this should return at most one entry (i.e., a given EdgeUse participates in at most one Loop). You should use boundingShellEntity() as a convenience in this case.
For VertexUses, the same use may participate in many Chains; otherwise the number of VertexUse entities would be combinatorially huge. One VertexUse entry should exist for each k-cell in the model that does not bound a (k+1)-cell and is bounded by this vertex.
For example:
UseEntity u; // say u.isEdgeUse() == true Loops uloops = u.boundingShellEntities<Loops>(); // or alternatively: typedef std::set<Loop> LoopSet; LoopSet uloops = u.shellEntities<LoopSet>();
| T smtk::model::UseEntity::shellEntities |
Return the shells forming the boundary of this entity-use in a container of the specified type.
For example:
UseEntity u; // say u.isFaceUse() == true Loops uloops = u.shellEntities<Loops>(); // or alternatively: typedef std::set<Loop> LoopSet; LoopSet uloops = u.shellEntities<LoopSet>();
1.8.17