MOAB: Mesh Oriented datABase  (version 5.5.0)
test_entset.cpp File Reference
#include "iGeom.h"
#include "iMesh.h"
#include "iRel.h"
#include <cstdio>
#include <cstdlib>
#include <cstring>
+ Include dependency graph for test_entset.cpp:

Go to the source code of this file.

Macros

#define STRINGIFY_(X)   #X
 
#define STRINGIFY(X)   STRINGIFY_( X )
 
#define CHECK_SIZE_C(type, array, allocated_size, size)
 

Typedefs

typedef void * iRel_EntityHandle
 

Functions

void handle_error_code (const int result, int *number_failed, int *, int *number_successful)
 
int print_geom_info (iGeom_Instance geom, iBase_EntityHandle gent)
 
int print_mesh_info (iMesh_Instance mesh, iBase_EntityHandle ment)
 
int load_geom_mesh_test (const char *geom_filename, const char *mesh_filename, iGeom_Instance geom, iMesh_Instance mesh)
 
int create_relation_test (iRel_Instance assoc, iGeom_Instance geom, iMesh_Instance mesh, iRel_PairHandle *pair)
 
int relate_geom_mesh_test (iRel_Instance assoc, iGeom_Instance geom, iMesh_Instance mesh, iRel_PairHandle pair)
 
int query_relations_test (iRel_Instance assoc, iGeom_Instance geom, iMesh_Instance mesh, iRel_PairHandle pair)
 
int main (int argc, char *argv[])
 

Macro Definition Documentation

◆ CHECK_SIZE_C

#define CHECK_SIZE_C (   type,
  array,
  allocated_size,
  size 
)
Value:
if( NULL == *(array) || *(allocated_size) == 0 ) \
{ \
*(array) = (type*)malloc( sizeof( type ) * (size) ); \
*(allocated_size) = size; \
} \
else if( *(allocated_size) < (size) ) \
{ \
printf( " Array passed in is non-zero but too short.\n" ); \
}

Definition at line 25 of file test_entset.cpp.

◆ STRINGIFY

#define STRINGIFY (   X)    STRINGIFY_( X )

Definition at line 12 of file test_entset.cpp.

◆ STRINGIFY_

#define STRINGIFY_ (   X)    #X

Definition at line 11 of file test_entset.cpp.

Typedef Documentation

◆ iRel_EntityHandle

typedef void* iRel_EntityHandle

Definition at line 38 of file test_entset.cpp.

Function Documentation

◆ create_relation_test()

int create_relation_test ( iRel_Instance  assoc,
iGeom_Instance  geom,
iMesh_Instance  mesh,
iRel_PairHandle pair 
)
Test:
TSTTLasso create relation Test
  • Create relation between geom and mesh

Definition at line 214 of file test_entset.cpp.

215 {
216  int result;
217  iBase_Instance iface1, iface2;
218  int type1, type2;
219  int ent_or_set1, ent_or_set2;
220  int status1, status2;
221 
222  iRel_PairHandle tmp_pair;
223  iRel_PairHandle* pair_ptr = &tmp_pair;
224  int pairs_alloc = 1, pairs_size;
225 
226  /* create an relation, entity to set */
228  iRel_ACTIVE, pair, &result );
229  if( iBase_SUCCESS != result )
230  {
231  printf( "Couldn't create a new relation.\n" );
232  return 0;
233  }
234 
235  iRel_getPairInfo( assoc, *pair, &iface1, &ent_or_set1, &type1, &status1, &iface2, &ent_or_set2, &type2, &status2,
236  &result );
237  if( iBase_SUCCESS != result )
238  {
239  printf( "Couldn't retrieve relation info.\n" );
240  return 0;
241  }
242  if( iface1 != geom || ent_or_set1 != iRel_ENTITY || type1 != iRel_IGEOM_IFACE || iface2 != mesh ||
243  ent_or_set2 != iRel_SET || type2 != iRel_IMESH_IFACE )
244  {
245  printf( "Unexpected relation info returned.\n" );
246  return 0;
247  }
248 
249  iRel_findPairs( assoc, geom, &pair_ptr, &pairs_alloc, &pairs_size, &result );
250  if( iBase_SUCCESS != result )
251  {
252  printf( "Couldn't find relation pair when querying geom.\n" );
253  return 0;
254  }
255  if( pairs_size != 1 || tmp_pair != *pair )
256  {
257  printf( "Unexpected relation pairs returned when querying geom.\n" );
258  return 0;
259  }
260 
261  iRel_findPairs( assoc, mesh, &pair_ptr, &pairs_alloc, &pairs_size, &result );
262  if( iBase_SUCCESS != result )
263  {
264  printf( "Couldn't find relation pair when querying mesh.\n" );
265  return 0;
266  }
267  if( pairs_size != 1 || tmp_pair != *pair )
268  {
269  printf( "Unexpected relation pairs returned when querying mesh.\n" );
270  return 0;
271  }
272 
273  return 1;
274 }

References geom, iBase_SUCCESS, iRel_ACTIVE, iRel_createPair, iRel_ENTITY, iRel_findPairs, iRel_getPairInfo, iRel_IGEOM_IFACE, iRel_IMESH_IFACE, iRel_SET, and mesh.

Referenced by main().

◆ handle_error_code()

void handle_error_code ( const int  result,
int *  number_failed,
int *  ,
int *  number_successful 
)

prints out a result string based on the value of error_code

Definition at line 43 of file test_entset.cpp.

44 {
45  if( result )
46  {
47  printf( "Success" );
48  ( *number_successful )++;
49  }
50  else
51  {
52  printf( "Failure" );
53  ( *number_failed )++;
54  }
55 }

Referenced by main().

◆ load_geom_mesh_test()

int load_geom_mesh_test ( const char *  geom_filename,
const char *  mesh_filename,
iGeom_Instance  geom,
iMesh_Instance  mesh 
)
Test:
Load Mesh
  • Load a geom and a mesh file

Definition at line 184 of file test_entset.cpp.

188 {
189  /* load a geom */
190  int result;
191  iGeom_load( geom, geom_filename, 0, &result, strlen( geom_filename ), 0 );
192  if( iBase_SUCCESS != result )
193  {
194  printf( "ERROR : can not load a geometry\n" );
195  return 0;
196  }
197 
198  /* load a mesh */
199  iMesh_load( mesh, 0, mesh_filename, 0, &result, strlen( mesh_filename ), 0 );
200  if( iBase_SUCCESS != result )
201  {
202  printf( "ERROR : can not load a mesh\n" );
203  return 0;
204  }
205 
206  return 1;
207 }

References geom, iBase_SUCCESS, iMesh_load, and mesh.

Referenced by main().

◆ main()

int main ( int  argc,
char *  argv[] 
)

Definition at line 537 of file test_entset.cpp.

538 {
539  /* Check command line arg */
540  const char* geom_filename = DEFAULT_GEOM;
541  const char* mesh_filename = DEFAULT_MESH;
542 
543  int result;
544  int number_tests = 0;
545  int number_tests_successful = 0;
546  int number_tests_not_implemented = 0;
547  int number_tests_failed = 0;
548 
549  iGeom_Instance geom;
551  iRel_Instance assoc;
552  iRel_PairHandle pair;
553 
554  printf( "Usage: %s %s\n", geom_filename, mesh_filename );
555 
556  if( argc == 2 && !strcmp( argv[1], "-h" ) )
557  {
558  printf( "Usage: %s <geom_filename> <mesh_filename>\n", argv[0] );
559  return 1;
560  }
561  else if( argc == 2 )
562  {
563  geom_filename = argv[1];
564  mesh_filename = argv[1];
565  }
566  else if( argc == 3 )
567  {
568  geom_filename = argv[1];
569  mesh_filename = argv[2];
570  }
571 
572  /* initialize the Geometry */
573  iGeom_newGeom( 0, &geom, &result, 0 );
574 
575  /* initialize the Mesh */
576  iMesh_newMesh( 0, &mesh, &result, 0 );
577 
578  /* initialize the Associate */
579  iRel_create( 0, &assoc, &result, 0 );
580 
581  /* Print out Header information */
582  printf( "\n\niRel TEST PROGRAM:\n\n" );
583 
584  /* load_geom_mesh test */
585  printf( " load_geom_mesh: " );
586  result = load_geom_mesh_test( geom_filename, mesh_filename, geom, mesh );
587  handle_error_code( result, &number_tests_failed, &number_tests_not_implemented, &number_tests_successful );
588  number_tests++;
589  printf( "\n" );
590 
591  /* create_relation test */
592  printf( " create_relation: " );
593  result = create_relation_test( assoc, geom, mesh, &pair );
594  handle_error_code( result, &number_tests_failed, &number_tests_not_implemented, &number_tests_successful );
595  number_tests++;
596  printf( "\n" );
597 
598  /* relate_geom_mesh test */
599  printf( " relate_geom_mesh: " );
600  result = relate_geom_mesh_test( assoc, geom, mesh, pair );
601  handle_error_code( result, &number_tests_failed, &number_tests_not_implemented, &number_tests_successful );
602  number_tests++;
603  printf( "\n" );
604 
605  /* query_relations test */
606  printf( " query_relations: " );
607  result = query_relations_test( assoc, geom, mesh, pair );
608  handle_error_code( result, &number_tests_failed, &number_tests_not_implemented, &number_tests_successful );
609  number_tests++;
610  printf( "\n" );
611 
612  /* summary */
613 
614  printf( "\niRel TEST SUMMARY: \n" );
615  printf( " Number Tests: %d\n", number_tests );
616  printf( " Number Successful: %d\n", number_tests_successful );
617  printf( " Number Not Implemented: %d\n", number_tests_not_implemented );
618  printf( " Number Failed: %d\n", number_tests_failed );
619  printf( "\n\n" );
620 
621  iRel_destroy( assoc, &result );
622  iMesh_dtor( mesh, &result );
623  iGeom_dtor( geom, &result );
624 
625  return number_tests_failed != 0;
626 }

References create_relation_test(), geom, handle_error_code(), iMesh_dtor, iMesh_newMesh, iRel_create, iRel_destroy, load_geom_mesh_test(), mesh, number_tests, number_tests_failed, number_tests_successful, query_relations_test(), and relate_geom_mesh_test().

◆ print_geom_info()

int print_geom_info ( iGeom_Instance  geom,
iBase_EntityHandle  gent 
)

Definition at line 57 of file test_entset.cpp.

58 {
59  /* print information about this entity */
60  int ent_type;
61  int result;
62  const char* type_names[] = { "Vertex", "Edge", "Face", "Region" };
63 
64  iGeom_getEntType( geom, gent, &ent_type, &result );
65 
66  if( iBase_SUCCESS != result )
67  {
68  printf( "Trouble getting entity adjacencies or types." );
69  return 0;
70  }
71 
72  printf( "%s 0x%lx\n", type_names[ent_type], (unsigned long)gent );
73 
74  return 1;
75 }

References geom, and iBase_SUCCESS.

Referenced by query_relations_test().

◆ print_mesh_info()

int print_mesh_info ( iMesh_Instance  mesh,
iBase_EntityHandle  ment 
)

Definition at line 77 of file test_entset.cpp.

78 {
79  /* print information about this entity */
80 
81  /* get adjacencies first; assume not more than 50 */
82  iBase_EntityHandle adj_ents[50], *adj_ents_ptr = adj_ents;
83  int ent_types[50], *ent_types_ptr = ent_types;
84  int adj_ents_alloc = 50, adj_ents_size, ent_types_size, ent_types_allocated = 50;
85  int result;
86 
87  iBase_TagHandle* ment_tags = NULL;
88  int ment_tags_size, ment_tags_alloc;
89 
90  char** tag_names;
91  int i;
92 
93  const char* type_names[] = { "Vertex", "Edge", "Face", "Region" };
94 
95  iMesh_getEntAdj( mesh, ment, iBase_ALL_TYPES, &adj_ents_ptr, &adj_ents_alloc, &adj_ents_size, &result );
96 
97  if( iBase_SUCCESS != result ) return 0;
98 
99  /* put this ent on the end, then get types */
100  adj_ents[adj_ents_size] = ment;
101  iMesh_getEntArrType( mesh, adj_ents, adj_ents_size + 1, &ent_types_ptr, &ent_types_allocated, &ent_types_size,
102  &result );
103  if( iBase_SUCCESS != result )
104  {
105  printf( "Trouble getting entity adjacencies or types." );
106  return 0;
107  }
108 
109  /* get tags on ment */
110  iMesh_getAllTags( mesh, ment, &ment_tags, &ment_tags_alloc, &ment_tags_size, &result );
111 
112  printf( "Trouble getting tags on an entity or their names." );
113 
114  /* while we're at it, get all the tag names */
115 
116  tag_names = (char**)malloc( ment_tags_size * sizeof( char* ) );
117 
118  for( i = 0; i < ment_tags_size; i++ )
119  {
120  tag_names[i] = (char*)malloc( 120 * sizeof( char ) );
121  iMesh_getTagName( mesh, ment_tags[i], tag_names[i], &result, 120 );
122  }
123 
124  /* now print the information */
125  printf( "%s %ld:\n", type_names[ent_types[ent_types_size - 1]], (long)ment );
126  printf( "Adjacencies:" );
127  for( i = 0; i < adj_ents_size; i++ )
128  {
129  if( i > 0 ) printf( ", " );
130  printf( "%s %ld", type_names[ent_types[i]], (long)adj_ents[i] );
131  }
132  printf( "\nTags: \n" );
133  for( i = 0; i < ment_tags_size; i++ )
134  {
135  int tag_type;
136 
137  printf( "%s ", tag_names[i] );
138  iMesh_getTagType( mesh, ment_tags[i], &tag_type, &result );
139  if( iBase_SUCCESS != result )
140  printf( "(trouble getting type...)\n" );
141  else
142  {
143  char* dum_handle = NULL;
144  int dum_handle_alloc = 0, dum_handle_size = 0;
145  int int_data;
146  double dbl_data;
147  iBase_EntityHandle eh_data;
148 
149  switch( tag_type )
150  {
151  case iBase_INTEGER:
152  iMesh_getIntData( mesh, ment, ment_tags[i], &int_data, &result );
153  printf( "(Int value=%d)", int_data );
154  break;
155  case iBase_DOUBLE:
156  iMesh_getDblData( mesh, ment, ment_tags[i], &dbl_data, &result );
157  printf( "(Dbl value=%f)", dbl_data );
158  break;
159  case iBase_ENTITY_HANDLE:
160  iMesh_getEHData( mesh, ment, ment_tags[i], &eh_data, &result );
161  printf( "(EH value=%ld)", (long)eh_data );
162  break;
163  case iBase_BYTES:
164  iMesh_getData( mesh, ment, ment_tags[i], (void**)&dum_handle, &dum_handle_alloc, &dum_handle_size,
165  &result );
166  if( NULL != dum_handle && dum_handle_size > 0 ) printf( "(Opaque value=%c)", dum_handle[0] );
167  break;
168  }
169  }
170 
171  printf( "\n" );
172  }
173  printf( "(end tags)\n\n" );
174  free( ment_tags );
175 
176  return 1;
177 }

References iBase_ALL_TYPES, iBase_BYTES, iBase_DOUBLE, iBase_ENTITY_HANDLE, iBase_INTEGER, iBase_SUCCESS, iMesh_getAllTags, iMesh_getData, iMesh_getDblData, iMesh_getEHData, iMesh_getEntAdj, iMesh_getEntArrType, iMesh_getIntData, iMesh_getTagName, iMesh_getTagType, and mesh.

◆ query_relations_test()

int query_relations_test ( iRel_Instance  assoc,
iGeom_Instance  geom,
iMesh_Instance  mesh,
iRel_PairHandle  pair 
)
Test:
TSTTAssoc move to test
  • Move meshes onto the given geometry

Definition at line 450 of file test_entset.cpp.

451 {
452  int result;
453  int i;
454 
455  iBase_EntityHandle* gentities = NULL;
456  int gentities_size = 0, gentities_alloc = 0;
457 
458  iBase_EntitySetHandle* out_mentities = NULL;
459  int out_mentities_size, out_mentities_alloc = 0;
460 
461  iBase_EntityHandle* out_gentities = NULL;
462  int out_gentities_size, out_gentities_alloc = 0;
463 
464  /* get all the geom entities, and find relation to some mesh entity */
465  iGeom_getEntities( geom, NULL, iBase_ALL_TYPES, &gentities, &gentities_alloc, &gentities_size, &result );
466  if( iBase_SUCCESS != result )
467  {
468  printf( "Problem getting all geom entities.\n" );
469  return 0;
470  }
471 
472  iRel_getEntArrSetArrRelation( assoc, pair, gentities, gentities_size, 0, &out_mentities, &out_mentities_alloc,
473  &out_mentities_size, &result );
474  /* might not all be */
475  if( iBase_SUCCESS != result )
476  {
477  char descr[120];
478 
479  printf( "Failed to get mesh entities related to geom entities in query_relations_test.\n" );
480 
481  iRel_getDescription( assoc, descr, sizeof( descr ) - 1 );
482  printf( "Entities missing relations: %s\n", descr );
483 
484  for( i = 0; i < gentities_size; i++ )
485  {
486  print_geom_info( geom, gentities[i] );
487  }
488 
489  return 0;
490  }
491 
492  /* check that they're all non-null */
493  if( out_mentities_size != gentities_size )
494  {
495  printf( "Number of mesh & related geom entities don't match.\n" );
496  return 0;
497  }
498 
499  /* check to make sure they're mesh sets; how to do that? */
500  for( i = 0; i < out_mentities_size; i++ )
501  {
502  int is_list;
503  iMesh_isList( mesh, (iBase_EntitySetHandle)out_mentities[i], &is_list, &result );
504  if( iBase_SUCCESS != result )
505  {
506  printf( "Entity set returned from classification wasn't valid.\n" );
507  return 0;
508  }
509  }
510 
511  /* now turn around and check classification of those mesh entities */
512  iRel_getSetArrEntArrRelation( assoc, pair, out_mentities, out_mentities_size, 1, &out_gentities,
513  &out_gentities_alloc, &out_gentities_size, &result );
514  if( iBase_SUCCESS != result )
515  {
516  printf( "Failed to get geom entities related to mesh entities in query_relations_test.\n" );
517  return 0;
518  }
519 
520  /* check that they're all non-null */
521  if( out_mentities_size != out_gentities_size )
522  {
523  printf( "Number of geom & related mesh entities don't match.\n" );
524  return 0;
525  }
526 
527  free( gentities );
528  gentities = NULL;
529  free( out_mentities );
530  out_mentities = NULL;
531  free( out_gentities );
532  out_gentities = NULL;
533  /* ok, we're done */
534  return 1;
535 }

References geom, iBase_ALL_TYPES, iBase_SUCCESS, iMesh_isList, iRel_getDescription, iRel_getEntArrSetArrRelation, iRel_getSetArrEntArrRelation, mesh, and print_geom_info().

Referenced by main().

◆ relate_geom_mesh_test()

int relate_geom_mesh_test ( iRel_Instance  assoc,
iGeom_Instance  geom,
iMesh_Instance  mesh,
iRel_PairHandle  pair 
)
Test:
TSTTLasso relate geom and mesh Test
  • Check relation between geom and mesh

Definition at line 281 of file test_entset.cpp.

282 {
283  int result;
284 
285  iBase_EntityHandle* gentities = NULL;
286  int gentities_size = 0, gentities_alloc = 0;
287 
288  iBase_EntitySetHandle* mentity_handles = NULL;
289  int mentity_handles_size = 0, mentity_handles_alloc = 0;
290 
291  const char* dim_tag_name = "GEOM_DIMENSION";
292  iBase_TagHandle dim_tag_mesh;
293 
294  iBase_EntitySetHandle* mentities_vec;
295  int mentities_vec_size = 0;
296  int i;
297 
298  iBase_EntitySetHandle* out_mentities = NULL;
299  int out_mentities_size = 0, out_mentities_alloc = 0;
300 
301  iBase_EntitySetHandle* out_mentities2 = NULL;
302  int out_mentities2_size = 0, out_mentities2_alloc = 0;
303 
304  iBase_EntityHandle* out_gentities = NULL;
305  int out_gentities_size = 0, out_gentities_alloc = 0;
306 
307  /* relate geometry entities with coresponding mesh entity sets */
308  iGeom_getEntities( geom, NULL, iBase_VERTEX, &gentities, &gentities_alloc, &gentities_size, &result );
309  if( iBase_SUCCESS != result )
310  {
311  printf( "Failed to get gentities by type in relate_geom_mesh_test.\n" );
312  return 0;
313  }
314 
315  iRel_inferEntArrRelations( assoc, pair, gentities, gentities_size, 0, &result );
316  if( iBase_SUCCESS != result )
317  {
318  printf( "Failed to relate geom entities in relate_geom_mesh_test.\n" );
319  return 0;
320  }
321 
322  /* relate coresponding mesh entity sets for geometry entities */
323  /* get 1-dimensional mesh entitysets */
324  iMesh_getEntSets( mesh, NULL, 1, &mentity_handles, &mentity_handles_alloc, &mentity_handles_size, &result );
325  if( iBase_SUCCESS != result )
326  {
327  printf( "Problem to get all entity sets.\n" );
328  return 0;
329  }
330 
331  /* get geom dimension tags for mesh entitysets */
332  iMesh_createTag( mesh, dim_tag_name, 1, iBase_INTEGER, &dim_tag_mesh, &result, 15 );
333  if( iBase_SUCCESS != result && result != iBase_TAG_ALREADY_EXISTS )
334  {
335  printf( "Couldn't create geom dim tag for mesh entities.\n" );
336  return 0;
337  }
338 
339  /* get 1-dimensional mesh entitysets */
340  mentities_vec = (iBase_EntitySetHandle*)malloc( mentity_handles_size * sizeof( iBase_EntitySetHandle ) );
341  for( i = 0; i < mentity_handles_size; i++ )
342  { /* test */
343  int dim;
344  iMesh_getEntSetIntData( mesh, mentity_handles[i], dim_tag_mesh, &dim, &result );
345  if( iBase_SUCCESS != result ) continue;
346 
347  if( dim == 1 ) mentities_vec[mentities_vec_size++] = mentity_handles[i];
348  }
349 
350  iRel_inferSetArrRelations( assoc, pair, mentities_vec, mentities_vec_size, 1, &result );
351  if( iBase_SUCCESS != result )
352  {
353  printf( "Failed to relate mesh entities in relate_geom_mesh_test.\n" );
354  return 0;
355  }
356 
357  /* relate all geometry and mesh entities */
358  iRel_inferAllRelations( assoc, pair, &result );
359  if( iBase_SUCCESS != result )
360  {
361  printf( "Failed to relate all geom and mesh entities in relate_geom_mesh_test.\n" );
362  return 0;
363  }
364 
365  /* reset geom entities list and get all geom entities (prev
366  only vertices) */
367  free( gentities );
368  gentities = NULL;
369  gentities_alloc = 0;
370  iGeom_getEntities( geom, NULL, iBase_ALL_TYPES, &gentities, &gentities_alloc, &gentities_size, &result );
371  if( iBase_SUCCESS != result )
372  {
373  printf( "Failed to get gentities by type in relate_geom_mesh_test.\n" );
374  return 0;
375  }
376 
377  /* get related mesh entity sets for geometry entities */
378  iRel_getEntArrSetArrRelation( assoc, pair, gentities, gentities_size, 0, &out_mentities, &out_mentities_alloc,
379  &out_mentities_size, &result );
380  if( iBase_SUCCESS != result )
381  {
382  printf( "Failed to get geom entities in relate_geom_mesh_test.\n" );
383  return 0;
384  }
385 
386  if( out_mentities_size != gentities_size )
387  {
388  printf( "Number of input geom entities and output mesh entity sets should be same\n" );
389  return 0;
390  }
391 
392  /* now try deleting this relation */
393  iRel_rmvEntArrRelation( assoc, pair, gentities, gentities_size, 0, &result );
394  if( iBase_SUCCESS != result )
395  {
396  printf( "Failed to remove relation in relate_geom_mesh_test.\n" );
397  return 0;
398  }
399 
400  iRel_getEntArrSetArrRelation( assoc, pair, gentities, gentities_size, 0, &out_mentities2, &out_mentities2_alloc,
401  &out_mentities2_size, &result );
402  if( iBase_SUCCESS == result )
403  {
404  printf( "Shouldn't have gotten mesh sets in relate_geom_mesh_test.\n" );
405  return 0;
406  }
407 
408  /* restore the relation, since we need it later */
409  iRel_setEntArrSetArrRelation( assoc, pair, gentities, gentities_size, out_mentities, out_mentities_size, &result );
410  if( iBase_SUCCESS != result )
411  {
412  printf( "Failed to restore relation in relate_geom_mesh_test.\n" );
413  return 0;
414  }
415 
416  /* get related geometry entities for mesh entity sets */
417  iRel_getSetArrEntArrRelation( assoc, pair, out_mentities, out_mentities_size, 1, &out_gentities,
418  &out_gentities_alloc, &out_gentities_size, &result );
419  if( iBase_SUCCESS != result )
420  {
421  printf( "Failed to get mesh entities in relate_geom_mesh_test.\n" );
422  return 0;
423  }
424 
425  if( out_mentities_size != out_gentities_size )
426  {
427  printf( "Number of input mesh entity sets and output geom entities should be same\n" );
428  return 0;
429  }
430  free( mentity_handles );
431  mentity_handles = NULL;
432  free( gentities );
433  gentities = NULL;
434  free( mentity_handles );
435  mentity_handles = NULL;
436  free( out_mentities );
437  out_mentities = NULL;
438  free( mentities_vec );
439  mentities_vec = NULL;
440  free( out_gentities );
441  out_gentities = NULL;
442  return 1;
443 }

References dim, geom, iBase_ALL_TYPES, iBase_INTEGER, iBase_SUCCESS, iBase_TAG_ALREADY_EXISTS, iBase_VERTEX, iMesh_createTag, iMesh_getEntSetIntData, iMesh_getEntSets, iRel_getEntArrSetArrRelation, iRel_getSetArrEntArrRelation, iRel_inferAllRelations, iRel_inferEntArrRelations, iRel_inferSetArrRelations, iRel_rmvEntArrRelation, iRel_setEntArrSetArrRelation, and mesh.

Referenced by main().