MOAB: Mesh Oriented datABase
(version 5.4.1)
|
#include <iostream>
#include "moab/Interface.hpp"
#include "TestUtil.hpp"
#include "Internals.hpp"
#include "moab/Core.hpp"
#include "MBTagConventions.hpp"
#include "InitCGMA.hpp"
#include "GeometryQueryTool.hpp"
Go to the source code of this file.
Defines | |
#define | IS_BUILDING_MB |
#define | CHKERR(A) |
Functions | |
void | read_file (Interface *moab, const char *input_file) |
void | read_cube_verts_test () |
void | read_cube_curves_test () |
void | read_cube_tris_test () |
void | read_cube_surfs_test () |
void | read_cube_vols_test () |
void | read_cube_vertex_pos_test () |
int | main (int, char **) |
Variables | |
const std::string | input_cube = "unittest/io/cube.sat" |
#define CHKERR | ( | A | ) |
do \ { \ if( MB_SUCCESS != ( A ) ) \ { \ std::cerr << "Failure (error code " << ( A ) << ") at " __FILE__ ":" << __LINE__ << std::endl; \ return A; \ } \ } while( false )
Definition at line 15 of file read_cgm_basic_test.cpp.
#define IS_BUILDING_MB |
Definition at line 4 of file read_cgm_basic_test.cpp.
int main | ( | int | , |
char ** | |||
) |
Definition at line 43 of file read_cgm_basic_test.cpp.
References read_cube_curves_test(), read_cube_surfs_test(), read_cube_tris_test(), read_cube_vertex_pos_test(), read_cube_verts_test(), read_cube_vols_test(), and RUN_TEST.
{ int result = 0; result += RUN_TEST( read_cube_verts_test ); result += RUN_TEST( read_cube_curves_test ); result += RUN_TEST( read_cube_tris_test ); result += RUN_TEST( read_cube_surfs_test ); result += RUN_TEST( read_cube_vols_test ); result += RUN_TEST( read_cube_vertex_pos_test ); return result; }
void read_cube_curves_test | ( | ) |
Definition at line 101 of file read_cgm_basic_test.cpp.
References CHECK_EQUAL, CHECK_ERR, dim, ErrorCode, GEOM_DIMENSION_TAG_NAME, geom_tag, moab::Interface::get_number_entities_by_type_and_tag(), input_cube, mb, MB_TAG_CREAT, MB_TAG_DENSE, MB_TYPE_INTEGER, MBENTITYSET, read_file(), and moab::Interface::tag_get_handle().
Referenced by main().
{ ErrorCode rval; // Open the test file Core moab; Interface* mb = &moab; read_file( mb, input_cube.c_str() ); // Get the geometry tag handle from the mesh Tag geom_tag; rval = mb->tag_get_handle( GEOM_DIMENSION_TAG_NAME, 1, MB_TYPE_INTEGER, geom_tag, moab::MB_TAG_DENSE | moab::MB_TAG_CREAT );CHECK_ERR( rval ); // Get the curves from the mesh int dim = 1; void* val[] = { &dim }; int number_of_curves; rval = mb->get_number_entities_by_type_and_tag( 0, MBENTITYSET, &geom_tag, val, 1, number_of_curves );CHECK_ERR( rval ); // For a cube, there should be exactly 12 curves loaded from the file CHECK_EQUAL( 12, number_of_curves ); }
void read_cube_surfs_test | ( | ) |
Definition at line 123 of file read_cgm_basic_test.cpp.
References CHECK_EQUAL, CHECK_ERR, dim, ErrorCode, GEOM_DIMENSION_TAG_NAME, geom_tag, moab::Interface::get_number_entities_by_type_and_tag(), input_cube, mb, MB_TAG_CREAT, MB_TAG_DENSE, MB_TYPE_INTEGER, MBENTITYSET, read_file(), and moab::Interface::tag_get_handle().
Referenced by main().
{ ErrorCode rval; // Open the test file Core moab; Interface* mb = &moab; read_file( mb, input_cube.c_str() ); // Get geometry tag for pulling curve data from the mesh Tag geom_tag; rval = mb->tag_get_handle( GEOM_DIMENSION_TAG_NAME, 1, MB_TYPE_INTEGER, geom_tag, moab::MB_TAG_DENSE | moab::MB_TAG_CREAT );CHECK_ERR( rval ); // Get the number of surface from the mesh geometry data int dim = 2; void* val[] = { &dim }; int number_of_surfs; rval = mb->get_number_entities_by_type_and_tag( 0, MBENTITYSET, &geom_tag, val, 1, number_of_surfs );CHECK_ERR( rval ); // For a cube, there should be exactly 6 surfaces CHECK_EQUAL( 6, number_of_surfs ); }
void read_cube_tris_test | ( | ) |
Definition at line 83 of file read_cgm_basic_test.cpp.
References CHECK_EQUAL, CHECK_ERR, ErrorCode, moab::Interface::get_number_entities_by_type(), input_cube, mb, MBTRI, and read_file().
Referenced by main().
{ ErrorCode rval; // Open the test file Core moab; Interface* mb = &moab; read_file( mb, input_cube.c_str() ); int number_of_tris; rval = mb->get_number_entities_by_type( 0, MBTRI, number_of_tris ); std::cout << "Number of Triangles = " << number_of_tris << std::endl;CHECK_ERR( rval ); // For a cube, there should be exactly 2 triangles per face CHECK_EQUAL( 12, number_of_tris ); }
void read_cube_vertex_pos_test | ( | ) |
Definition at line 168 of file read_cgm_basic_test.cpp.
References CHECK_EQUAL, CHECK_ERR, ErrorCode, moab::Interface::get_coords(), moab::Interface::get_entities_by_type(), input_cube, mb, MBVERTEX, and read_file().
Referenced by main().
{ ErrorCode rval; // Open the test file Core moab; Interface* mb = &moab; read_file( mb, input_cube.c_str() ); // Retrieve all vertex handles from the mesh Range verts; rval = mb->get_entities_by_type( 0, MBVERTEX, verts );CHECK_ERR( rval ); int number_of_verts = verts.size(); CHECK_EQUAL( 8, number_of_verts ); // Get the vertex coordinates double x[8]; double y[8]; double z[8]; rval = mb->get_coords( verts, &x[0], &y[0], &z[0] );CHECK_ERR( rval ); // Check against known locations of the vertices std::vector< double > x_ref; std::vector< double > y_ref; std::vector< double > z_ref; // Vertex 1 x_ref.push_back( 5 ); y_ref.push_back( -5 ); z_ref.push_back( 5 ); // Vertex 2 x_ref.push_back( 5 ); y_ref.push_back( 5 ); z_ref.push_back( 5 ); // Vertex 3 x_ref.push_back( -5 ); y_ref.push_back( 5 ); z_ref.push_back( 5 ); // Vertex 4 x_ref.push_back( -5 ); y_ref.push_back( -5 ); z_ref.push_back( 5 ); // Vertex 5 x_ref.push_back( 5 ); y_ref.push_back( 5 ); z_ref.push_back( -5 ); // Vertex 6 x_ref.push_back( 5 ); y_ref.push_back( -5 ); z_ref.push_back( -5 ); // Vertex 7 x_ref.push_back( -5 ); y_ref.push_back( -5 ); z_ref.push_back( -5 ); // Vertex 8 x_ref.push_back( -5 ); y_ref.push_back( 5 ); z_ref.push_back( -5 ); std::cout << verts.size() << std::endl; std::cout << x_ref.size() << std::endl; for( unsigned int i = 0; i < verts.size(); i++ ) { for( unsigned int j = 0; j < x_ref.size(); j++ ) { if( x[i] == x_ref[j] && y[i] == y_ref[j] && z[i] == z_ref[j] ) { x_ref.erase( x_ref.begin() + j ); y_ref.erase( y_ref.begin() + j ); z_ref.erase( z_ref.begin() + j ); } } } // After looping through each vertex loaded from the mesh // there should be no entities left in the reference vector int leftovers = x_ref.size(); CHECK_EQUAL( 0, leftovers ); }
void read_cube_verts_test | ( | ) |
Definition at line 67 of file read_cgm_basic_test.cpp.
References CHECK_EQUAL, CHECK_ERR, ErrorCode, moab::Interface::get_number_entities_by_type(), input_cube, mb, MBVERTEX, and read_file().
Referenced by main().
{ ErrorCode rval; // Open the test file Core moab; Interface* mb = &moab; read_file( mb, input_cube.c_str() ); int number_of_vertices; rval = mb->get_number_entities_by_type( 0, MBVERTEX, number_of_vertices );CHECK_ERR( rval ); // For a cube there should be exactly 8 vertices CHECK_EQUAL( 8, number_of_vertices ); }
void read_cube_vols_test | ( | ) |
Definition at line 145 of file read_cgm_basic_test.cpp.
References CHECK_EQUAL, CHECK_ERR, dim, ErrorCode, GEOM_DIMENSION_TAG_NAME, geom_tag, moab::Interface::get_number_entities_by_type_and_tag(), input_cube, mb, MB_TAG_CREAT, MB_TAG_DENSE, MB_TYPE_INTEGER, MBENTITYSET, read_file(), and moab::Interface::tag_get_handle().
Referenced by main().
{ ErrorCode rval; // Open the test file Core moab; Interface* mb = &moab; read_file( mb, input_cube.c_str() ); // Get geometry tag for pulling curve data from the mesh Tag geom_tag; rval = mb->tag_get_handle( GEOM_DIMENSION_TAG_NAME, 1, MB_TYPE_INTEGER, geom_tag, moab::MB_TAG_DENSE | moab::MB_TAG_CREAT );CHECK_ERR( rval ); // Get the number of volumes from the mesh geometry data int dim = 3; void* val[] = { &dim }; int number_of_vols; rval = mb->get_number_entities_by_type_and_tag( 0, MBENTITYSET, &geom_tag, val, 1, number_of_vols );CHECK_ERR( rval ); CHECK_EQUAL( 1, number_of_vols ); }
Definition at line 57 of file read_cgm_basic_test.cpp.
{ InitCGMA::initialize_cgma(); GeometryQueryTool::instance()->delete_geometry(); ErrorCode rval = moab->load_file( input_file );CHECK_ERR( rval ); }
const std::string input_cube = "unittest/io/cube.sat" |
Definition at line 28 of file read_cgm_basic_test.cpp.
Referenced by cube_edge_adjacencies_test(), cube_tri_curve_coincidence_test(), cube_tri_vertex_test(), cube_tris_connectivity_test(), cube_verts_connectivity_test(), read_cube_curves_test(), read_cube_surfs_test(), read_cube_tris_test(), read_cube_vertex_pos_test(), read_cube_verts_test(), read_cube_vols_test(), and test_cube_curve_facet().