SMTK  @SMTK_VERSION@
Simulation Modeling Tool Kit
Public Member Functions | List of all members
smtk::model::Model Class Reference

A entityref subclass that provides methods specific to models. More...

#include <Model.h>

Inheritance diagram for smtk::model::Model:
[legend]
Collaboration diagram for smtk::model::Model:
[legend]

Public Member Functions

 SMTK_ENTITYREF_CLASS (Model, EntityRef, isModel)
 
ModelGeometryStyle geometryStyle () const
 Return information about how the modeling kernel represents this model. More...
 
void setEmbeddingDimension (int dim)
 Set the number coordinate values used to specify each point in the locus of this model. More...
 
EntityRef parent () const
 Return the parent of this entity, which should be a SessionRef or another Model.
 
SessionRef session () const
 Return a reference to the session that owns this model. More...
 
void setSession (const SessionRef &sess)
 Update this model so that it refers to sess as its owner.
 
bool isModified () const
 
void setIsModified (bool isModified)
 
CellEntities cells () const
 Return the cells directly owned by this model.
 
Groups groups () const
 Return the groups directly owned by this model.
 
Models submodels () const
 Return the models directly owned by this model.
 
AuxiliaryGeometries auxiliaryGeometry () const
 Return the auxiliary geometry instances directly owned by this model.
 
template<typename T >
cellsAs () const
 Return the top-level (free) cells of this model in a container of the template type.
 
template<typename T >
groupsAs () const
 Return the top-level (free) groups of this model in a container of the template type.
 
template<typename T >
submodelsAs () const
 Return the child models of this model in a container of the template type.
 
template<typename T >
void appendCells (T &container) const
 Append free cells of this model to the given container. Only valid cells are inserted.
 
ModeladdCell (const CellEntity &c, bool checkExists=true)
 Add all the free cell c to this model. More...
 
ModelremoveCell (const CellEntity &c)
 
template<typename T >
ModeladdCells (const T &container, bool checkExists=true)
 Add all the free cells in container to this model. More...
 
template<typename T >
ModelremoveCells (const T &container)
 Remove all the free cells in container from this model.
 
ModeladdGroup (const Group &g)
 
ModelremoveGroup (const Group &g)
 
template<typename T >
ModeladdGroups (const T &container)
 Add all the groups in container to this model.
 
template<typename T >
ModelremoveGroups (const T &container)
 Add all the groups in container to this model.
 
ModeladdSubmodel (const Model &m)
 
ModelremoveSubmodel (const Model &m)
 
template<typename T >
ModeladdSubmodels (const T &container)
 Add all the models in container as submodels to this model.
 
template<typename T >
ModelremoveSubmodels (const T &container)
 Remove all the models in container from this model (if they are submodels).
 
ModeladdAuxiliaryGeometry (const AuxiliaryGeometry &ag)
 Add the given auxiliary geometry to this model.
 
ModelremoveAuxiliaryGeometry (const AuxiliaryGeometry &ag)
 Remove the given auxiliary geometry from this model (if present as a top-level entry).
 
template<typename T >
ModeladdAuxiliaryGeometries (const T &container)
 Add all the auxiliary geometry entities in container to this model.
 
template<typename T >
ModelremoveAuxiliaryGeometries (const T &container)
 Remove all the auxiliary geometry entities in container from this model.
 
void assignDefaultNames ()
 An efficient method for assigning default names to all of the model's entities.
 
EntityRefs entitiesWithTessellation () const
 A convenient method for finding all entities with tessellations owned by this model. 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::UUIDentity () 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 >
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 >
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.
 
EntityRefaddRawRelation (const EntityRef &ent)
 Add a relation to an entity, ent, without specifying the relationship's nature. More...
 
EntityReffindOrAddRawRelation (const EntityRef &ent)
 Find or add a relation to an entity, ent, without specifying the relationship's nature. More...
 
EntityRefelideRawRelation (const EntityRef &ent)
 Nullify a relation to the given entity, ent. More...
 
smtk::mesh::MeshSet meshTessellation () const
 Return the entity's mesh tessellation. More...
 
TessellationresetTessellation ()
 Return an empty tessellation attached to the entity. More...
 
const TessellationhasTessellation () const
 Return the entity's tessellation if one exists or nullptr otherwise.
 
const TessellationhasAnalysisMesh () const
 Return the entity's analysis mesh if one exists or nullptr otherwise.
 
const TessellationgotMesh () 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::StringListstringProperty (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.
 
ArrangementfindArrangement (ArrangementKind k, int index)
 Return the i-th arrangement of kind k (or nullptr).
 
const ArrangementfindArrangement (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...
 
EntityRefembedEntity (const EntityRef &thingToEmbed, bool checkExistence=true)
 Embed the specified thingToEmbed as an inclusion into this entityref's entity. More...
 
template<typename T >
EntityRefembedEntities (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 >
EntityRefunembedEntities (const T &container)
 
template<typename T >
embeddedEntities () const
 
template<typename 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
EntityRefaddMemberEntity (const EntityRef &memberToAdd)
 Add an entity as a member of this entity without any membership constraint checks.
 
template<typename T >
EntityRefaddMemberEntities (T begin, T end)
 
EntityRefremoveMemberEntity (const EntityRef &memberToRemove)
 Remove the memberToRemove from this EntityRef. More...
 
EntityRefremoveMemberEntity (int indexOfMemberToRemove)
 Remove a member from this EntityRef given the index of its arrangement. More...
 
template<typename T >
EntityRefremoveMemberEntities (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
 

Detailed Description

A entityref subclass that provides methods specific to models.

Member Function Documentation

◆ addCell()

Model & smtk::model::Model::addCell ( const CellEntity c,
bool  checkExists = true 
)

Add all the free cell c to this model.

If checkExistence is true, then c will only be added if the model does not already reference it. Because references like this are not indexed, this check is expensive; when adding many newly-created cells, pass false to avoid the overhead. The default is true.

◆ addCells()

template<typename T >
Model & smtk::model::Model::addCells ( const T &  container,
bool  checkExistence = true 
)

Add all the free cells in container to this model.

If checkExistence is true, then cells will only be added if the model does not already reference them. See addCell() for more information.

◆ entitiesWithTessellation()

EntityRefs smtk::model::Model::entitiesWithTessellation ( ) const

A convenient method for finding all entities with tessellations owned by this model.

Note that this method will include both cells and groups that have tessellations.

◆ geometryStyle()

ModelGeometryStyle smtk::model::Model::geometryStyle ( ) const

Return information about how the modeling kernel represents this model.

See also
ModelGeometryStyle

◆ session()

SessionRef smtk::model::Model::session ( ) const

Return a reference to the session that owns this model.

Note that a model may be owned by other models, so this differs from Model::parent() in that it continues up the tree of parent models until it finds an owning Session.

If a model is ill-defined (invalid or with an invalid session) the returned SessionRef will be invalid.

See also
SessionRef

◆ setEmbeddingDimension()

void smtk::model::Model::setEmbeddingDimension ( int  dim)

Set the number coordinate values used to specify each point in the locus of this model.

This should meet or exceed the maxParametricDimension() of every entity in the model.

WARNING: This is not intended to be changed during the lifetime of a model; this method exists for the convenience of session classes.


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