9 #ifndef stk_mesh_PartImpl_hpp 10 #define stk_mesh_PartImpl_hpp 18 #include <stk_util/util/CSet.hpp> 19 #include <stk_mesh/base/Types.hpp> 33 MetaData & mesh_meta_data()
const {
return *m_mesh_meta_data ; }
42 unsigned primary_entity_rank()
const {
return m_entity_rank ; }
45 const std::string & name()
const {
return m_name ; }
50 unsigned mesh_meta_data_ordinal()
const {
return m_universe_ordinal ; }
53 const PartVector & supersets()
const {
return m_supersets ; }
56 const PartVector & subsets()
const {
return m_subsets ; }
59 const PartVector & intersection_of()
const {
return m_intersect ; }
62 const std::vector<PartRelation> & relations()
const {
return m_relations ; }
65 bool operator == (
const PartImpl & rhs )
const {
return this == & rhs ; }
68 bool operator != (
const PartImpl & rhs )
const {
return this != & rhs ; }
72 const A * attribute()
const {
return m_attribute.template get<A>(); }
74 explicit PartImpl( MetaData * );
76 void add_part_to_subset( Part & part);
77 void add_part_to_superset( Part & part );
78 void add_relation( PartRelation relation );
79 void set_intersection_of(
const PartVector & );
82 const T * declare_attribute_with_delete(
const T *);
84 const T * declare_attribute_no_delete(
const T *);
86 bool remove_attribute(
const T *);
91 PartImpl( MetaData * meta,
const std::string & name,
92 EntityRank rank,
size_t ordinal);
94 void set_primary_entity_rank( EntityRank
entity_rank );
98 #ifndef DOXYGEN_COMPILE 101 PartImpl(
const PartImpl & );
102 PartImpl & operator = (
const PartImpl & );
104 const std::string m_name ;
109 std::vector<PartRelation> m_relations ;
110 MetaData *
const m_mesh_meta_data ;
111 const unsigned m_universe_ordinal ;
112 EntityRank m_entity_rank ;
121 PartImpl::declare_attribute_with_delete(
const T * a )
123 return m_attribute.template insert_with_delete<T>( a );
129 PartImpl::declare_attribute_no_delete(
const T * a )
131 return m_attribute.template insert_no_delete<T>( a );
137 PartImpl::remove_attribute(
const T * a )
139 return m_attribute.template remove<T>( a );
std::vector< Part *> PartVector
Collections of parts are frequently maintained as a vector of Part pointers.
EntityRank entity_rank(const EntityKey &key)
Given an entity key, return an entity type (rank).