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

#include <FBGeomAssocPairSide.hpp>

+ Inheritance diagram for FBGeomAssocPairSide:
+ Collaboration diagram for FBGeomAssocPairSide:

Public Member Functions

 FBGeomAssocPairSide (iRel_Instance relation, iBase_Instance instance, int id)
 
virtual ~FBGeomAssocPairSide ()
 
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
 
FBiGeom_Instance instance_
 
int id
 
iBase_TagHandle relation_tag
 
iBase_TagHandle gid_tag
 

Detailed Description

Definition at line 7 of file FBGeomAssocPairSide.hpp.

Constructor & Destructor Documentation

◆ FBGeomAssocPairSide()

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

Definition at line 28 of file FBGeomAssocPairSide.cpp.

29  : relation( p_relation ), instance_( reinterpret_cast< FBiGeom_Instance >( p_instance ) ), id( p_id )
30 {
31  int result;
32 
34 
36  if( result == iBase_TAG_NOT_FOUND )
37  {
39  strlen( GLOBAL_ID_TAG_NAME ) );
40  }
41 }

References create_relation_side(), FBiGeom_createTag, FBiGeom_getTagHandle, gid_tag, GLOBAL_ID_TAG_NAME, iBase_INTEGER, iBase_TAG_NOT_FOUND, and instance_.

◆ ~FBGeomAssocPairSide()

FBGeomAssocPairSide::~FBGeomAssocPairSide ( )
virtual

Definition at line 43 of file FBGeomAssocPairSide.cpp.

44 {
46 }

References destroy_relation_side().

Member Function Documentation

◆ create_relation_side()

int FBGeomAssocPairSide::create_relation_side ( )
virtual

Implements AssocPairSide.

Definition at line 58 of file FBGeomAssocPairSide.cpp.

59 {
60  int result;
61  std::stringstream ss;
62  ss << RELATION_TAG_NAME << id;
63  std::string rel_tag_name( ss.str() );
64 
65  FBiGeom_getTagHandle( instance_, rel_tag_name.c_str(), &relation_tag, &result, rel_tag_name.size() );
66  if( result == iBase_TAG_NOT_FOUND )
67  {
68  FBiGeom_createTag( instance_, rel_tag_name.c_str(), 1, iBase_ENTITY_HANDLE, &relation_tag, &result,
69  rel_tag_name.size() );
70  }
71 
74 }

References FBiGeom_createTag, FBiGeom_getTagHandle, iBase_ENTITY_HANDLE, iBase_SUCCESS, iBase_TAG_NOT_FOUND, id, instance_, PROCESS_ERROR, relation_tag, RELATION_TAG_NAME, and RETURNR.

Referenced by FBGeomAssocPairSide().

◆ destroy_relation_side()

int FBGeomAssocPairSide::destroy_relation_side ( )
virtual

Implements AssocPairSide.

Definition at line 76 of file FBGeomAssocPairSide.cpp.

77 {
78  if( relation_tag )
79  {
80  int result;
81 
82  FBiGeom_destroyTag( instance_, relation_tag, true, &result );
83  relation_tag = NULL;
84 
86  }
88 }

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

Referenced by ~FBGeomAssocPairSide().

◆ get_all_entities()

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

Implements AssocPairSide.

Definition at line 90 of file FBGeomAssocPairSide.cpp.

94 {
95  int this_type = ( dimension == -1 ? iBase_ALL_TYPES : dimension );
96  int result;
97 
98  FBiGeom_getEntities( instance_, 0, this_type, entities, entities_alloc, entities_size, &result );
101 }

References entities, FBiGeom_getEntities, iBase_ALL_TYPES, iBase_SUCCESS, instance_, PROCESS_ERROR, and RETURNR.

◆ get_all_sets()

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

Implements AssocPairSide.

Definition at line 103 of file FBGeomAssocPairSide.cpp.

104 {
105  int result;
106 
107  FBiGeom_getEntSets( instance_, 0, 0, sets, sets_alloc, sets_size, &result );
110 }

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

◆ get_dims() [1/2]

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

Implements AssocPairSide.

Definition at line 263 of file FBGeomAssocPairSide.cpp.

264 {
266 }

References iBase_FAILURE, and RETURNR.

◆ get_dims() [2/2]

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

Implements AssocPairSide.

Definition at line 268 of file FBGeomAssocPairSide.cpp.

269 {
271 }

References iBase_FAILURE, and RETURNR.

◆ get_entities()

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

Implements AssocPairSide.

Definition at line 112 of file FBGeomAssocPairSide.cpp.

117 {
118  int this_type = ( dimension == -1 ? iBase_ALL_TYPES : dimension );
119  int result;
120 
121  FBiGeom_getEntities( instance_, set_handle, this_type, entities, entities_alloc, entities_size, &result );
124 }

References entities, FBiGeom_getEntities, iBase_ALL_TYPES, iBase_SUCCESS, instance_, PROCESS_ERROR, and RETURNR.

◆ get_ents_dims()

int FBGeomAssocPairSide::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 126 of file FBGeomAssocPairSide.cpp.

131 {
132  int result;
133 
134  FBiGeom_getArrType( instance_, entities, entities_size, ent_types, ent_types_alloc, ent_types_size, &result );
137 }

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

◆ get_gids() [1/2]

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

Implements AssocPairSide.

Definition at line 234 of file FBGeomAssocPairSide.cpp.

235 {
236  int values_alloc = num_entities * sizeof( int );
237  int values_size;
238  int result;
239 
240  FBiGeom_getArrData( instance_, entities, num_entities, gid_tag, reinterpret_cast< void** >( &values ),
241  &values_alloc, &values_size, &result );
244 }

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

◆ get_gids() [2/2]

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

Implements AssocPairSide.

Definition at line 246 of file FBGeomAssocPairSide.cpp.

247 {
248  char* data = reinterpret_cast< char* >( values );
249  int values_alloc = sizeof( int );
250  int values_size;
251  int result;
252 
253  for( int i = 0; i < num_sets; i++ )
254  {
255  FBiGeom_getEntSetData( instance_, sets[i], gid_tag, reinterpret_cast< void** >( &data ), &values_alloc,
256  &values_size, &result );
257  data += values_size;
259  }
261 }

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

◆ get_iterator()

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

Implements AssocPairSide.

Definition at line 227 of file FBGeomAssocPairSide.cpp.

228 {
229  int result;
230  FBiGeom_initEntIter( instance_, set, iBase_ALL_TYPES, iter, &result );
232 }

References FBiGeom_initEntIter, iBase_ALL_TYPES, iBase_SUCCESS, instance_, and RETURNR.

◆ get_related_ents()

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

Implements AssocPairSide.

Definition at line 139 of file FBGeomAssocPairSide.cpp.

142 {
144 }

References iBase_FAILURE, and RETURNR.

◆ get_related_sets()

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

Implements AssocPairSide.

Definition at line 146 of file FBGeomAssocPairSide.cpp.

147 {
149 }

References iBase_FAILURE, and RETURNR.

◆ get_relation_side() [1/2]

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

Implements AssocPairSide.

Definition at line 151 of file FBGeomAssocPairSide.cpp.

152 {
153  int values_alloc = num_entities * sizeof( iBase_EntityHandle );
154  int values_size;
155  int result;
156 
157  FBiGeom_getArrData( instance_, entities, num_entities, relation_tag, &values, &values_alloc, &values_size,
158  &result );
161 }

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

◆ get_relation_side() [2/2]

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

Implements AssocPairSide.

Definition at line 163 of file FBGeomAssocPairSide.cpp.

164 {
165  char* data = static_cast< char* >( values );
166  int values_alloc = sizeof( iBase_EntityHandle );
167  int values_size;
168  int result;
169 
170  for( int i = 0; i < num_sets; i++ )
171  {
172  FBiGeom_getEntSetData( instance_, sets[i], relation_tag, reinterpret_cast< void** >( &data ), &values_alloc,
173  &values_size, &result );
174  data += values_size;
176  }
178 }

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

◆ instance()

iBase_Instance FBGeomAssocPairSide::instance ( ) const
virtual

Implements AssocPairSide.

Definition at line 48 of file FBGeomAssocPairSide.cpp.

49 {
50  return instance_;
51 }

References instance_.

◆ rmv_relation_side() [1/2]

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

Implements AssocPairSide.

Definition at line 205 of file FBGeomAssocPairSide.cpp.

206 {
207  int result;
208 
209  FBiGeom_rmvArrTag( instance_, entities, num_entities, relation_tag, &result );
212 }

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

◆ rmv_relation_side() [2/2]

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

Implements AssocPairSide.

Definition at line 214 of file FBGeomAssocPairSide.cpp.

215 {
216  int result;
217 
218  for( int i = 0; i < num_sets; i++ )
219  {
220  FBiGeom_rmvEntSetTag( instance_, sets[i], relation_tag, &result );
222  }
223 
225 }

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

◆ set_relation_side() [1/2]

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

Implements AssocPairSide.

Definition at line 180 of file FBGeomAssocPairSide.cpp.

181 {
182  int result;
183 
184  FBiGeom_setArrData( instance_, entities, num_entities, relation_tag, static_cast< const char* >( values ),
185  num_entities * sizeof( iBase_EntityHandle ), &result );
188 }

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

◆ set_relation_side() [2/2]

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

Implements AssocPairSide.

Definition at line 190 of file FBGeomAssocPairSide.cpp.

191 {
192  const char* data = static_cast< const char* >( values );
193  int size = sizeof( iBase_EntityHandle );
194  int result;
195 
196  for( int i = 0; i < num_sets; i++ )
197  {
198  FBiGeom_setEntSetData( instance_, sets[i], relation_tag, data, size, &result );
199  data += size;
201  }
203 }

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

◆ type()

iRel_IfaceType FBGeomAssocPairSide::type ( ) const
virtual

Implements AssocPairSide.

Definition at line 53 of file FBGeomAssocPairSide.cpp.

54 {
55  return iRel_FBIGEOM_IFACE;
56 }

References iRel_FBIGEOM_IFACE.

Member Data Documentation

◆ gid_tag

iBase_TagHandle FBGeomAssocPairSide::gid_tag
private

Definition at line 64 of file FBGeomAssocPairSide.hpp.

Referenced by FBGeomAssocPairSide(), and get_gids().

◆ id

int FBGeomAssocPairSide::id
private

Definition at line 61 of file FBGeomAssocPairSide.hpp.

Referenced by create_relation_side().

◆ instance_

◆ relation

iRel_Instance FBGeomAssocPairSide::relation
private

Definition at line 59 of file FBGeomAssocPairSide.hpp.

◆ relation_tag

iBase_TagHandle FBGeomAssocPairSide::relation_tag
private

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