65 double nodex[] = { 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 };
66 double nodey[] = { 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0 };
67 double nodez[] = { 0.0, 0.0, 0.0, 1.0, -1.0, -2.0, -2.0, -2.0, -3.0 };
68 int connect[] = { 1, 2, 3, 4, 3, 2, 1, 5, 6, 7, 8, 5, 8, 7, 6, 9 };
70 const int NUM_NODES = 9;
73 MB_RMBSet node_rms( NUM_NODES, nodex, nodey, nodez, 1, 0 );
76 MB_RMBSet elem_rms1( 2, connect, 1, TSTT_REGION, TSTT_TETRAHEDRON );
77 MB_RMBSet elem_rms2( 2, &connect[8], 3, TSTT_REGION, TSTT_TETRAHEDRON );
82 int entity_type1 = node_rms.entity_type();
83 int entity_type2 = elem_rms1.entity_type();
84 if( entity_type1 != TSTT_VERTEX || entity_type2 != TSTT_REGION )
85 std::cout <<
"entity_type() function failed." << std::endl;
87 int entity_topo = elem_rms1.entity_topology();
88 if( entity_topo != TSTT_TETRAHEDRON ) std::cout <<
"entity_topology() function failed." << std::endl;
90 int num_ents1 = node_rms.num_entities();
91 int num_ents2 = elem_rms1.num_entities();
92 if( num_ents1 != NUM_NODES || num_ents2 != 2 )
93 std::cout <<
"num_entities() function failed for" << ( num_ents1 != NUM_NODES ?
"(nodes)" :
"" )
94 << ( num_ents2 != 2 ?
"(elems)" :
"" ) << std::endl;
96 int vpe = elem_rms1.vertices_per_element();
97 if( vpe != 4 ) std::cout <<
"vertices_per_element() failed." << std::endl;
113 int num_nodes = NUM_NODES;
114 double xval[NUM_NODES], yval[NUM_NODES], zval[NUM_NODES];
115 double *xvalp = &xval[0], *yvalp = &yval[0], *zvalp = &zval[0];
116 node_rms.node_x( 1, NUM_NODES, &xvalp, &num_nodes );
117 node_rms.node_y( 1, NUM_NODES, &yvalp, &num_nodes );
118 node_rms.node_z( 1, NUM_NODES, &zvalp, &num_nodes );
119 int result =
compare_coords( xval, yval, zval, nodex, nodey, nodez, NUM_NODES );
120 if( result != 0 ) std::cout <<
"node_[xyz] didn't work; result = " << result <<
"." << std::endl;
124 for( i = 1; i <= NUM_NODES; i++ )
126 nodex[i - 1] = (double)i;
127 nodey[i - 1] = (double)i;
128 nodez[i - 1] = (double)i;
130 node_rms.set_node_x( 1, NUM_NODES, nodex, NUM_NODES );
131 node_rms.set_node_y( 1, NUM_NODES, nodey, NUM_NODES );
132 node_rms.set_node_z( 1, NUM_NODES, nodez, NUM_NODES );
133 node_rms.node_x( 1, NUM_NODES, &xvalp, &num_nodes );
134 node_rms.node_y( 1, NUM_NODES, &yvalp, &num_nodes );
135 node_rms.node_z( 1, NUM_NODES, &zvalp, &num_nodes );
136 result =
compare_coords( xval, yval, zval, nodex, nodey, nodez, NUM_NODES );
137 if( result != 0 ) std::cout <<
"node_[xyz] didn't work; result = " << result <<
"." << std::endl;
141 int* connect2 = NULL;
142 int size_connect2 = 0;
143 bool status = elem_rms1.elem_connectivity( 1, 2, &connect2, &size_connect2 );
144 if( status !=
true ) std::cout <<
"elem_connectivity() RETURN VALUE failed." << std::endl;
145 if( 8 != size_connect2 ) std::cout <<
"re-sizing of connect2 vector failed." << std::endl;
148 if( result != 0 ) std::cout <<
"elem_connectivity() VALUES failed." << std::endl;
152 for( i = 1; i <= 8; i++ )
153 connect2[i - 1] = connect[8 - i];
154 elem_rms1.set_elem_connectivity( 1, 2, connect2, size_connect2 );
155 status = elem_rms1.elem_connectivity( 1, 2, &connect2, &size_connect2 );
156 if( status !=
true ) std::cout <<
"set_elem_connectivity() RETURN VALUE failed." << std::endl;
159 if( result != 0 ) std::cout <<
"elem_connectivity() VALUES failed." << std::endl;
163 MB_RMBSet *new_rms1, *new_rms2, *new_rms3;
164 new_rms1 = MB_RMBSet::find_rmeshset( TSTT_VERTEX, TSTT_LAST_TOPOLOGY,
reinterpret_cast< const void*
>( 2 ) );
165 new_rms2 = MB_RMBSet::find_rmeshset( TSTT_REGION, TSTT_TETRAHEDRON,
reinterpret_cast< const void*
>( 2 ) );
166 new_rms3 = MB_RMBSet::find_rmeshset( TSTT_REGION, TSTT_TETRAHEDRON,
reinterpret_cast< const void*
>( 4 ) );
167 if( new_rms1 != &node_rms || new_rms2 != &elem_rms1 || new_rms3 != &elem_rms2 )
168 std::cout <<
"find_rmeshset() function failed." << std::endl;
171 new_rms1 = MB_RMBSet::find_rmeshset( TSTT_VERTEX, TSTT_LAST_TOPOLOGY,
reinterpret_cast< const void*
>( 10 ) );
172 new_rms2 = MB_RMBSet::find_rmeshset( TSTT_REGION, TSTT_TETRAHEDRON,
reinterpret_cast< const void*
>( 0 ) );
173 new_rms3 = MB_RMBSet::find_rmeshset( TSTT_REGION, TSTT_TETRAHEDRON,
reinterpret_cast< const void*
>( 5 ) );
174 if( NULL != new_rms1 || NULL != new_rms2 || NULL != new_rms3 )
175 std::cout <<
"find_rmeshset() for NULL RETURN failed." << std::endl;
178 bool result1, result2, result3;
179 result1 = node_rms.is_in_rmeshset(
reinterpret_cast< const void*
>( 6 ) );
180 result2 = elem_rms1.is_in_rmeshset(
reinterpret_cast< const void*
>( 2 ) );
181 result3 = elem_rms2.is_in_rmeshset(
reinterpret_cast< const void*
>( 4 ) );
182 if(
false == result1 ||
false == result2 ||
false == result3 ) std::cout <<
"is_in_rmeshset() failed." << std::endl;
185 result1 = node_rms.is_in_rmeshset(
reinterpret_cast< const void*
>( 10 ) );
186 result2 = elem_rms1.is_in_rmeshset(
reinterpret_cast< const void*
>( 4 ) );
187 result3 = elem_rms2.is_in_rmeshset(
reinterpret_cast< const void*
>( 2 ) );
188 if(
true == result1 ||
true == result2 ||
true == result3 )
189 std::cout <<
"is_in_rmeshset() for NULL RETURN failed." << std::endl;