MOAB: Mesh Oriented datABase  (version 5.5.0)
MeshAssocPairSide Class Reference

#include <MeshAssocPairSide.hpp>

+ Inheritance diagram for MeshAssocPairSide:
+ Collaboration diagram for MeshAssocPairSide:

Public Member Functions

 MeshAssocPairSide (iRel_Instance relation, iBase_Instance instance, int id)
 
virtual ~MeshAssocPairSide ()
 
virtual iBase_Instance instance () const
 
virtual iRel_IfaceType type () const
 
virtual int create_relation_side ()
 
virtual int destroy_relation_side ()
 
virtual int get_all_entities (int dimension, iBase_EntityHandle **entities, int *entities_alloc, int *entities_size)
 
virtual int get_all_sets (iBase_EntitySetHandle **sets, int *sets_alloc, int *sets_size)
 
virtual int get_entities (int dimension, iBase_EntitySetHandle set_handle, iBase_EntityHandle **entities, int *entities_alloc, int *entities_size)
 
virtual int get_ents_dims (iBase_EntityHandle *entities, int entities_size, int **ent_types, int *ent_types_alloc, int *ent_types_size)
 
virtual int get_related_ents (iBase_EntityHandle **entities, int *entities_alloc, int *entities_size)
 
virtual int get_related_sets (iBase_EntitySetHandle **sets, int *sets_alloc, int *sets_size)
 
virtual int get_relation_side (iBase_EntityHandle *entities, int num_entities, void *values)
 
virtual int get_relation_side (iBase_EntitySetHandle *sets, int num_sets, void *values)
 
virtual int set_relation_side (iBase_EntityHandle *entities, int num_entities, const void *values)
 
virtual int set_relation_side (iBase_EntitySetHandle *sets, int num_sets, const void *values)
 
virtual int rmv_relation_side (iBase_EntityHandle *entities, int num_entities)
 
virtual int rmv_relation_side (iBase_EntitySetHandle *sets, int num_sets)
 
virtual int get_iterator (iBase_EntitySetHandle set, iBase_EntityIterator *iter)
 
virtual int get_gids (iBase_EntityHandle *entities, int num_entities, int *values)
 
virtual int get_gids (iBase_EntitySetHandle *sets, int num_sets, int *values)
 
virtual int get_dims (iBase_EntityHandle *entities, int num_entities, int *values)
 
virtual int get_dims (iBase_EntitySetHandle *sets, int num_sets, int *values)
 
- Public Member Functions inherited from AssocPairSide
virtual ~AssocPairSide ()
 

Private Attributes

iRel_Instance relation
 
iMesh_Instance instance_
 
int id
 
iBase_TagHandle relation_tag
 
iBase_TagHandle gid_tag
 
iBase_TagHandle dim_tag
 

Detailed Description

Definition at line 7 of file MeshAssocPairSide.hpp.

Constructor & Destructor Documentation

◆ MeshAssocPairSide()

MeshAssocPairSide::MeshAssocPairSide ( iRel_Instance  relation,
iBase_Instance  instance,
int  id 
)

Definition at line 31 of file MeshAssocPairSide.cpp.

32  : relation( p_relation ), instance_( reinterpret_cast< iMesh_Instance >( p_instance ) ), id( p_id )
33 {
34  int result;
35 
37 
39  if( result == iBase_TAG_NOT_FOUND )
40  {
42  strlen( GLOBAL_ID_TAG_NAME ) );
43  }
44 
46  if( result == iBase_TAG_NOT_FOUND ) dim_tag = NULL;
47 }

References create_relation_side(), dim_tag, gid_tag, GLOBAL_ID_TAG_NAME, iBase_INTEGER, iBase_TAG_NOT_FOUND, iMesh_createTag, iMesh_getTagHandle, instance_, and MESH_DIMENSION_TAG_NAME.

◆ ~MeshAssocPairSide()

MeshAssocPairSide::~MeshAssocPairSide ( )
virtual

Definition at line 49 of file MeshAssocPairSide.cpp.

50 {
52 }

References destroy_relation_side().

Member Function Documentation

◆ create_relation_side()

int MeshAssocPairSide::create_relation_side ( )
virtual

Implements AssocPairSide.

Definition at line 64 of file MeshAssocPairSide.cpp.

65 {
66  int result;
67  std::stringstream ss;
68  ss << RELATION_TAG_NAME << id;
69  std::string rel_tag_name( ss.str() );
70 
71  iMesh_getTagHandle( instance_, rel_tag_name.c_str(), &relation_tag, &result, rel_tag_name.size() );
72  if( result == iBase_TAG_NOT_FOUND )
73  {
74  iMesh_createTag( instance_, rel_tag_name.c_str(), 1, iBase_ENTITY_HANDLE, &relation_tag, &result,
75  rel_tag_name.size() );
76  }
77 
80 }

References iBase_ENTITY_HANDLE, iBase_SUCCESS, iBase_TAG_NOT_FOUND, id, iMesh_createTag, iMesh_getTagHandle, instance_, PROCESS_ERROR, relation_tag, RELATION_TAG_NAME, and RETURNR.

Referenced by MeshAssocPairSide().

◆ destroy_relation_side()

int MeshAssocPairSide::destroy_relation_side ( )
virtual

Implements AssocPairSide.

Definition at line 82 of file MeshAssocPairSide.cpp.

83 {
84  if( relation_tag )
85  {
86  int result;
87 
88  iMesh_destroyTag( instance_, relation_tag, true, &result );
89  relation_tag = NULL;
90 
92  }
94 }

References iBase_SUCCESS, iMesh_destroyTag, instance_, PROCESS_ERROR, relation_tag, and RETURNR.

Referenced by ~MeshAssocPairSide().

◆ get_all_entities()

int MeshAssocPairSide::get_all_entities ( int  dimension,
iBase_EntityHandle **  entities,
int *  entities_alloc,
int *  entities_size 
)
virtual

Implements AssocPairSide.

Definition at line 96 of file MeshAssocPairSide.cpp.

100 {
101  int this_type = ( dimension == -1 ? iBase_ALL_TYPES : dimension );
102  int result;
103 
104  iMesh_getEntities( instance_, 0, this_type, iMesh_ALL_TOPOLOGIES, entities, entities_alloc, entities_size,
105  &result );
108 }

References entities, iBase_ALL_TYPES, iBase_SUCCESS, iMesh_ALL_TOPOLOGIES, iMesh_getEntities, instance_, PROCESS_ERROR, and RETURNR.

◆ get_all_sets()

int MeshAssocPairSide::get_all_sets ( iBase_EntitySetHandle **  sets,
int *  sets_alloc,
int *  sets_size 
)
virtual

Implements AssocPairSide.

Definition at line 110 of file MeshAssocPairSide.cpp.

111 {
112  int result;
113 
114  iMesh_getEntSets( instance_, 0, 0, sets, sets_alloc, sets_size, &result );
117 }

References iBase_SUCCESS, iMesh_getEntSets, instance_, PROCESS_ERROR, and RETURNR.

◆ get_dims() [1/2]

int MeshAssocPairSide::get_dims ( iBase_EntityHandle entities,
int  num_entities,
int *  values 
)
virtual

Implements AssocPairSide.

Definition at line 275 of file MeshAssocPairSide.cpp.

276 {
277  int values_alloc = num_entities * sizeof( int );
278  int values_size;
279  int result;
280 
281  iMesh_getArrData( instance_, entities, num_entities, dim_tag, &values, &values_alloc, &values_size, &result );
284 }

References dim_tag, entities, iBase_SUCCESS, iMesh_getArrData, instance_, PROCESS_ERROR, and RETURNR.

◆ get_dims() [2/2]

int MeshAssocPairSide::get_dims ( iBase_EntitySetHandle sets,
int  num_sets,
int *  values 
)
virtual

Implements AssocPairSide.

Definition at line 286 of file MeshAssocPairSide.cpp.

287 {
288  char* data = reinterpret_cast< char* >( values );
289  int values_alloc = sizeof( int );
290  int values_size;
291  int result;
292 
293  for( int i = 0; i < num_sets; i++ )
294  {
295  iMesh_getEntSetData( instance_, sets[i], dim_tag, reinterpret_cast< void** >( &data ), &values_alloc,
296  &values_size, &result );
297  data += values_size;
299  }
301 }

References dim_tag, iBase_SUCCESS, iMesh_getEntSetData, instance_, PROCESS_ERROR, and RETURNR.

◆ get_entities()

int MeshAssocPairSide::get_entities ( int  dimension,
iBase_EntitySetHandle  set_handle,
iBase_EntityHandle **  entities,
int *  entities_alloc,
int *  entities_size 
)
virtual

Implements AssocPairSide.

Definition at line 119 of file MeshAssocPairSide.cpp.

124 {
125  int this_type = ( dimension == -1 ? iBase_ALL_TYPES : dimension );
126  int result;
127 
128  iMesh_getEntities( instance_, set_handle, this_type, iMesh_ALL_TOPOLOGIES, entities, entities_alloc, entities_size,
129  &result );
132 }

References entities, iBase_ALL_TYPES, iBase_SUCCESS, iMesh_ALL_TOPOLOGIES, iMesh_getEntities, instance_, PROCESS_ERROR, and RETURNR.

◆ get_ents_dims()

int MeshAssocPairSide::get_ents_dims ( iBase_EntityHandle entities,
int  entities_size,
int **  ent_types,
int *  ent_types_alloc,
int *  ent_types_size 
)
virtual

Implements AssocPairSide.

Definition at line 134 of file MeshAssocPairSide.cpp.

139 {
140  int result;
141 
142  iMesh_getEntArrType( instance_, entities, entities_size, ent_types, ent_types_alloc, ent_types_size, &result );
145 }

References entities, iBase_SUCCESS, iMesh_getEntArrType, instance_, PROCESS_ERROR, and RETURNR.

◆ get_gids() [1/2]

int MeshAssocPairSide::get_gids ( iBase_EntityHandle entities,
int  num_entities,
int *  values 
)
virtual

Implements AssocPairSide.

Definition at line 247 of file MeshAssocPairSide.cpp.

248 {
249  int values_alloc = num_entities * sizeof( int );
250  int values_size;
251  int result;
252 
253  iMesh_getArrData( instance_, entities, num_entities, gid_tag, &values, &values_alloc, &values_size, &result );
256 }

References entities, gid_tag, iBase_SUCCESS, iMesh_getArrData, instance_, PROCESS_ERROR, and RETURNR.

◆ get_gids() [2/2]

int MeshAssocPairSide::get_gids ( iBase_EntitySetHandle sets,
int  num_sets,
int *  values 
)
virtual

Implements AssocPairSide.

Definition at line 258 of file MeshAssocPairSide.cpp.

259 {
260  char* data = reinterpret_cast< char* >( values );
261  int values_alloc = sizeof( int );
262  int values_size;
263  int result;
264 
265  for( int i = 0; i < num_sets; i++ )
266  {
267  iMesh_getEntSetData( instance_, sets[i], gid_tag, reinterpret_cast< void** >( &data ), &values_alloc,
268  &values_size, &result );
269  data += values_size;
271  }
273 }

References gid_tag, iBase_SUCCESS, iMesh_getEntSetData, instance_, PROCESS_ERROR, and RETURNR.

◆ get_iterator()

int MeshAssocPairSide::get_iterator ( iBase_EntitySetHandle  set,
iBase_EntityIterator iter 
)
virtual

Implements AssocPairSide.

Definition at line 239 of file MeshAssocPairSide.cpp.

240 {
241  int result;
242  int resilient = 0;
243  iMesh_initEntIter( instance_, set, iBase_ALL_TYPES, iMesh_ALL_TOPOLOGIES, resilient, iter, &result );
245 }

References iBase_ALL_TYPES, iBase_SUCCESS, iMesh_ALL_TOPOLOGIES, iMesh_initEntIter, instance_, and RETURNR.

◆ get_related_ents()

int MeshAssocPairSide::get_related_ents ( iBase_EntityHandle **  entities,
int *  entities_alloc,
int *  entities_size 
)
virtual

Implements AssocPairSide.

Definition at line 147 of file MeshAssocPairSide.cpp.

148 {
149  int result;
151  entities, entities_alloc, entities_size, &result );
154 }

References entities, iBase_ALL_TYPES, iBase_SUCCESS, iMesh_ALL_TOPOLOGIES, iMesh_getEntsByTagsRec, instance_, PROCESS_ERROR, relation_tag, and RETURNR.

◆ get_related_sets()

int MeshAssocPairSide::get_related_sets ( iBase_EntitySetHandle **  sets,
int *  sets_alloc,
int *  sets_size 
)
virtual

Implements AssocPairSide.

Definition at line 156 of file MeshAssocPairSide.cpp.

157 {
158  int result;
159  iMesh_getEntSetsByTagsRec( instance_, 0, &relation_tag, NULL, 1, false, sets, sets_alloc, sets_size, &result );
162 }

References iBase_SUCCESS, iMesh_getEntSetsByTagsRec, instance_, PROCESS_ERROR, relation_tag, and RETURNR.

◆ get_relation_side() [1/2]

int MeshAssocPairSide::get_relation_side ( iBase_EntityHandle entities,
int  num_entities,
void *  values 
)
virtual

Implements AssocPairSide.

Definition at line 164 of file MeshAssocPairSide.cpp.

165 {
166  int values_alloc = num_entities * sizeof( iBase_EntityHandle );
167  int values_size;
168  int result;
169 
170  iMesh_getArrData( instance_, entities, num_entities, relation_tag, &values, &values_alloc, &values_size, &result );
173 }

References entities, iBase_SUCCESS, iMesh_getArrData, instance_, PROCESS_ERROR, relation_tag, and RETURNR.

◆ get_relation_side() [2/2]

int MeshAssocPairSide::get_relation_side ( iBase_EntitySetHandle sets,
int  num_sets,
void *  values 
)
virtual

Implements AssocPairSide.

Definition at line 175 of file MeshAssocPairSide.cpp.

176 {
177  char* data = static_cast< char* >( values );
178  int values_alloc = sizeof( iBase_EntityHandle );
179  int values_size;
180  int result;
181 
182  for( int i = 0; i < num_sets; i++ )
183  {
184  iMesh_getEntSetData( instance_, sets[i], relation_tag, reinterpret_cast< void** >( &data ), &values_alloc,
185  &values_size, &result );
186  data += values_size;
188  }
190 }

References iBase_SUCCESS, iMesh_getEntSetData, instance_, PROCESS_ERROR, relation_tag, and RETURNR.

◆ instance()

iBase_Instance MeshAssocPairSide::instance ( ) const
virtual

Implements AssocPairSide.

Definition at line 54 of file MeshAssocPairSide.cpp.

55 {
56  return instance_;
57 }

References instance_.

◆ rmv_relation_side() [1/2]

int MeshAssocPairSide::rmv_relation_side ( iBase_EntityHandle entities,
int  num_entities 
)
virtual

Implements AssocPairSide.

Definition at line 217 of file MeshAssocPairSide.cpp.

218 {
219  int result;
220 
221  iMesh_rmvArrTag( instance_, entities, num_entities, relation_tag, &result );
224 }

References entities, iBase_SUCCESS, iMesh_rmvArrTag, instance_, PROCESS_ERROR, relation_tag, and RETURNR.

◆ rmv_relation_side() [2/2]

int MeshAssocPairSide::rmv_relation_side ( iBase_EntitySetHandle sets,
int  num_sets 
)
virtual

Implements AssocPairSide.

Definition at line 226 of file MeshAssocPairSide.cpp.

227 {
228  int result;
229 
230  for( int i = 0; i < num_sets; i++ )
231  {
232  iMesh_rmvEntSetTag( instance_, sets[i], relation_tag, &result );
234  }
235 
237 }

References iBase_SUCCESS, iMesh_rmvEntSetTag, instance_, PROCESS_ERROR, relation_tag, and RETURNR.

◆ set_relation_side() [1/2]

int MeshAssocPairSide::set_relation_side ( iBase_EntityHandle entities,
int  num_entities,
const void *  values 
)
virtual

Implements AssocPairSide.

Definition at line 192 of file MeshAssocPairSide.cpp.

193 {
194  int result;
195 
196  iMesh_setArrData( instance_, entities, num_entities, relation_tag, static_cast< const char* >( values ),
197  num_entities * sizeof( iBase_EntityHandle ), &result );
200 }

References entities, iBase_SUCCESS, iMesh_setArrData, instance_, PROCESS_ERROR, relation_tag, and RETURNR.

◆ set_relation_side() [2/2]

int MeshAssocPairSide::set_relation_side ( iBase_EntitySetHandle sets,
int  num_sets,
const void *  values 
)
virtual

Implements AssocPairSide.

Definition at line 202 of file MeshAssocPairSide.cpp.

203 {
204  const char* data = static_cast< const char* >( values );
205  int size = sizeof( iBase_EntityHandle );
206  int result;
207 
208  for( int i = 0; i < num_sets; i++ )
209  {
210  iMesh_setEntSetData( instance_, sets[i], relation_tag, data, size, &result );
211  data += size;
213  }
215 }

References iBase_SUCCESS, iMesh_setEntSetData, instance_, PROCESS_ERROR, relation_tag, RETURNR, and size.

◆ type()

iRel_IfaceType MeshAssocPairSide::type ( ) const
virtual

Implements AssocPairSide.

Definition at line 59 of file MeshAssocPairSide.cpp.

60 {
61  return iRel_IMESH_IFACE;
62 }

References iRel_IMESH_IFACE.

Member Data Documentation

◆ dim_tag

iBase_TagHandle MeshAssocPairSide::dim_tag
private

Definition at line 65 of file MeshAssocPairSide.hpp.

Referenced by get_dims(), and MeshAssocPairSide().

◆ gid_tag

iBase_TagHandle MeshAssocPairSide::gid_tag
private

Definition at line 64 of file MeshAssocPairSide.hpp.

Referenced by get_gids(), and MeshAssocPairSide().

◆ id

int MeshAssocPairSide::id
private

Definition at line 61 of file MeshAssocPairSide.hpp.

Referenced by create_relation_side().

◆ instance_

◆ relation

iRel_Instance MeshAssocPairSide::relation
private

Definition at line 59 of file MeshAssocPairSide.hpp.

◆ relation_tag


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