MOAB: Mesh Oriented datABase  (version 5.5.0)
read_cgm_senses_test.cpp File Reference
#include <iostream>
#include "moab/Interface.hpp"
#include "TestUtil.hpp"
#include "Internals.hpp"
#include "moab/Core.hpp"
#include "MBTagConventions.hpp"
#include "moab/GeomTopoTool.hpp"
#include "InitCGMA.hpp"
#include "GeometryQueryTool.hpp"
#include "CGMConfig.h"
+ Include dependency graph for read_cgm_senses_test.cpp:

Go to the source code of this file.

Macros

#define IS_BUILDING_MB
 
#define SENSE_FORWARD   1
 
#define SENSE_REVERSE   ( -1 )
 
#define SENSE_UNKNOWN   0
 
#define CHKERR(A)
 

Functions

void read_file (Interface *moab, const char *input_file)
 
ErrorCode load_sat_curve_sense_data (Interface *moab, EntityHandle curve, std::vector< int > &surf_ids_out, std::vector< int > &senses_out)
 
ErrorCode load_stp_curve_sense_data (Interface *moab, EntityHandle curve, std::vector< int > &surf_ids_out, std::vector< int > &senses_out)
 
ErrorCode load_precgm14_stp_curve_sense_data (Interface *moab, EntityHandle curve, std::vector< int > &surf_ids_out, std::vector< int > &senses_out)
 
ErrorCode load_sat_surf_sense_data (Interface *moab, EntityHandle surf, std::vector< int > &vol_ids_out, std::vector< int > &senses_out)
 
ErrorCode load_stp_surf_sense_data (Interface *moab, EntityHandle surf, std::vector< int > &vol_ids_out, std::vector< int > &senses_out)
 
ErrorCode load_precgm14_stp_surf_sense_data (Interface *moab, EntityHandle surf, std::vector< int > &vol_ids_out, std::vector< int > &senses_out)
 
void check_sense_data (Interface *moab, std::vector< EntityHandle > wrt_ents, std::vector< int > senses, std::vector< int > known_wrt_ids, std::vector< int > known_senses)
 
int geom_id_by_handle (Interface *moab, const EntityHandle set)
 
void read_cylcube_curve_senses_test ()
 
void read_cylcube_surf_senses_test ()
 
void delete_mesh_test ()
 
int main (int, char **)
 

Variables

std::string input_cylcube = TestDir + "unittest/io/cylcube.sat"
 

Macro Definition Documentation

◆ CHKERR

#define CHKERR (   A)
Value:
do \
{ \
if( MB_SUCCESS != ( A ) ) \
{ \
std::cerr << "Failure (error code " << ( A ) << ") at " __FILE__ ":" << __LINE__ << std::endl; \
return A; \
} \
} while( false )

Definition at line 20 of file read_cgm_senses_test.cpp.

◆ IS_BUILDING_MB

#define IS_BUILDING_MB

Definition at line 4 of file read_cgm_senses_test.cpp.

◆ SENSE_FORWARD

#define SENSE_FORWARD   1

Definition at line 15 of file read_cgm_senses_test.cpp.

◆ SENSE_REVERSE

#define SENSE_REVERSE   ( -1 )

Definition at line 16 of file read_cgm_senses_test.cpp.

◆ SENSE_UNKNOWN

#define SENSE_UNKNOWN   0

Definition at line 17 of file read_cgm_senses_test.cpp.

Function Documentation

◆ check_sense_data()

void check_sense_data ( Interface moab,
std::vector< EntityHandle wrt_ents,
std::vector< int >  senses,
std::vector< int >  known_wrt_ids,
std::vector< int >  known_senses 
)

Definition at line 186 of file read_cgm_senses_test.cpp.

191 {
192 
193  // Get ID's of the wrt entities
194  std::vector< int > wrt_ent_ids;
195  for( unsigned int i = 0; i < wrt_ents.size(); i++ )
196  {
197  wrt_ent_ids.push_back( geom_id_by_handle( moab, wrt_ents[i] ) );
198  }
199 
200  for( unsigned int i = 0; i < wrt_ent_ids.size(); i++ )
201  {
202  for( unsigned int j = 0; j < known_wrt_ids.size(); j++ )
203  {
204  if( wrt_ent_ids[i] == known_wrt_ids[j] )
205  {
206  // Make sure the senses of the matching wrt entities
207  // are correct
208  CHECK_EQUAL( senses[i], known_senses[j] );
209  // Once a wrt entity is matched with a known entity,
210  // remove it from the list
211  wrt_ent_ids.erase( wrt_ent_ids.begin() + i );
212  senses.erase( senses.begin() + i );
213  --i;
214  break;
215  }
216  }
217  }
218 
219  // After both loops are complete, known_wrt_ents should be empty
220  int leftovers = wrt_ent_ids.size();
221  CHECK_EQUAL( leftovers, 0 );
222 }

References CHECK_EQUAL, and geom_id_by_handle().

Referenced by read_cylcube_curve_senses_test(), and read_cylcube_surf_senses_test().

◆ delete_mesh_test()

void delete_mesh_test ( )

◆ geom_id_by_handle()

int geom_id_by_handle ( Interface moab,
const EntityHandle  set 
)

Definition at line 174 of file read_cgm_senses_test.cpp.

175 {
176 
177  ErrorCode rval;
178  // Get the id_tag handle
179  Tag id_tag = moab->globalId_tag();
180  // Load the ID for the EntHandle given to the function
181  int id;
182  rval = moab->tag_get_data( id_tag, &set, 1, &id );CHECK_ERR( rval );
183  return id;
184 }

References CHECK_ERR, ErrorCode, and id_tag.

Referenced by check_sense_data(), load_precgm14_stp_curve_sense_data(), load_precgm14_stp_surf_sense_data(), load_sat_curve_sense_data(), load_sat_surf_sense_data(), load_stp_curve_sense_data(), and load_stp_surf_sense_data().

◆ load_precgm14_stp_curve_sense_data()

ErrorCode load_precgm14_stp_curve_sense_data ( Interface moab,
EntityHandle  curve,
std::vector< int > &  surf_ids_out,
std::vector< int > &  senses_out 
)

Definition at line 474 of file read_cgm_senses_test.cpp.

478 {
479 
480  int curve_id = geom_id_by_handle( moab, curve );
481  switch( curve_id )
482  {
483  case 1:
484  surf_ids_out.push_back( 1 );
485  surf_ids_out.push_back( 6 );
486  senses_out.push_back( SENSE_FORWARD );
487  senses_out.push_back( SENSE_REVERSE );
488  break;
489 
490  case 2:
491  surf_ids_out.push_back( 1 );
492  surf_ids_out.push_back( 5 );
493  senses_out.push_back( SENSE_FORWARD );
494  senses_out.push_back( SENSE_REVERSE );
495  break;
496 
497  case 3:
498  surf_ids_out.push_back( 1 );
499  surf_ids_out.push_back( 4 );
500  senses_out.push_back( SENSE_FORWARD );
501  senses_out.push_back( SENSE_REVERSE );
502  break;
503 
504  case 4:
505  surf_ids_out.push_back( 1 );
506  surf_ids_out.push_back( 3 );
507  senses_out.push_back( SENSE_FORWARD );
508  senses_out.push_back( SENSE_REVERSE );
509  break;
510 
511  case 5:
512  surf_ids_out.push_back( 2 );
513  surf_ids_out.push_back( 6 );
514  senses_out.push_back( SENSE_FORWARD );
515  senses_out.push_back( SENSE_REVERSE );
516  break;
517 
518  case 6:
519  surf_ids_out.push_back( 2 );
520  surf_ids_out.push_back( 3 );
521  senses_out.push_back( SENSE_FORWARD );
522  senses_out.push_back( SENSE_REVERSE );
523  break;
524 
525  case 7:
526  surf_ids_out.push_back( 2 );
527  surf_ids_out.push_back( 4 );
528  senses_out.push_back( SENSE_FORWARD );
529  senses_out.push_back( SENSE_REVERSE );
530  break;
531 
532  case 8:
533  surf_ids_out.push_back( 2 );
534  surf_ids_out.push_back( 5 );
535  senses_out.push_back( SENSE_FORWARD );
536  senses_out.push_back( SENSE_REVERSE );
537  break;
538 
539  case 9:
540  surf_ids_out.push_back( 3 );
541  surf_ids_out.push_back( 4 );
542  senses_out.push_back( SENSE_FORWARD );
543  senses_out.push_back( SENSE_REVERSE );
544  break;
545 
546  case 10:
547  surf_ids_out.push_back( 3 );
548  surf_ids_out.push_back( 6 );
549  senses_out.push_back( SENSE_REVERSE );
550  senses_out.push_back( SENSE_FORWARD );
551  break;
552 
553  case 11:
554  surf_ids_out.push_back( 4 );
555  surf_ids_out.push_back( 5 );
556  senses_out.push_back( SENSE_FORWARD );
557  senses_out.push_back( SENSE_REVERSE );
558  break;
559 
560  case 12:
561  surf_ids_out.push_back( 5 );
562  surf_ids_out.push_back( 6 );
563  senses_out.push_back( SENSE_FORWARD );
564  senses_out.push_back( SENSE_REVERSE );
565  break;
566 
567  case 13:
568  surf_ids_out.push_back( 7 );
569  surf_ids_out.push_back( 8 );
570  senses_out.push_back( SENSE_REVERSE );
571  senses_out.push_back( SENSE_FORWARD );
572  break;
573 
574  case 14:
575  surf_ids_out.push_back( 7 );
576  surf_ids_out.push_back( 9 );
577  senses_out.push_back( SENSE_REVERSE );
578  senses_out.push_back( SENSE_FORWARD );
579  break;
580  case 15:
581  surf_ids_out.push_back( 7 );
582  surf_ids_out.push_back( 8 );
583  senses_out.push_back( SENSE_REVERSE );
584  senses_out.push_back( SENSE_FORWARD );
585  break;
586  case 16:
587  surf_ids_out.push_back( 7 );
588  surf_ids_out.push_back( 10 );
589  senses_out.push_back( SENSE_REVERSE );
590  senses_out.push_back( SENSE_FORWARD );
591  break;
592  case 17:
593  surf_ids_out.push_back( 8 );
594  surf_ids_out.push_back( 10 );
595  senses_out.push_back( SENSE_REVERSE );
596  senses_out.push_back( SENSE_FORWARD );
597  break;
598  case 18:
599  surf_ids_out.push_back( 8 );
600  surf_ids_out.push_back( 9 );
601  senses_out.push_back( SENSE_REVERSE );
602  senses_out.push_back( SENSE_FORWARD );
603  break;
604  default:
605  return MB_FAILURE;
606  }
607  return MB_SUCCESS;
608 }

References geom_id_by_handle(), MB_SUCCESS, SENSE_FORWARD, and SENSE_REVERSE.

Referenced by read_cylcube_curve_senses_test().

◆ load_precgm14_stp_surf_sense_data()

ErrorCode load_precgm14_stp_surf_sense_data ( Interface moab,
EntityHandle  surf,
std::vector< int > &  vol_ids_out,
std::vector< int > &  senses_out 
)

Definition at line 810 of file read_cgm_senses_test.cpp.

814 {
815 
816  int surf_id = geom_id_by_handle( moab, surf );
817  switch( surf_id )
818  {
819  case 1:
820  case 2:
821  case 3:
822  case 4:
823  case 5:
824  case 6:
825  vol_ids_out.push_back( 1 );
826  senses_out.push_back( SENSE_FORWARD );
827  break;
828 
829  case 7:
830  case 8:
831  case 9:
832  case 10:
833  vol_ids_out.push_back( 2 );
834  senses_out.push_back( SENSE_FORWARD );
835  break;
836 
837  default:
838  std::cout << "Failure to find surface sense reference data. Returning failure..." << std::endl;
839  return MB_FAILURE;
840  }
841  return MB_SUCCESS;
842 }

References geom_id_by_handle(), MB_SUCCESS, and SENSE_FORWARD.

Referenced by read_cylcube_surf_senses_test().

◆ load_sat_curve_sense_data()

ErrorCode load_sat_curve_sense_data ( Interface moab,
EntityHandle  curve,
std::vector< int > &  surf_ids_out,
std::vector< int > &  senses_out 
)

Definition at line 225 of file read_cgm_senses_test.cpp.

229 {
230 
231  int curve_id = geom_id_by_handle( moab, curve );
232  switch( curve_id )
233  {
234  case 1:
235  surf_ids_out.push_back( 1 );
236  surf_ids_out.push_back( 6 );
237  senses_out.push_back( SENSE_FORWARD );
238  senses_out.push_back( SENSE_REVERSE );
239  break;
240 
241  case 2:
242  surf_ids_out.push_back( 1 );
243  surf_ids_out.push_back( 5 );
244  senses_out.push_back( SENSE_FORWARD );
245  senses_out.push_back( SENSE_REVERSE );
246  break;
247 
248  case 3:
249  surf_ids_out.push_back( 1 );
250  surf_ids_out.push_back( 4 );
251  senses_out.push_back( SENSE_FORWARD );
252  senses_out.push_back( SENSE_REVERSE );
253  break;
254 
255  case 4:
256  surf_ids_out.push_back( 1 );
257  surf_ids_out.push_back( 3 );
258  senses_out.push_back( SENSE_FORWARD );
259  senses_out.push_back( SENSE_REVERSE );
260  break;
261 
262  case 5:
263  surf_ids_out.push_back( 2 );
264  surf_ids_out.push_back( 6 );
265  senses_out.push_back( SENSE_FORWARD );
266  senses_out.push_back( SENSE_REVERSE );
267  break;
268 
269  case 6:
270  surf_ids_out.push_back( 2 );
271  surf_ids_out.push_back( 3 );
272  senses_out.push_back( SENSE_FORWARD );
273  senses_out.push_back( SENSE_REVERSE );
274  break;
275 
276  case 7:
277  surf_ids_out.push_back( 2 );
278  surf_ids_out.push_back( 4 );
279  senses_out.push_back( SENSE_FORWARD );
280  senses_out.push_back( SENSE_REVERSE );
281  break;
282 
283  case 8:
284  surf_ids_out.push_back( 2 );
285  surf_ids_out.push_back( 5 );
286  senses_out.push_back( SENSE_FORWARD );
287  senses_out.push_back( SENSE_REVERSE );
288  break;
289 
290  case 9:
291  surf_ids_out.push_back( 3 );
292  surf_ids_out.push_back( 4 );
293  senses_out.push_back( SENSE_FORWARD );
294  senses_out.push_back( SENSE_REVERSE );
295  break;
296 
297  case 10:
298  surf_ids_out.push_back( 3 );
299  surf_ids_out.push_back( 6 );
300  senses_out.push_back( SENSE_REVERSE );
301  senses_out.push_back( SENSE_FORWARD );
302  break;
303 
304  case 11:
305  surf_ids_out.push_back( 4 );
306  surf_ids_out.push_back( 5 );
307  senses_out.push_back( SENSE_FORWARD );
308  senses_out.push_back( SENSE_REVERSE );
309  break;
310 
311  case 12:
312  surf_ids_out.push_back( 5 );
313  surf_ids_out.push_back( 6 );
314  senses_out.push_back( SENSE_FORWARD );
315  senses_out.push_back( SENSE_REVERSE );
316  break;
317 
318  case 13:
319  surf_ids_out.push_back( 7 );
320  surf_ids_out.push_back( 8 );
321  senses_out.push_back( SENSE_REVERSE );
322  senses_out.push_back( SENSE_FORWARD );
323  break;
324 
325  case 14:
326  surf_ids_out.push_back( 7 );
327  surf_ids_out.push_back( 9 );
328  senses_out.push_back( SENSE_REVERSE );
329  senses_out.push_back( SENSE_FORWARD );
330  break;
331  default:
332  return MB_FAILURE;
333  }
334  return MB_SUCCESS;
335 }

References geom_id_by_handle(), MB_SUCCESS, SENSE_FORWARD, and SENSE_REVERSE.

Referenced by read_cylcube_curve_senses_test().

◆ load_sat_surf_sense_data()

ErrorCode load_sat_surf_sense_data ( Interface moab,
EntityHandle  surf,
std::vector< int > &  vol_ids_out,
std::vector< int > &  senses_out 
)

Definition at line 684 of file read_cgm_senses_test.cpp.

688 {
689 
690  int surf_id = geom_id_by_handle( moab, surf );
691  switch( surf_id )
692  {
693  case 1:
694  vol_ids_out.push_back( 1 );
695  senses_out.push_back( SENSE_FORWARD );
696  break;
697 
698  case 2:
699  vol_ids_out.push_back( 1 );
700  senses_out.push_back( SENSE_FORWARD );
701  break;
702 
703  case 3:
704  vol_ids_out.push_back( 1 );
705  senses_out.push_back( SENSE_FORWARD );
706  break;
707 
708  case 4:
709  vol_ids_out.push_back( 1 );
710  senses_out.push_back( SENSE_FORWARD );
711  break;
712 
713  case 5:
714  vol_ids_out.push_back( 1 );
715  senses_out.push_back( SENSE_FORWARD );
716  break;
717 
718  case 6:
719  vol_ids_out.push_back( 1 );
720  senses_out.push_back( SENSE_FORWARD );
721  break;
722 
723  case 7:
724  vol_ids_out.push_back( 2 );
725  senses_out.push_back( SENSE_FORWARD );
726  break;
727 
728  case 8:
729  vol_ids_out.push_back( 2 );
730  senses_out.push_back( SENSE_FORWARD );
731  break;
732 
733  case 9:
734  vol_ids_out.push_back( 2 );
735  senses_out.push_back( SENSE_FORWARD );
736  break;
737  default:
738  return MB_FAILURE;
739  }
740  return MB_SUCCESS;
741 }

References geom_id_by_handle(), MB_SUCCESS, and SENSE_FORWARD.

Referenced by read_cylcube_surf_senses_test().

◆ load_stp_curve_sense_data()

ErrorCode load_stp_curve_sense_data ( Interface moab,
EntityHandle  curve,
std::vector< int > &  surf_ids_out,
std::vector< int > &  senses_out 
)

Definition at line 338 of file read_cgm_senses_test.cpp.

342 {
343 
344  int curve_id = geom_id_by_handle( moab, curve );
345  switch( curve_id )
346  {
347  case 1:
348  surf_ids_out.push_back( 1 );
349  surf_ids_out.push_back( 6 );
350  senses_out.push_back( SENSE_FORWARD );
351  senses_out.push_back( SENSE_FORWARD );
352  break;
353 
354  case 2:
355  surf_ids_out.push_back( 1 );
356  surf_ids_out.push_back( 5 );
357  senses_out.push_back( SENSE_FORWARD );
358  senses_out.push_back( SENSE_FORWARD );
359  break;
360 
361  case 3:
362  surf_ids_out.push_back( 1 );
363  surf_ids_out.push_back( 4 );
364  senses_out.push_back( SENSE_FORWARD );
365  senses_out.push_back( SENSE_FORWARD );
366  break;
367 
368  case 4:
369  surf_ids_out.push_back( 1 );
370  surf_ids_out.push_back( 3 );
371  senses_out.push_back( SENSE_FORWARD );
372  senses_out.push_back( SENSE_FORWARD );
373  break;
374 
375  case 5:
376  surf_ids_out.push_back( 2 );
377  surf_ids_out.push_back( 6 );
378  senses_out.push_back( SENSE_REVERSE );
379  senses_out.push_back( SENSE_FORWARD );
380  break;
381 
382  case 6:
383  surf_ids_out.push_back( 2 );
384  surf_ids_out.push_back( 5 );
385  senses_out.push_back( SENSE_REVERSE );
386  senses_out.push_back( SENSE_FORWARD );
387  break;
388 
389  case 7:
390  surf_ids_out.push_back( 2 );
391  surf_ids_out.push_back( 4 );
392  senses_out.push_back( SENSE_REVERSE );
393  senses_out.push_back( SENSE_FORWARD );
394  break;
395 
396  case 8:
397  surf_ids_out.push_back( 2 );
398  surf_ids_out.push_back( 3 );
399  senses_out.push_back( SENSE_REVERSE );
400  senses_out.push_back( SENSE_FORWARD );
401  break;
402 
403  case 9:
404  surf_ids_out.push_back( 3 );
405  surf_ids_out.push_back( 4 );
406  senses_out.push_back( SENSE_REVERSE );
407  senses_out.push_back( SENSE_FORWARD );
408  break;
409 
410  case 10:
411  surf_ids_out.push_back( 3 );
412  surf_ids_out.push_back( 6 );
413  senses_out.push_back( SENSE_FORWARD );
414  senses_out.push_back( SENSE_REVERSE );
415  break;
416 
417  case 11:
418  surf_ids_out.push_back( 4 );
419  surf_ids_out.push_back( 5 );
420  senses_out.push_back( SENSE_REVERSE );
421  senses_out.push_back( SENSE_FORWARD );
422  break;
423 
424  case 12:
425  surf_ids_out.push_back( 5 );
426  surf_ids_out.push_back( 6 );
427  senses_out.push_back( SENSE_REVERSE );
428  senses_out.push_back( SENSE_FORWARD );
429  break;
430 
431  case 13:
432  surf_ids_out.push_back( 7 );
433  surf_ids_out.push_back( 8 );
434  senses_out.push_back( SENSE_REVERSE );
435  senses_out.push_back( SENSE_FORWARD );
436  break;
437 
438  case 14:
439  surf_ids_out.push_back( 7 );
440  surf_ids_out.push_back( 9 );
441  senses_out.push_back( SENSE_REVERSE );
442  senses_out.push_back( SENSE_FORWARD );
443  break;
444  case 15:
445  surf_ids_out.push_back( 7 );
446  surf_ids_out.push_back( 8 );
447  senses_out.push_back( SENSE_REVERSE );
448  senses_out.push_back( SENSE_FORWARD );
449  break;
450  case 16:
451  surf_ids_out.push_back( 7 );
452  surf_ids_out.push_back( 10 );
453  senses_out.push_back( SENSE_REVERSE );
454  senses_out.push_back( SENSE_FORWARD );
455  break;
456  case 17:
457  surf_ids_out.push_back( 8 );
458  surf_ids_out.push_back( 10 );
459  senses_out.push_back( SENSE_REVERSE );
460  senses_out.push_back( SENSE_FORWARD );
461  break;
462  case 18:
463  surf_ids_out.push_back( 8 );
464  surf_ids_out.push_back( 9 );
465  senses_out.push_back( SENSE_REVERSE );
466  senses_out.push_back( SENSE_FORWARD );
467  break;
468  default:
469  return MB_FAILURE;
470  }
471  return MB_SUCCESS;
472 }

References geom_id_by_handle(), MB_SUCCESS, SENSE_FORWARD, and SENSE_REVERSE.

Referenced by read_cylcube_curve_senses_test().

◆ load_stp_surf_sense_data()

ErrorCode load_stp_surf_sense_data ( Interface moab,
EntityHandle  surf,
std::vector< int > &  vol_ids_out,
std::vector< int > &  senses_out 
)

Definition at line 744 of file read_cgm_senses_test.cpp.

748 {
749 
750  int surf_id = geom_id_by_handle( moab, surf );
751  switch( surf_id )
752  {
753  case 1:
754  vol_ids_out.push_back( 1 );
755  senses_out.push_back( SENSE_FORWARD );
756  break;
757 
758  case 2:
759  vol_ids_out.push_back( 1 );
760  senses_out.push_back( SENSE_REVERSE );
761  break;
762 
763  case 3:
764  vol_ids_out.push_back( 1 );
765  senses_out.push_back( SENSE_REVERSE );
766  break;
767 
768  case 4:
769  vol_ids_out.push_back( 1 );
770  senses_out.push_back( SENSE_REVERSE );
771  break;
772 
773  case 5:
774  vol_ids_out.push_back( 1 );
775  senses_out.push_back( SENSE_REVERSE );
776  break;
777 
778  case 6:
779  vol_ids_out.push_back( 1 );
780  senses_out.push_back( SENSE_REVERSE );
781  break;
782 
783  case 7:
784  vol_ids_out.push_back( 2 );
785  senses_out.push_back( SENSE_FORWARD );
786  break;
787 
788  case 8:
789  vol_ids_out.push_back( 2 );
790  senses_out.push_back( SENSE_FORWARD );
791  break;
792 
793  case 9:
794  vol_ids_out.push_back( 2 );
795  senses_out.push_back( SENSE_FORWARD );
796  break;
797 
798  case 10:
799  vol_ids_out.push_back( 2 );
800  senses_out.push_back( SENSE_FORWARD );
801  break;
802  default:
803  std::cout << "Failure to find surface sense reference data. Returning failure..." << std::endl;
804  return MB_FAILURE;
805  }
806  return MB_SUCCESS;
807 }

References geom_id_by_handle(), MB_SUCCESS, SENSE_FORWARD, and SENSE_REVERSE.

Referenced by read_cylcube_surf_senses_test().

◆ main()

int main ( int  ,
char **   
)

Definition at line 81 of file read_cgm_senses_test.cpp.

82 {
83  int result = 0;
84 
87 
88  return result;
89 }

References read_cylcube_curve_senses_test(), read_cylcube_surf_senses_test(), and RUN_TEST.

◆ read_cylcube_curve_senses_test()

void read_cylcube_curve_senses_test ( )

Definition at line 103 of file read_cgm_senses_test.cpp.

104 {
105  ErrorCode rval;
106  // Open the test file
107  Core moab;
108  Interface* mb = &moab;
109  read_file( mb, input_cylcube.c_str() );
110 
111  // Get all curve handles
112  Tag geom_tag;
115 
116  // Check that the proper number of curves exist
117  int dim = 1;
118  void* val[] = { &dim };
119  int number_of_curves;
120  rval = mb->get_number_entities_by_type_and_tag( 0, MBENTITYSET, &geom_tag, val, 1, number_of_curves );CHECK_ERR( rval );
121  // Step format adds a surface on the barrel of the cylinder.
122  // This created 4 extra surfaces in comparison to the .sat format from Cubit.
123  //(New surface breaks the barrel of the cylinder into two half-pipes)
124 #ifdef HAVE_OCC_STEP
125  CHECK_EQUAL( 18, number_of_curves );
126 #else
127  CHECK_EQUAL( 14, number_of_curves );
128 #endif
129 
130  // Get curve handles
131  Range curves;
132  rval = mb->get_entities_by_type_and_tag( 0, MBENTITYSET, &geom_tag, val, 1, curves );CHECK_ERR( rval );
133 
134  // Establish GeomTopoTool instance needed to get curve data
135  moab::GeomTopoTool gt( mb, false );
136  // Initialize vectors for sense checking
137  std::vector< EntityHandle > surfs;
138  std::vector< int > senses;
139  std::vector< int > known_surf_ids;
140  std::vector< int > known_senses;
141 
142  for( unsigned int i = 0; i < curves.size(); i++ )
143  {
144 
145  // Clean data from previous curve
146  surfs.clear();
147  senses.clear();
148  // Get sense info for the current curve
149  rval = gt.get_senses( curves[i], surfs, senses );CHECK_ERR( rval );
150 
151  // Clear reference data from previous curve
152  known_surf_ids.clear();
153  known_senses.clear();
154  // Load known curve-sense ID data
155 #ifdef HAVE_OCC_STEP
156  if( CGM_MAJOR_VERSION >= 14 )
157  {
158  rval = load_stp_curve_sense_data( mb, curves[i], known_surf_ids, known_senses );
159  }
160  else
161  {
162  rval = load_precgm14_stp_curve_sense_data( mb, curves[i], known_surf_ids, known_senses );
163  }
164  CHECK_ERR( rval );
165 #else
166  rval = load_sat_curve_sense_data( mb, curves[i], known_surf_ids, known_senses );CHECK_ERR( rval );
167 #endif
168 
169  // Check that each surf and sense has a match in the references
170  check_sense_data( mb, surfs, senses, known_surf_ids, known_senses );
171  }
172 }

References CHECK_EQUAL, CHECK_ERR, check_sense_data(), dim, ErrorCode, GEOM_DIMENSION_TAG_NAME, geom_tag, moab::Core::get_entities_by_type_and_tag(), moab::Core::get_number_entities_by_type_and_tag(), moab::GeomTopoTool::get_senses(), input_cylcube, load_precgm14_stp_curve_sense_data(), load_sat_curve_sense_data(), load_stp_curve_sense_data(), mb, MB_TAG_CREAT, MB_TAG_DENSE, MB_TYPE_INTEGER, MBENTITYSET, read_file(), moab::Range::size(), and moab::Core::tag_get_handle().

Referenced by main().

◆ read_cylcube_surf_senses_test()

void read_cylcube_surf_senses_test ( )

Definition at line 615 of file read_cgm_senses_test.cpp.

616 {
617  ErrorCode rval;
618  // Open the test file
619  Core moab;
620  Interface* mb = &moab;
621  read_file( mb, input_cylcube.c_str() );
622 
623  // Get geometry tag for gathering surface information from the mesh
624  Tag geom_tag;
627 
628  // Check that the proper number of surfaces exist
629  int dim = 2;
630  void* val[] = { &dim };
631  int number_of_surfs;
632  rval = mb->get_number_entities_by_type_and_tag( 0, MBENTITYSET, &geom_tag, val, 1, number_of_surfs );CHECK_ERR( rval );
633  // Step format adds a surface on barrel of the cylinder.
634  // (Breaks it into two half-pipes)
635 #ifdef HAVE_OCC_STEP
636  CHECK_EQUAL( 10, number_of_surfs );
637 #else
638  CHECK_EQUAL( 9, number_of_surfs );
639 #endif
640  // Get surface handles
641  Range surfs;
642  rval = mb->get_entities_by_type_and_tag( 0, MBENTITYSET, &geom_tag, val, 1, surfs );CHECK_ERR( rval );
643 
644  // Establish GeomTopoTool instance needed to get surf data
645  moab::GeomTopoTool gt( mb, false );
646  std::vector< EntityHandle > vols;
647  std::vector< int > senses;
648  std::vector< int > known_vol_ids;
649  std::vector< int > known_senses;
650 
651  for( unsigned int i = 0; i < surfs.size(); i++ )
652  {
653  // Clean data from previous surface
654  vols.clear();
655  senses.clear();
656  // Get sense information for the current
657  // surface from the mesh
658  rval = gt.get_senses( surfs[i], vols, senses );CHECK_ERR( rval );
659  // Clear previous reverence data
660  known_vol_ids.clear();
661  known_senses.clear();
662  // Load known surface-volume data
663  // for this surface and check that it's correct
664 #ifdef HAVE_OCC_STEP
665  if( CGM_MAJOR_VERSION >= 14 )
666  {
667  rval = load_stp_surf_sense_data( mb, surfs[i], known_vol_ids, known_senses );
668  }
669  else
670  {
671  rval = load_precgm14_stp_surf_sense_data( mb, surfs[i], known_vol_ids, known_senses );
672  }
673  CHECK_ERR( rval );
674 #else
675  rval = load_sat_surf_sense_data( mb, surfs[i], known_vol_ids, known_senses );CHECK_ERR( rval );
676 #endif
677  // Check sense information from the loaded mesh against
678  // reference sense information
679  check_sense_data( mb, vols, senses, known_vol_ids, known_senses );
680  }
681 }

References CHECK_EQUAL, CHECK_ERR, check_sense_data(), dim, ErrorCode, GEOM_DIMENSION_TAG_NAME, geom_tag, moab::Core::get_entities_by_type_and_tag(), moab::Core::get_number_entities_by_type_and_tag(), moab::GeomTopoTool::get_senses(), input_cylcube, load_precgm14_stp_surf_sense_data(), load_sat_surf_sense_data(), load_stp_surf_sense_data(), mb, MB_TAG_CREAT, MB_TAG_DENSE, MB_TYPE_INTEGER, MBENTITYSET, read_file(), moab::Range::size(), and moab::Core::tag_get_handle().

Referenced by main().

◆ read_file()

void read_file ( Interface moab,
const char *  input_file 
)

Definition at line 91 of file read_cgm_senses_test.cpp.

92 {
93  InitCGMA::initialize_cgma();
94  GeometryQueryTool::instance()->delete_geometry();
95 
96  ErrorCode rval = moab->load_file( input_file );CHECK_ERR( rval );
97 }

References CHECK_ERR, ErrorCode, and input_file.

Referenced by read_cylcube_curve_senses_test(), and read_cylcube_surf_senses_test().

Variable Documentation

◆ input_cylcube

std::string input_cylcube = TestDir + "unittest/io/cylcube.sat"