[MOAB-dev] commit/MOAB: 2 new changesets
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Fri Sep 27 09:09:36 CDT 2013
2 new commits in MOAB:
https://bitbucket.org/fathomteam/moab/commits/0a0f88146942/
Changeset: 0a0f88146942
Branch: None
User: iulian07
Date: 2013-09-27 15:59:44
Summary: MeshTopoUtil fix for polygons
mesh topo utils bridge adjacencies were not working for polygons
never saw it, because we never used ghosting for MPAS meshes.
Trivial partition is bad, ghosting will replicate everything
mbpart will be provided with correct adjacencies
Affected #: 1 file
diff --git a/src/MeshTopoUtil.cpp b/src/MeshTopoUtil.cpp
index cef11e3..711cbf5 100644
--- a/src/MeshTopoUtil.cpp
+++ b/src/MeshTopoUtil.cpp
@@ -468,24 +468,40 @@ ErrorCode MeshTopoUtil::get_bridge_adjacencies(const EntityHandle from_entity,
if (bridge_dim < from_dim) {
// looping over each sub-entity of dimension bridge_dim...
- EntityHandle bridge_verts[MAX_SUB_ENTITIES];
- int bridge_indices[MAX_SUB_ENTITIES];
- for (int i = 0; i < CN::NumSubEntities(from_type, bridge_dim); i++) {
-
- // get the vertices making up this sub-entity
- int num_bridge_verts = CN::VerticesPerEntity( CN::SubEntityType( from_type, bridge_dim, i ) );
- CN::SubEntityVertexIndices( from_type, bridge_dim, i, bridge_indices );
- for (int j = 0; j < num_bridge_verts; ++j)
- bridge_verts[j]= connect[bridge_indices[j]];
- //CN::SubEntityConn(connect, from_type, bridge_dim, i, &bridge_verts[0], num_bridge_verts);
-
- // get the to_dim entities adjacent
- to_ents.clear();
- ErrorCode tmp_result = mbImpl->get_adjacencies(bridge_verts, num_bridge_verts,
- to_dim, false, to_ents, Interface::INTERSECT);
- if (MB_SUCCESS != tmp_result) result = tmp_result;
-
- to_adjs.merge(to_ents);
+ if (MBPOLYGON == from_type)
+ {
+ for (int i=0; i<num_connect; i++)
+ {
+ // loop over edges, and get the vertices
+ EntityHandle verts_on_edge[2]={connect[i], connect[(i+1)%num_connect]};
+ to_ents.clear();
+ ErrorCode tmp_result = mbImpl->get_adjacencies(verts_on_edge, 2,
+ to_dim, false, to_ents, Interface::INTERSECT);
+ if (MB_SUCCESS != tmp_result) result = tmp_result;
+ to_adjs.merge(to_ents);
+ }
+ }
+ else
+ {
+ EntityHandle bridge_verts[MAX_SUB_ENTITIES];
+ int bridge_indices[MAX_SUB_ENTITIES];
+ for (int i = 0; i < CN::NumSubEntities(from_type, bridge_dim); i++) {
+
+ // get the vertices making up this sub-entity
+ int num_bridge_verts = CN::VerticesPerEntity( CN::SubEntityType( from_type, bridge_dim, i ) );
+ CN::SubEntityVertexIndices( from_type, bridge_dim, i, bridge_indices );
+ for (int j = 0; j < num_bridge_verts; ++j)
+ bridge_verts[j]= connect[bridge_indices[j]];
+ //CN::SubEntityConn(connect, from_type, bridge_dim, i, &bridge_verts[0], num_bridge_verts);
+
+ // get the to_dim entities adjacent
+ to_ents.clear();
+ ErrorCode tmp_result = mbImpl->get_adjacencies(bridge_verts, num_bridge_verts,
+ to_dim, false, to_ents, Interface::INTERSECT);
+ if (MB_SUCCESS != tmp_result) result = tmp_result;
+
+ to_adjs.merge(to_ents);
+ }
}
}
https://bitbucket.org/fathomteam/moab/commits/a453de63bf48/
Changeset: a453de63bf48
Branch: master
User: iulian07
Date: 2013-09-27 16:02:54
Summary: Merge branch 'master' of https://bitbucket.org/fathomteam/moab
Affected #: 1 file
diff --git a/itaps/imesh/testc_cbind.cpp b/itaps/imesh/testc_cbind.cpp
index 9520768..fdf49a0 100755
--- a/itaps/imesh/testc_cbind.cpp
+++ b/itaps/imesh/testc_cbind.cpp
@@ -62,7 +62,7 @@
#include "iMesh_extensions.h"
#include "moab/Types.hpp"
using namespace moab;
-extern enum iBase_ErrorType iBase_ERROR_MAP[MB_FAILURE+1];
+extern enum iBase_ErrorType iBase_ERROR_MAP[MB_FAILURE + 1];
#define FALSE 0
@@ -78,17 +78,22 @@ extern enum iBase_ErrorType iBase_ERROR_MAP[MB_FAILURE+1];
# define DEFAULT_INPUT_FILE STRINGIFY(DEFAULT_TEST_FILE)
#endif
+static bool assert_pass;
+#define ASSERT(COND) \
+ assert_pass = true; \
+ if (!(COND)) { \
+ PRINT_ASSERT_FAILURE(#COND, __FILE__, __LINE__); \
+ assert_pass = false; \
+ }
-#define ASSERT(A) if (!(A)) return ASSERT_( #A, __FILE__, __LINE__ )
-int ASSERT_( const char* cond, const char* file, int line )
+void PRINT_ASSERT_FAILURE(const char* cond, const char* file, int line)
{
printf("Condition: %s\n", cond );
printf(" failed at %s line %d\n", file, line );
- return FALSE;
}
-#define CHK(err) if (err != iBase_SUCCESS) \
- do {printf("%s:%d ITAPS error %d\n",__FILE__,__LINE__,err); return 0;} while (0)
+#define CHK(err) if (err != iBase_SUCCESS) \
+ do {printf("%s:%d ITAPS error %d\n", __FILE__, __LINE__, err); return 0;} while (0)
static iBase_EntitySetHandle root_set;
@@ -175,17 +180,22 @@ int topology_dimension_test(iMesh_Instance mesh)
&dimensions, &dimensions_alloc, &dimensions_size, &result);
if (iBase_SUCCESS != result) {
printf("Failed to get dimensions of faces in topology_test.\n");
+ free(faces);
return FALSE;
}
if (dimensions_size != faces_size) {
printf("Didn't get the right number of types in topology_test.\n");
+ free(faces);
+ free(dimensions);
return FALSE;
}
/* make sure all elements are 2D */
for (i = 0; i < faces_size; i++) {
if (dimensions[i] != iBase_FACE) {
+ free(faces);
+ free(dimensions);
return FALSE;
}
}
@@ -253,6 +263,8 @@ int topology_adjacency_test(iMesh_Instance mesh)
if (topologies_size != entities_size) {
printf("Didn't get the right number of topologies "
"in topology_adjacency_test.\n");
+ free(topologies);
+ free(entities);
return FALSE;
}
@@ -282,11 +294,15 @@ int topology_adjacency_test(iMesh_Instance mesh)
iMesh_getNumOfTopo(mesh, root_set, top_j, &num_tops, &result);
if (iBase_SUCCESS != result) {
printf("Failed to get number of topologies in adjacencies_test.\n");
+ for (i = 0; i < iMesh_ALL_TOPOLOGIES; i++)
+ free(entity_vectors[i]);
return FALSE;
}
if (entity_vectors_sizes[top_j] != num_tops) {
printf("Topology count mismatch.\n");
+ for (i = 0; i < iMesh_ALL_TOPOLOGIES; i++)
+ free(entity_vectors[i]);
return FALSE;
}
}
@@ -313,12 +329,18 @@ int topology_adjacency_test(iMesh_Instance mesh)
&face_offsets_size, &result);
if (iBase_SUCCESS != result) {
printf("Failed to get adjacent faces of regions in adjacencies_test.\n");
+ for (i = 0; i < iMesh_ALL_TOPOLOGIES; i++)
+ free(entity_vectors[i]);
return FALSE;
}
- if (num_region+1 != face_offsets_size) {
+ if (num_region + 1 != face_offsets_size) {
printf("Number of offsets didn't agree with number of "
"regions in topology_adjacency_test.\n");
+ free(face_offsets);
+ free(adj_faces);
+ for (i = 0; i < iMesh_ALL_TOPOLOGIES; i++)
+ free(entity_vectors[i]);
return FALSE;
}
@@ -326,23 +348,23 @@ int topology_adjacency_test(iMesh_Instance mesh)
/* check # of faces really loaded */
if (region_type == iMesh_TETRAHEDRON) {
- if (adj_faces_size == 4*num_region)
+ if (adj_faces_size == 4 * num_region)
face_loaded = TRUE;
}
else if (region_type == iMesh_HEXAHEDRON) {
- if (adj_faces_size == 6*num_region)
+ if (adj_faces_size == 6 * num_region)
face_loaded = TRUE;
}
else if (region_type == iMesh_PRISM) {
- if (adj_faces_size == 5*num_region)
+ if (adj_faces_size == 5 * num_region)
face_loaded = TRUE;
}
else if (region_type == iMesh_PYRAMID) {
- if (adj_faces_size == 5*num_region)
+ if (adj_faces_size == 5 * num_region)
face_loaded = TRUE;
}
else if (region_type == iMesh_SEPTAHEDRON) {
- if (adj_faces_size == 7*num_region)
+ if (adj_faces_size == 7 * num_region)
face_loaded = TRUE;
}
else
@@ -360,23 +382,34 @@ int topology_adjacency_test(iMesh_Instance mesh)
®ion_offsets_size, &result);
if (iBase_SUCCESS != result) {
printf("Failed to get regions from faces in adjacencies_test.\n");
+ free(face_offsets);
+ free(adj_faces);
+ for (i = 0; i < iMesh_ALL_TOPOLOGIES; i++)
+ free(entity_vectors[i]);
return FALSE;
}
- if (adj_faces_size+1 != region_offsets_size) {
+ if (adj_faces_size + 1 != region_offsets_size) {
printf("Number of offsets didn't agree with number of faces in topology_adjacency_test.\n");
+ free(face_offsets);
+ free(region_offsets);
+ free(adj_faces);
+ free(adj_regions);
+ for (i = 0; i < iMesh_ALL_TOPOLOGIES; i++)
+ free(entity_vectors[i]);
return FALSE;
}
interior = (iBase_EntityHandle*)malloc(adj_faces_size*sizeof(iBase_EntityHandle)),
exterior = (iBase_EntityHandle*)malloc(adj_faces_size*sizeof(iBase_EntityHandle));
- num_int = 0; num_ext = 0;
-
+ num_int = 0;
+ num_ext = 0;
+
/* find the interior faces having two adjacent regions */
for (i = 0; i < adj_faces_size; i++) {
next_offset = 0;
if (i == adj_faces_size-1) next_offset = adj_regions_size;
- else next_offset = region_offsets[i+1];
+ else next_offset = region_offsets[i + 1];
if (next_offset - region_offsets[i] == 2) {
found = FALSE;
@@ -386,7 +419,8 @@ int topology_adjacency_test(iMesh_Instance mesh)
break;
}
}
- if (!found) interior[num_int++] = adj_faces[i];
+ if (!found)
+ interior[num_int++] = adj_faces[i];
}
}
@@ -400,7 +434,8 @@ int topology_adjacency_test(iMesh_Instance mesh)
break;
}
}
- if (!found) exterior[num_ext++] = adj_faces[i];
+ if (!found)
+ exterior[num_ext++] = adj_faces[i];
}
num_faces_per_region = face_offsets[1] - face_offsets[0];
@@ -408,13 +443,22 @@ int topology_adjacency_test(iMesh_Instance mesh)
/* check # of exterior and interior faces */
/* should be #exterior_faces + 2 * #interior_faces = #faces_per_region */
/* * #regions */
- if (face_loaded)
- if (num_ext+2*num_int !=
+ if (face_loaded) {
+ if (num_ext + 2*num_int !=
num_faces_per_region*num_region) {
printf("exterior/interior failure: %d ext, %d int, %d regions, %d faces per\n",
num_ext, num_int, num_region, num_faces_per_region);
+ free(face_offsets);
+ free(region_offsets);
+ free(adj_faces);
+ free(adj_regions);
+ free(interior);
+ free(exterior);
+ for (i = 0; i < iMesh_ALL_TOPOLOGIES; i++)
+ free(entity_vectors[i]);
return FALSE;
- }
+ }
+ }
free(face_offsets);
free(region_offsets);
@@ -456,8 +500,8 @@ int entity_connectivity_test(iMesh_Instance mesh)
for (type = iBase_EDGE; type < iBase_ALL_TYPES; type++) {
entities = NULL; entities_alloc = 0;
adj_ents = NULL; adj_ents_alloc = 0;
- offsets = NULL; offsets_alloc = 0;
indices = NULL; indices_alloc = 0;
+ offsets = NULL; offsets_alloc = 0;
iMesh_getAdjEntIndices( mesh, root_set,
type, iMesh_ALL_TOPOLOGIES, iBase_VERTEX,
&entities, &entities_alloc, &entities_size,
@@ -472,34 +516,71 @@ int entity_connectivity_test(iMesh_Instance mesh)
if (entities_alloc != entities_size) {
printf("Number of entities didn't agree with array size in connectivity_test.\n");
+ free(entities);
+ free(adj_ents);
+ free(indices);
+ free(offsets);
return FALSE;
}
if (offsets_alloc != offsets_size) {
printf("Number of offsets didn't agree with array size in connectivity_test.\n");
+ free(entities);
+ free(adj_ents);
+ free(indices);
+ free(offsets);
return FALSE;
}
if (indices_alloc != indices_size) {
printf("Number of indices didn't agree with array size in connectivity_test.\n");
+ free(entities);
+ free(adj_ents);
+ free(indices);
+ free(offsets);
return FALSE;
}
if (adj_ents_alloc != adj_ents_size) {
printf("Number of adjacent entities didn't agree with array size in connectivity_test.\n");
+ free(entities);
+ free(adj_ents);
+ free(indices);
+ free(offsets);
return FALSE;
}
- if (offsets_size != entities_size+1) {
+ if (offsets_size != entities_size + 1) {
printf("Invalid/inconsistent offset size from iMesh_getAdjEntIndices.\n");
+ free(entities);
+ free(adj_ents);
+ free(indices);
+ free(offsets);
return FALSE;
}
-
+
/* check that results are valid */
- for (i = 0; i < entities_size; ++i)
- ASSERT( offsets[i] < offsets[i+1] && offsets[i] < indices_size );
- for (i = 0; i < indices_size; ++i)
+ for (i = 0; i < entities_size; ++i) {
+ ASSERT( offsets[i] < offsets[i + 1] && offsets[i] < indices_size );
+ if (!assert_pass) {
+ free(entities);
+ free(adj_ents);
+ free(indices);
+ free(offsets);
+ return FALSE;
+ }
+ }
+
+ for (i = 0; i < indices_size; ++i) {
ASSERT( indices[i] >= 0 && indices[i] < adj_ents_size );
+ if (!assert_pass) {
+ free(entities);
+ free(adj_ents);
+ free(indices);
+ free(offsets);
+ return FALSE;
+ }
+ }
/* compare initial entity list against result of iMesh_getEntities */
entities2 = NULL; entities2_alloc = 0;
@@ -508,41 +589,92 @@ int entity_connectivity_test(iMesh_Instance mesh)
&entities2, &entities2_alloc, &entities2_size,
&result );
ASSERT( iBase_SUCCESS == result );
+ if (!assert_pass) {
+ free(entities);
+ free(adj_ents);
+ free(indices);
+ free(offsets);
+ return FALSE;
+ }
size = sizeof(iBase_EntityHandle)*entities_size;
sorted = (iBase_EntityHandle*)malloc(size);
memcpy( sorted, entities, size );
qsort( sorted, entities_size, sizeof(iBase_EntityHandle), &qsort_comp_handles );
qsort( entities2, entities2_size, sizeof(iBase_EntityHandle), &qsort_comp_handles );
- ASSERT( entities_size == entities2_size && !memcmp(sorted, entities2, size) );
+
+ ASSERT( entities_size == entities2_size && !memcmp(sorted, entities2, size) );
+ if (!assert_pass) {
+ free(entities);
+ free(adj_ents);
+ free(indices);
+ free(offsets);
+ free(entities2);
+ free(sorted);
+ return FALSE;
+ }
+
free(entities2);
free(sorted);
-
+
/* compare results against output of iMesh_getEntAdj */
for (i = 0; i < entities_size; ++i) {
iMesh_getEntAdj( mesh, entities[i], iBase_VERTEX,
&adj_ents2_ptr, &adj_ents2_alloc, &adj_ents2_size,
&result );
ASSERT( iBase_SUCCESS == result );
+ if (!assert_pass) {
+ free(entities);
+ free(adj_ents);
+ free(indices);
+ free(offsets);
+ return FALSE;
+ }
+
ASSERT( adj_ents2_ptr == adj_ents2 ); /* shouldn't change */
+ if (!assert_pass) {
+ free(entities);
+ free(adj_ents);
+ free(indices);
+ free(offsets);
+ return FALSE;
+ }
+
ASSERT( adj_ents2_alloc == 27 ); /* shouldn't change */
- /* compare results */
- size = offsets[i+1]-offsets[i];
+ if (!assert_pass) {
+ free(entities);
+ free(adj_ents);
+ free(indices);
+ free(offsets);
+ return FALSE;
+ }
+
+ /* compare results */
+ size = offsets[i + 1] - offsets[i];
ASSERT( size == adj_ents2_size );
- while (--size >= 0)
- ASSERT( adj_ents2[size] == adj_ents[indices[offsets[i]+size]] );
+ while (--size >= 0) {
+ ASSERT( adj_ents2[size] == adj_ents[indices[offsets[i] + size]] );
+ if (!assert_pass) {
+ free(entities);
+ free(adj_ents);
+ free(indices);
+ free(offsets);
+ return FALSE;
+ }
+ }
}
-
+
free(entities);
free(adj_ents);
free(indices);
free(offsets);
+/*
offsets = NULL;
offsets_alloc = 0;
entities = NULL;
entities_alloc = 0;
-/*
+
iMesh_getAdjEntities(mesh, root_set, type,
iMesh_ALL_TOPOLOGIES, iBase_VERTEX,
&entities, &entities_alloc, &entities_size,
@@ -611,10 +743,6 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iBase_EntityHandle *hexes = NULL;
int hexes_alloc = 0, hexes_size;
iBase_EntitySetHandle hex_set;
- iBase_EntityHandle *adj_faces1 = NULL;
- /* int adj_faces1_alloc = 0, adj_faces1_size; */
- int *face_offsets1 = NULL;
- /* int face_offsets1_alloc = 0, face_offsets1_size; */
/* get the number of whole mesh */
int n_whole_mesh = 0;
@@ -647,6 +775,7 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
if (entities_alloc != entities_size) {
printf("Number of entities didn't agree with array size in entity_sets_subtest.\n");
+ free(entities);
return FALSE;
}
@@ -655,16 +784,18 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_addEntArrToSet(mesh, entities, entities_size, es_array[ent_type], &result);
if (iBase_SUCCESS != result) {
printf("Failed to add entities in entity_sets_test.\n");
+ free(entities);
return FALSE;
}
}
/* Check to make sure entity set really has correct number of entities in it */
iMesh_getNumOfType(mesh, es_array[ent_type], ent_type,
- number_array+ent_type, &result);
+ number_array + ent_type, &result);
if (iBase_SUCCESS != result) {
printf("Failed to get number of entities by type in entity_sets_test.\n");
+ free(entities);
return FALSE;
}
@@ -672,6 +803,7 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
if (number_array[ent_type] != entities_size)
{
printf("Number of entities by type is not correct\n");
+ free(entities);
return FALSE;
}
@@ -681,7 +813,8 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
free(entities);
}
- if (!check_esets(mesh, n_whole_mesh + num_type)) return FALSE;
+ if (!check_esets(mesh, n_whole_mesh + num_type))
+ return FALSE;
/* make a super set having all entitysets */
super_set = NULL;
@@ -710,14 +843,15 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
return FALSE;
}
- if (!check_esets(mesh, n_whole_mesh + num_type + 2)) return FALSE;
+ if (!check_esets(mesh, n_whole_mesh + num_type + 2)) {
+ return FALSE;
+ }
/* Subtract */
/* add all EDGEs and FACEs to temp_es1 */
/* get all EDGE entities */
- edges = NULL; faces = NULL; temp_entities1 = NULL; temp_entities2 = NULL;
- edges_alloc = 0; faces_alloc = 0; temp_entities1_alloc = 0; temp_entities2_alloc = 0;
-
+ edges = NULL;
+ edges_alloc = 0;
iMesh_getEntities(mesh, es_array[iBase_EDGE], iBase_EDGE,
iMesh_ALL_TOPOLOGIES,
&edges, &edges_alloc, &edges_size, &result);
@@ -731,15 +865,19 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_addEntArrToSet(mesh, edges, edges_size, temp_es1, &result);
if (iBase_SUCCESS != result) {
printf("Failed to add edge entities in entity_sets_test.\n");
+ free(edges);
return FALSE;
}
/* get all FACE entities */
+ faces = NULL;
+ faces_alloc = 0;
iMesh_getEntities(mesh, es_array[iBase_FACE], iBase_FACE,
iMesh_ALL_TOPOLOGIES,
&faces, &faces_alloc, &faces_size, &result);
if (iBase_SUCCESS != result) {
printf("Failed to get face entities in entity_sets_test.\n");
+ free(edges);
return FALSE;
}
@@ -747,6 +885,8 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_addEntArrToSet(mesh, faces, faces_size, temp_es1, &result);
if (iBase_SUCCESS != result) {
printf("Failed to add face entities in entity_sets_test.\n");
+ free(edges);
+ free(faces);
return FALSE;
}
@@ -755,35 +895,50 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_subtract(mesh, temp_es1, es_array[iBase_EDGE], &temp_es2, &result);
if (iBase_SUCCESS != result) {
printf("Failed to subtract entitysets in entity_sets_test.\n");
+ free(edges);
+ free(faces);
return FALSE;
}
+ temp_entities1 = NULL;
+ temp_entities1_alloc = 0;
iMesh_getEntities(mesh, temp_es2, iBase_FACE, iMesh_ALL_TOPOLOGIES,
&temp_entities1, &temp_entities1_alloc, &temp_entities1_size, &result);
if (iBase_SUCCESS != result) {
printf("Failed to get face entities in entity_sets_test.\n");
+ free(edges);
+ free(faces);
return FALSE;
}
if (faces_size != temp_entities1_size) {
printf("not match number of entitysets after subtraction "
"in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
return FALSE;
}
/* check there's nothing but faces in face_es */
types = NULL;
types_alloc = 0;
-
iMesh_getEntArrType(mesh, temp_entities1, temp_entities1_size,
&types, &types_alloc, &types_size, &result);
if (iBase_SUCCESS != result) {
printf("Failed to get types of entities in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
return FALSE;
}
for (i = 0; i < types_size; i++) {
if (types[i] != iBase_FACE) {
printf("wrong entity type for face test in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(types);
return FALSE;
}
}
@@ -791,17 +946,31 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_destroyEntSet(mesh, temp_es2, &result);
if (iBase_SUCCESS != result) {
printf("Failed to destroy temp es2.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(types);
return FALSE;
}
- if (!check_esets(mesh, n_whole_mesh + num_type + 2)) return FALSE;
-
+ if (!check_esets(mesh, n_whole_mesh + num_type + 2)) {
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(types);
+ return FALSE;
+ }
+
/*------------Intersect------------ */
/* clean out the temp_ms1 */
iMesh_rmvEntArrFromSet(mesh, faces, faces_size, temp_es1, &result);
if (iBase_SUCCESS != result) {
printf("Failed to remove face entities in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(types);
return FALSE;
}
@@ -809,11 +978,19 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_getNumOfType(mesh, temp_es1, iBase_FACE, &num_rest, &result);
if (iBase_SUCCESS != result) {
printf("Failed to get number of entities by type in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(types);
return FALSE;
}
if (num_rest != 0) {
printf("failed to remove correctly.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(types);
return FALSE;
}
@@ -821,6 +998,10 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_addEntArrToSet(mesh, edges, edges_size, temp_es1, &result);
if (iBase_SUCCESS != result) {
printf("Failed to add edge entities in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(types);
return FALSE;
}
@@ -828,6 +1009,10 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_addEntArrToSet(mesh, faces, faces_size, temp_es1, &result);
if (iBase_SUCCESS != result) {
printf("Failed to add edge entities in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(types);
return FALSE;
}
@@ -836,48 +1021,84 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_intersect(mesh, temp_es1, es_array[iBase_EDGE], &temp_es2, &result);
if (iBase_SUCCESS != result) {
printf("Failed to intersect in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(types);
return FALSE;
}
+ temp_entities2 = NULL;
+ temp_entities2_alloc = 0;
iMesh_getEntities(mesh, temp_es2, iBase_FACE, iMesh_ALL_TOPOLOGIES,
&temp_entities2, &temp_entities2_alloc,
&temp_entities2_size, &result);
if (iBase_SUCCESS != result) {
printf("Failed to get face entities in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(types);
return FALSE;
}
if (temp_entities2_size != 0) {
printf("wrong number of faces.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
return FALSE;
}
iMesh_destroyEntSet(mesh, temp_es2, &result);
if (iBase_SUCCESS != result) {
printf("Failed to destroy temp es2.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
return FALSE;
}
- if (!check_esets(mesh, n_whole_mesh + num_type + 2)) return FALSE;
+ if (!check_esets(mesh, n_whole_mesh + num_type + 2)) {
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ return FALSE;
+ }
/*-------------Unite-------------- */
- /* get all regions */
- regions = NULL;
- regions_alloc = 0;
-
iMesh_createEntSet(mesh, is_list, &temp_es2, &result);
if (iBase_SUCCESS != result) {
printf("Failed to create a temp entityset in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
return FALSE;
}
+ /* get all regions */
+ regions = NULL;
+ regions_alloc = 0;
iMesh_getEntities(mesh, es_array[iBase_REGION],
iBase_REGION,
iMesh_ALL_TOPOLOGIES,
®ions, ®ions_alloc, ®ions_size, &result);
if (iBase_SUCCESS != result) {
printf("Failed to get region entities in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
return FALSE;
}
@@ -885,6 +1106,12 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_addEntArrToSet(mesh, regions, regions_size, temp_es2, &result);
if (iBase_SUCCESS != result) {
printf("Failed to add region entities in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
return FALSE;
}
@@ -892,6 +1119,12 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_unite(mesh, temp_es1, temp_es2, &temp_es3, &result);
if (iBase_SUCCESS != result) {
printf("Failed to unite in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
return FALSE;
}
@@ -899,15 +1132,35 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_getNumOfType(mesh, temp_es3, iBase_REGION, &num_regions, &result);
if (iBase_SUCCESS != result) {
printf("Failed to get number of region entities by type in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
return FALSE;
}
if (num_regions != number_array[iBase_REGION]) {
printf("different number of regions in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
return FALSE;
}
- if (!check_esets(mesh, n_whole_mesh + num_type + 4)) return FALSE;
+ if (!check_esets(mesh, n_whole_mesh + num_type + 4)) {
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ return FALSE;
+ }
/*--------Test parent/child stuff in entiysets----------- */
@@ -915,12 +1168,24 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_createEntSet(mesh, is_list, &parent_child, &result);
if (iBase_SUCCESS != result) {
printf("Problem creating entityset in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
return FALSE;
}
iMesh_addPrntChld(mesh, es_array[iBase_VERTEX], parent_child, &result);
if (iBase_SUCCESS != result) {
printf("Problem add parent in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
return FALSE;
}
@@ -931,11 +1196,24 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
&parents, &parents_alloc, &parents_size, &result);
if (iBase_SUCCESS != result) {
printf("Problem getting parents in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
return FALSE;
}
if (parents_size != 1) {
printf("number of parents is not correct in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
return FALSE;
}
@@ -943,11 +1221,25 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_getNumChld(mesh, es_array[iBase_VERTEX], 0, &temp_numb, &result);
if (iBase_SUCCESS != result) {
printf("Problem getting number of children in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
return FALSE;
}
if (temp_numb != 1) {
printf("number of children is not correct in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
return FALSE;
}
@@ -956,10 +1248,24 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_isChildOf(mesh, es_array[iBase_VERTEX], parent_child, &is_child, &result);
if (iBase_SUCCESS != result) {
printf("Problem checking relation in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
return FALSE;
}
if (!is_child) {
printf("parent_child and es_array[iBase_VERTEX] should be related\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
return FALSE;
}
@@ -968,14 +1274,37 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_isChildOf(mesh, es_array[iBase_FACE], es_array[iBase_REGION], &is_child, &result);
if (iBase_SUCCESS != result) {
printf("Problem checking relation in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
return FALSE;
}
if (is_child) {
printf("es_array[iBase_REGION] and es_array[iBase_FACE] should not be related\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
return FALSE;
}
- if (!check_esets(mesh, n_whole_mesh + num_type + 5)) return FALSE;
+ if (!check_esets(mesh, n_whole_mesh + num_type + 5)) {
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
+ return FALSE;
+ }
/*--------test modify and query functions----------------------------- */
@@ -986,6 +1315,13 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
&es_array1, &es_array1_alloc, &es_array1_size, &result);
if (iBase_SUCCESS != result) {
printf("Problem to get entity sets in super set.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
return FALSE;
}
@@ -993,6 +1329,14 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_getNumEntSets(mesh, super_set, 0, &num_super, &result);
if (iBase_SUCCESS != result) {
printf("Problem to get the number of all entity sets in super set.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
+ free(es_array1);
return FALSE;
}
@@ -1010,6 +1354,14 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
&all_entities, &all_entities_alloc, &all_entities_size, &result);
if (iBase_SUCCESS != result) {
printf("Problem to get all entities in super set.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
+ free(es_array1);
return FALSE;
}
@@ -1032,6 +1384,15 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_addEntSet(mesh, es_array1[l], es_k, &result);
if (iBase_SUCCESS != result) {
printf("Problem to add entity set to entityset.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
+ free(es_array1);
+ free(all_entities);
return FALSE;
}
}
@@ -1040,6 +1401,15 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_addEntSet(mesh, super_set, es_k, &result);
if (iBase_SUCCESS != result) {
printf("Problem to add super set to entitysets.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
+ free(es_array1);
+ free(all_entities);
return FALSE;
}
@@ -1048,6 +1418,15 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_addEntSet(mesh, temp_es1, es_k, &result);
if (iBase_SUCCESS != result) {
printf("Problem to add temp set to entitysets.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
+ free(es_array1);
+ free(all_entities);
return FALSE;
}
}
@@ -1061,6 +1440,15 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
iMesh_HEXAHEDRON, &hexes, &hexes_alloc, &hexes_size, &result);
if (iBase_SUCCESS != result) {
printf("Failed to get hexes in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
+ free(es_array1);
+ free(all_entities);
return FALSE;
}
@@ -1076,62 +1464,68 @@ int entity_sets_subtest(iMesh_Instance mesh, int is_list,
&result);
if (iBase_SUCCESS != result) {
printf("Problem to get adjacent entities in entitysets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
+ free(es_array1);
+ free(all_entities);
+ free(hexes);
return FALSE;
}
-
iMesh_createEntSet(mesh, FALSE, &hex_set, &result);
if (iBase_SUCCESS != result) {
printf("Problem creating entityset in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
+ free(es_array1);
+ free(all_entities);
+ free(hexes);
+ free(adj_faces);
+ free(face_offsets);
return FALSE;
}
iMesh_addEntArrToSet(mesh, hexes, hexes_size, hex_set, &result);
if (iBase_SUCCESS != result) {
printf("Failed to add hexes in entity_sets_test.\n");
+ free(edges);
+ free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
+ free(types);
+ free(regions);
+ free(parents);
+ free(es_array1);
+ free(all_entities);
+ free(hexes);
+ free(adj_faces);
+ free(face_offsets);
return FALSE;
}
- /* get adjacent faces of all hexes */
-/*
- adj_faces1 = NULL;
- adj_faces1_alloc = 0;
- face_offsets1 = NULL;
- face_offsets1_alloc = 0;
- iMesh_getAdjEntities(mesh, hex_set,
- iBase_ALL_TYPES,
- iMesh_HEXAHEDRON, iBase_FACE,
- &adj_faces1, &adj_faces1_alloc, &adj_faces1_size,
- &face_offsets1, &face_offsets1_alloc, &face_offsets1_size,
- &result);
- if (iBase_SUCCESS != result) {
- printf("Failed to get faces from hexes in entityset_test.\n");
- return FALSE;
- }
-*/
- /* compare number of faces */
-/*
- if (adj_faces_size != adj_faces1_size ||
- face_offsets_size != face_offsets1_size)
- return FALSE;
-
- if (!check_esets(mesh, n_whole_mesh + num_type + 6)) return FALSE;
-*/
- free(temp_entities1);
- free(temp_entities2);
free(edges);
free(faces);
+ free(temp_entities1);
+ free(temp_entities2);
free(types);
free(regions);
free(parents);
free(es_array1);
free(all_entities);
- free(face_offsets);
- free(adj_faces);
free(hexes);
- free(face_offsets1);
- free(adj_faces1);
-
+ free(adj_faces);
+ free(face_offsets);
+
return TRUE;
}
@@ -1215,6 +1609,7 @@ int vertex_coordinates_test(iMesh_Instance mesh)
&vert_coords, &vert_coords_alloc, &vert_coords_size, &result);
if (iBase_SUCCESS != result) {
printf("failed to get vertex cooridinate of entities in vertex_coordinates_test.\n");
+ free(verts);
return FALSE;
}
@@ -1337,7 +1732,7 @@ int vertex_int_tag_test(iMesh_Instance mesh,
return FALSE;
}
- if(dum_val2 != 11) {
+ if (dum_val2 != 11) {
printf("Value of vertex tag (val=11) wrong.\n");
return FALSE;
@@ -1360,7 +1755,7 @@ int vertex_int_tag_test(iMesh_Instance mesh,
return FALSE;
}
- if(dum_val2 != 12) {
+ if (dum_val2 != 12) {
printf("Value of vertex tag (val=12) wrong.\n");
return FALSE;
@@ -1406,8 +1801,7 @@ int vertex_double_tag_test(iMesh_Instance mesh,
return FALSE;
}
- if(dum_val2 != 1.0e6) {
-
+ if (dum_val2 != 1.0e6) {
printf("Value of vertex tag (val=1.0e6) wrong.\n");
return FALSE;
}
@@ -1429,7 +1823,7 @@ int vertex_double_tag_test(iMesh_Instance mesh,
return FALSE;
}
- if(dum_val2 != 2.0e9) {
+ if (dum_val2 != 2.0e9) {
printf("Value of vertex tag (val=2.0e9) wrong.\n");
return FALSE;
}
@@ -1481,11 +1875,11 @@ int vertex_struct_tag_test(iMesh_Instance mesh,
return FALSE;
}
- if(dum_struct_size != sizeof(struct TagStruct)) {
+ if (dum_struct_size != sizeof(struct TagStruct)) {
printf("Size of vertex struct tag wrong.\n");
return FALSE;
}
- if(dum_struct2.test_int1 != dum_struct.test_int1 ||
+ if (dum_struct2.test_int1 != dum_struct.test_int1 ||
dum_struct2.test_int2 != dum_struct.test_int2 ||
dum_struct2.test_double != dum_struct.test_double) {
printf("Value of vertex struct tag wrong.\n");
@@ -1518,6 +1912,7 @@ int vertex_tag_delete_test(iMesh_Instance mesh,
iMesh_rmvArrTag(mesh, &dum_entity, 1, all_tags[0], &result);
if (iBase_SUCCESS != result) {
printf("Couldn't remove tag from vertex.\n");
+ free(all_tags);
return FALSE;
}
@@ -1527,17 +1922,19 @@ int vertex_tag_delete_test(iMesh_Instance mesh,
}
if (!delete_err) {
printf("Error when unforced-deleting tag in use on a vertex.\n");
+ free(all_tags);
return FALSE;
}
iMesh_destroyTag(mesh, all_tags[1], TRUE, &result);
if (iBase_SUCCESS != result) {
printf("Couldn't force-delete a tag in use on a vertex.\n");
+ free(all_tags);
return FALSE;
}
free(all_tags);
-
+
/* ok, we're done */
return TRUE;
}
@@ -1622,21 +2019,21 @@ int entityset_int_tag_test(iMesh_Instance mesh,
/* put a value in the last faces and retrieve */
dum_val = 12;
- iMesh_setEntSetData(mesh, sets[sets_size-1], *int_tag,
+ iMesh_setEntSetData(mesh, sets[sets_size - 1], *int_tag,
(char*)(&dum_val), sizeof(int), &result);
if (iBase_SUCCESS != result) {
printf("Failed to set int tag (val=12) in entityset_int_tag_test.");
return FALSE;
}
- iMesh_getEntSetData(mesh, sets[sets_size-1], *int_tag,
+ iMesh_getEntSetData(mesh, sets[sets_size - 1], *int_tag,
&dum_val2_ptr, &dum_val2_alloc, &dum_val2_size, &result);
if (iBase_SUCCESS != result) {
printf("Failed to get int tag (val=12) in entityset_int_tag_test.");
return FALSE;
}
- if(dum_val2 != 12) {
+ if (dum_val2 != 12) {
printf("Value of entityset tag (val=12) wrong.\n");
return FALSE;
}
@@ -1701,7 +2098,7 @@ int entityset_double_tag_test(iMesh_Instance mesh,
return FALSE;
}
- if(dum_val2 != 2.0e9) {
+ if (dum_val2 != 2.0e9) {
printf("Value of entityset tag (val=2.0e9) wrong.\n");
return FALSE;
}
@@ -1745,11 +2142,11 @@ int entityset_struct_tag_test(iMesh_Instance mesh,
return FALSE;
}
- if(dum_struct_size != sizeof(struct TagStruct)) {
+ if (dum_struct_size != sizeof(struct TagStruct)) {
printf("Size of entityset struct tag wrong.\n");
return FALSE;
}
- if(dum_struct2.test_int1 != dum_struct.test_int1 ||
+ if (dum_struct2.test_int1 != dum_struct.test_int1 ||
dum_struct2.test_int2 != dum_struct.test_int2 ||
dum_struct2.test_double != dum_struct.test_double) {
printf("Value of entityset struct tag wrong.\n");
@@ -1767,10 +2164,9 @@ int entityset_tag_delete_test(iMesh_Instance mesh,
int result;
int delete_err = FALSE;
-
/* test getAlliBase_TagHandles for first entity */
iBase_TagHandle *all_tags = NULL;
- if (sets_size<1)
+ if (sets_size < 1)
{
printf("no sets.\n");
return FALSE;
@@ -1781,12 +2177,14 @@ int entityset_tag_delete_test(iMesh_Instance mesh,
&all_tags_size, &result);
if (iBase_SUCCESS != result) {
printf("Couldn't get all tag handles from entityset.\n");
+ free(all_tags);
return FALSE;
}
iMesh_rmvEntSetTag(mesh, dum_entity, all_tags[0], &result);
if (iBase_SUCCESS != result) {
printf("Couldn't remove tag from entityset.\n");
+ free(all_tags);
return FALSE;
}
@@ -1796,12 +2194,14 @@ int entityset_tag_delete_test(iMesh_Instance mesh,
}
if (!delete_err) {
printf("Error when unforced-deleting tag in use on a entityset.\n");
+ free(all_tags);
return FALSE;
}
iMesh_destroyTag(mesh, all_tags[1], TRUE, &result);
if (iBase_SUCCESS != result) {
printf("Couldn't force-delete a tag in use on a entityset.\n");
+ free(all_tags);
return FALSE;
}
@@ -1828,11 +2228,11 @@ int entityset_tag_test(iMesh_Instance mesh)
iMesh_getEntSets(mesh, root_set, 1, &esets, &esets_alloc, &esets_size, &result);
if (iBase_SUCCESS != result) {
printf("entitysetGetEntities failed in entityset_tag_test.\n");
+ free(esets);
return FALSE;
}
-
- /* entityset int tag */
+ /* entityset int tag */
int_success = entityset_int_tag_test(mesh, esets, esets_size,
&int_tag);
@@ -1907,7 +2307,7 @@ int mesh_int_tag_test(iMesh_Instance mesh,
return FALSE;
}
- if(dum_val2 != 12) {
+ if (dum_val2 != 12) {
printf("Value of entityset tag (val=12) wrong.\n");
return FALSE;
}
@@ -1971,7 +2371,7 @@ int mesh_double_tag_test(iMesh_Instance mesh,
return FALSE;
}
- if(dum_val2 != 2.0e9) {
+ if (dum_val2 != 2.0e9) {
printf("Value of entityset tag (val=2.0e9) wrong.\n");
return FALSE;
}
@@ -2014,11 +2414,11 @@ int mesh_struct_tag_test(iMesh_Instance mesh,
return FALSE;
}
- if(dum_struct_size != sizeof(struct TagStruct)) {
+ if (dum_struct_size != sizeof(struct TagStruct)) {
printf("Size of entityset struct tag wrong.\n");
return FALSE;
}
- if(dum_struct2.test_int1 != dum_struct.test_int1 ||
+ if (dum_struct2.test_int1 != dum_struct.test_int1 ||
dum_struct2.test_int2 != dum_struct.test_int2 ||
dum_struct2.test_double != dum_struct.test_double) {
printf("Value of entityset struct tag wrong.\n");
@@ -2035,7 +2435,6 @@ int mesh_tag_delete_test(iMesh_Instance mesh)
int result;
int delete_err = FALSE;
-
/* test getAlliBase_TagHandles for first entity */
iBase_TagHandle *all_tags = NULL;
int all_tags_alloc = 0, all_tags_size;
@@ -2049,6 +2448,7 @@ int mesh_tag_delete_test(iMesh_Instance mesh)
iMesh_rmvEntSetTag(mesh, root_set, all_tags[0], &result);
if (iBase_SUCCESS != result) {
printf("Couldn't remove tag from entityset.\n");
+ free(all_tags);
return FALSE;
}
@@ -2058,12 +2458,14 @@ int mesh_tag_delete_test(iMesh_Instance mesh)
}
if (!delete_err) {
printf("Error when unforced-deleting tag in use on a entityset.\n");
+ free(all_tags);
return FALSE;
}
iMesh_destroyTag(mesh, all_tags[1], TRUE, &result);
if (iBase_SUCCESS != result) {
printf("Couldn't force-delete a tag in use on a entityset.\n");
+ free(all_tags);
return FALSE;
}
@@ -2099,34 +2501,40 @@ int mesh_tag_test(iMesh_Instance mesh)
int set_remove_contained_regression( iMesh_Instance mesh )
{
- int err,contained;
- iBase_EntitySetHandle set,sub;
+ int err, contained;
+ iBase_EntitySetHandle set, sub;
- iMesh_createEntSet(mesh,0,&set,&err);
- if (iBase_SUCCESS != err) return 0;
- iMesh_createEntSet(mesh,1,&sub,&err);
- if (iBase_SUCCESS != err) return 0;
+ iMesh_createEntSet(mesh, 0, &set, &err);
+ if (iBase_SUCCESS != err)
+ return 0;
+ iMesh_createEntSet(mesh, 1, &sub, &err);
+ if (iBase_SUCCESS != err)
+ return 0;
- iMesh_addEntSet(mesh,sub,set,&err);
- if (iBase_SUCCESS != err) return 0;
+ iMesh_addEntSet(mesh, sub, set, &err);
+ if (iBase_SUCCESS != err)
+ return 0;
- iMesh_isEntSetContained(mesh,set,sub,&contained,&err);
- if (iBase_SUCCESS != err) return 0;
+ iMesh_isEntSetContained(mesh, set, sub, &contained, &err);
+ if (iBase_SUCCESS != err)
+ return 0;
if (!contained) {
- fprintf(stderr,"isEntSetContained returned false for contained set\n");
+ fprintf(stderr, "isEntSetContained returned false for contained set\n");
return 0;
}
- iMesh_rmvEntSet(mesh,sub,set,&err);
- if (iBase_SUCCESS != err) return 0;
+ iMesh_rmvEntSet(mesh, sub, set, &err);
+ if (iBase_SUCCESS != err)
+ return 0;
- iMesh_isEntSetContained(mesh,set,sub,&contained,&err);
- if (iBase_SUCCESS != err) return 0;
+ iMesh_isEntSetContained(mesh, set, sub, &contained, &err);
+ if (iBase_SUCCESS != err)
+ return 0;
if (contained) {
- fprintf(stderr,"isEntSetContained returned true for removed set\n");
+ fprintf(stderr, "isEntSetContained returned true for removed set\n");
return 0;
}
-
+
return 1;
}
@@ -2137,75 +2545,91 @@ int all_adjacency_regression( iMesh_Instance mesh )
double coords[] = { 0,0,0, 1,1,1 };
iBase_EntityHandle *verts = NULL;
- int verts_alloc = 0,verts_size;
+ int verts_alloc = 0, verts_size;
iBase_EntityHandle line;
int status;
iBase_EntityHandle *adj = NULL;
- int adj_alloc = 0,adj_size;
+ int adj_alloc = 0, adj_size;
- iMesh_newMesh("",&mesh,&err,0);
- if (iBase_SUCCESS != err) return 0;
+ iMesh_newMesh("", &mesh, &err, 0);
+ if (iBase_SUCCESS != err)
+ return 0;
- iMesh_createVtxArr(mesh,2,iBase_INTERLEAVED,coords,6,&verts,&verts_alloc,
- &verts_size,&err);
- if (iBase_SUCCESS != err) return 0;
+ iMesh_createVtxArr(mesh, 2, iBase_INTERLEAVED, coords, 6, &verts, &verts_alloc,
+ &verts_size, &err);
+ if (iBase_SUCCESS != err)
+ return 0;
- iMesh_createEnt(mesh,iMesh_LINE_SEGMENT,verts,2,&line,&status,&err);
- if (iBase_SUCCESS != err || status != iBase_NEW) return 0;
+ iMesh_createEnt(mesh, iMesh_LINE_SEGMENT, verts, 2, &line, &status, &err);
+ if (iBase_SUCCESS != err || status != iBase_NEW)
+ return 0;
- iMesh_getEntAdj(mesh,verts[0],iBase_ALL_TYPES,&adj,&adj_alloc,&adj_size,
+ iMesh_getEntAdj(mesh, verts[0], iBase_ALL_TYPES, &adj, &adj_alloc, &adj_size,
&err);
- if (iBase_SUCCESS != err) return 0;
- if(adj_size != 1 || adj[0] != line) {
+ if (iBase_SUCCESS != err)
+ return 0;
+ if (adj_size != 1 || adj[0] != line) {
printf("Bad: couldn't find adjacency for vertex\n");
return 0;
}
free(adj);
- adj_alloc = 0; adj = 0;
- iMesh_getEntAdj(mesh,line,iBase_ALL_TYPES,&adj,&adj_alloc,&adj_size,
+ adj_alloc = 0; adj = NULL;
+ iMesh_getEntAdj(mesh, line, iBase_ALL_TYPES, &adj, &adj_alloc, &adj_size,
&err);
- if (iBase_SUCCESS != err) return 0;
- if(adj_size != 2 || ((adj[0] != verts[0] || adj[1] != verts[1]) &&
+ if (iBase_SUCCESS != err)
+ return 0;
+ if (adj_size != 2 || ((adj[0] != verts[0] || adj[1] != verts[1]) &&
(adj[0] != verts[1] || adj[1] != verts[0])) ) {
printf("Bad: couldn't find adjacencies for line\n");
+ free(adj);
+ free(verts);
return 0;
}
free(adj);
free(verts);
iMesh_dtor(mesh,&err);
- if (iBase_SUCCESS != err) return 0;
+ if (iBase_SUCCESS != err)
+ return 0;
return 1;
}
static int ordered_set_regression( iMesh_Instance mesh )
{
double coords[] = { 0,0,0, 1,1,1 };
- iBase_EntityHandle line,*p,verts[2],ents_in[3],ents_out[3];
+ iBase_EntityHandle line, *p, verts[2], ents_in[3], ents_out[3];
iBase_EntitySetHandle set;
- int i,err,status,two=2,three=3;
+ int i, err, status, two = 2, three = 3;
- iMesh_newMesh("",&mesh,&err,0);CHK(err);
+ iMesh_newMesh("", &mesh, &err, 0);
+ CHK(err);
p = verts;
- iMesh_createVtxArr(mesh,2,iBase_INTERLEAVED,coords,6,&p,&two,&two,&err);CHK(err);
- iMesh_createEnt(mesh,iMesh_LINE_SEGMENT,verts,2,&line,&status,&err);CHK(err);
- if (status != iBase_NEW) return 0;
- iMesh_createEntSet(mesh,1,&set,&err);CHK(err);
+ iMesh_createVtxArr(mesh, 2, iBase_INTERLEAVED, coords, 6, &p, &two, &two, &err);
+ CHK(err);
+ iMesh_createEnt(mesh, iMesh_LINE_SEGMENT, verts, 2, &line, &status, &err);
+ CHK(err);
+ if (status != iBase_NEW)
+ return 0;
+ iMesh_createEntSet(mesh, 1, &set, &err);
+ CHK(err);
ents_in[0] = verts[1];
ents_in[1] = line;
ents_in[2] = verts[0];
- iMesh_addEntArrToSet(mesh,ents_in,three,set,&err);CHK(err);
+ iMesh_addEntArrToSet(mesh, ents_in, three, set, &err);
+ CHK(err);
p = ents_out;
- iMesh_getEntities(mesh,set,iBase_ALL_TYPES,iMesh_ALL_TOPOLOGIES,&p,&three,&three,&err);CHK(err);
- for (i=0; i<three; i++) {
+ iMesh_getEntities(mesh, set, iBase_ALL_TYPES, iMesh_ALL_TOPOLOGIES, &p, &three, &three, &err);
+ CHK(err);
+ for (i = 0; i < three; i++) {
if (ents_in[i] != ents_out[i]) {
printf("Ordered set does not preserve order\n");
return 0;
}
}
- iMesh_dtor(mesh,&err);CHK(err);
+ iMesh_dtor(mesh, &err);
+ CHK(err);
return 1;
}
@@ -2216,13 +2640,14 @@ int array_allocation( iMesh_Instance mesh )
double coords[] = { 0,0,0, 1,1,1, 2,2,2, 3,3,3 };
iBase_EntityHandle *verts = NULL;
- int verts_alloc = 0,verts_size;
+ int verts_alloc = 0, verts_size;
iBase_EntityHandle *ents;
int ents_alloc, ents_size;
- iMesh_newMesh("",&mesh,&err,0);
- if (iBase_SUCCESS != err) return 0;
+ iMesh_newMesh("", &mesh, &err, 0);
+ if (iBase_SUCCESS != err)
+ return 0;
iMesh_getRootSet(mesh, &root_set, &err);
if (iBase_SUCCESS != err) {
@@ -2230,9 +2655,11 @@ int array_allocation( iMesh_Instance mesh )
return 0;
}
- iMesh_createVtxArr(mesh,4,iBase_INTERLEAVED,coords,12,&verts,&verts_alloc,
- &verts_size,&err);
- if (iBase_SUCCESS != err) return 0;
+ iMesh_createVtxArr(mesh, 4, iBase_INTERLEAVED, coords, 12, &verts, &verts_alloc,
+ &verts_size, &err);
+ if (iBase_SUCCESS != err)
+ return 0;
+
free(verts);
/* test for proper allocation when array pointer passed in null but alloc'd size not */
@@ -2241,15 +2668,15 @@ int array_allocation( iMesh_Instance mesh )
iMesh_getEntities(mesh, root_set, iBase_ALL_TYPES, iMesh_ALL_TOPOLOGIES,
&ents, &ents_alloc, &ents_size, &err);
CHK(err);
-
+
free(ents);
-
+
/* test for proper allocation when array pointer passed in non-null but alloc'd size 0 */
ents_alloc = 0;
iMesh_getEntities(mesh, root_set, iBase_ALL_TYPES, iMesh_ALL_TOPOLOGIES,
&ents, &ents_alloc, &ents_size, &err);
CHK(err);
-
+
free(ents);
/* test for failure when passed in alloc'd size is smaller than it should be */
@@ -2260,8 +2687,9 @@ int array_allocation( iMesh_Instance mesh )
err = iBase_FAILURE;
CHK(err);
}
-
- iMesh_dtor(mesh,&err);CHK(err);
+
+ iMesh_dtor(mesh, &err);
+ CHK(err);
return 1;
}
@@ -2281,7 +2709,7 @@ int compare_single_iter( const char* info,
iMesh_initEntIter( mesh, set, type, topo, 0, &iter, &result );
if (iBase_SUCCESS != result) {
printf("%s:%d: Error %d initializing %s iterator for type %d/topo %d\n",
- __FILE__,__LINE__,result,info,(int)type,(int)topo);
+ __FILE__, __LINE__, result, info, (int)type, (int)topo);
return result;
}
@@ -2291,20 +2719,20 @@ int compare_single_iter( const char* info,
iMesh_getNextEntIter( mesh, iter, &value, &has_data, &result );
if (iBase_SUCCESS != result) {
printf("%s:%d: Error %d stepping %s iterator for type %d/topo %d\n",
- __FILE__,__LINE__,result,info,(int)type,(int)topo);
+ __FILE__, __LINE__, result, info, (int)type, (int)topo);
goto end_single_iter;
}
if (!has_data) {
printf("%s:%d: %s iterator for type %d/topo %d ended prematurely at %d of %d\n",
- __FILE__,__LINE__,info,(int)type,(int)topo,i,contents_size);
+ __FILE__, __LINE__, info, (int)type, (int)topo, i, contents_size);
result = iBase_FAILURE;
goto end_single_iter;
}
if (value != contents[i]) {
printf("%s:%d: %s iterator for type %d/topo %d returned incorrect value at %d of %d\n",
- __FILE__,__LINE__,info,(int)type,(int)topo,i,contents_size);
+ __FILE__, __LINE__, info, (int)type, (int)topo, i, contents_size);
result = iBase_FAILURE;
goto end_single_iter;
}
@@ -2313,13 +2741,13 @@ int compare_single_iter( const char* info,
iMesh_getNextEntIter( mesh, iter, &value, &has_data, &result );
if (iBase_SUCCESS != result) {
printf("%s:%d: Error %d stepping %s iterator for type %d/topo %d\n",
- __FILE__,__LINE__,result,info,(int)type,(int)topo);
+ __FILE__, __LINE__, result, info, (int)type, (int)topo);
goto end_single_iter;
}
if (has_data) {
printf("%s:%d: %s iterator for type %d/topo %d did not end after %d values\n",
- __FILE__,__LINE__,info,(int)type,(int)topo,contents_size);
+ __FILE__, __LINE__, info, (int)type, (int)topo, contents_size);
result = iBase_FAILURE;
goto end_single_iter;
}
@@ -2327,7 +2755,7 @@ int compare_single_iter( const char* info,
iMesh_resetEntIter( mesh, iter, &result );
if (iBase_SUCCESS != result) {
printf("%s:%d: Error %d resetting %s iterator for type %d/topo %d\n",
- __FILE__,__LINE__,result,info,(int)type,(int)topo);
+ __FILE__, __LINE__, result, info, (int)type, (int)topo);
result = iBase_FAILURE;
goto end_single_iter;
}
@@ -2337,7 +2765,7 @@ end_single_iter:
iMesh_endEntIter( mesh, iter, &result2 );
if (iBase_SUCCESS != result2) {
printf("%s:%d: Error %d releasing %s iterator for type %d/topo %d\n",
- __FILE__,__LINE__,result,info,(int)type,(int)topo);
+ __FILE__, __LINE__, result, info, (int)type, (int)topo);
if (iBase_SUCCESS == result)
result = result2;
}
@@ -2362,7 +2790,7 @@ int compare_array_iter( const char* info,
iMesh_initEntArrIter( mesh, set, type, topo, array_size, 0, &iter, &result );
if (iBase_SUCCESS != result) {
printf("%s:%d: Error %d initializing %s array iterator for type %d/topo %d\n",
- __FILE__,__LINE__,result,info,(int)type,(int)topo);
+ __FILE__, __LINE__, result, info, (int)type, (int)topo);
free(values);
return result;
}
@@ -2374,27 +2802,27 @@ int compare_array_iter( const char* info,
iMesh_getNextEntArrIter( mesh, iter, &values, &values_alloc, &values_size, &has_data, &result );
if (iBase_SUCCESS != result) {
printf("%s:%d: Error %d stepping %s array iterator for type %d/topo %d\n",
- __FILE__,__LINE__,result,info,(int)type,(int)topo);
+ __FILE__, __LINE__, result, info, (int)type, (int)topo);
goto end_arr_iter;
}
if (!has_data || !values_size) {
printf("%s:%d: %s array iterator for type %d/topo %d ended prematurely at %d of %d\n",
- __FILE__,__LINE__,info,(int)type,(int)topo,i,contents_size);
+ __FILE__, __LINE__,info, (int)type, (int)topo, i, contents_size);
result = iBase_FAILURE;
goto end_arr_iter;
}
if (i + values_size > contents_size) {
printf("%s:%d: %s array iterator for type %d/topo %d returned more than %d handles\n",
- __FILE__,__LINE__,info,(int)type,(int)topo,contents_size);
+ __FILE__, __LINE__,info, (int)type, (int)topo, contents_size);
result = iBase_FAILURE;
goto end_arr_iter;
}
if (contents_size - i >= array_size && values_size < array_size) {
printf("%s:%d: %s array iterator for type %d/topo %d returned fewer than %d handles\n",
- __FILE__,__LINE__,info,(int)type,(int)topo,array_size);
+ __FILE__, __LINE__, info, (int)type, (int)topo, array_size);
result = iBase_FAILURE;
goto end_arr_iter;
}
@@ -2402,7 +2830,7 @@ int compare_array_iter( const char* info,
for (j = 0; j < values_size; ++j, ++i) {
if (values[j] != contents[i]) {
printf("%s:%d: %s array iterator for type %d/topo %d returned incorrect value at %d of %d\n",
- __FILE__,__LINE__,info,(int)type,(int)topo,i,contents_size);
+ __FILE__, __LINE__, info, (int)type, (int)topo, i, contents_size);
result = iBase_FAILURE;
goto end_arr_iter;
}
@@ -2412,13 +2840,13 @@ int compare_array_iter( const char* info,
iMesh_getNextEntArrIter( mesh, iter, &values, &values_alloc, &values_size, &has_data, &result );
if (iBase_SUCCESS != result) {
printf("%s:%d: Error %d stepping %s array iterator for type %d/topo %d\n",
- __FILE__,__LINE__,result,info,(int)type,(int)topo);
+ __FILE__, __LINE__, result, info, (int)type, (int)topo);
goto end_arr_iter;
}
if (has_data || values_size) {
printf("%s:%d: %s array iterator for type %d/topo %d did not end after %d values\n",
- __FILE__,__LINE__,info,(int)type,(int)topo,contents_size);
+ __FILE__, __LINE__, info, (int)type, (int)topo, contents_size);
result = iBase_FAILURE;
goto end_arr_iter;
}
@@ -2426,7 +2854,7 @@ int compare_array_iter( const char* info,
iMesh_resetEntArrIter( mesh, iter, &result );
if (iBase_SUCCESS != result) {
printf("%s:%d: Error %d resetting %s array iterator for type %d/topo %d\n",
- __FILE__,__LINE__,result,info,(int)type,(int)topo);
+ __FILE__, __LINE__, result, info, (int)type, (int)topo);
result = iBase_FAILURE;
goto end_arr_iter;
}
@@ -2437,14 +2865,13 @@ end_arr_iter:
iMesh_endEntArrIter( mesh, iter, &result2 );
if (iBase_SUCCESS != result2) {
printf("%s:%d: Error %d releasing %s array iterator for type %d/topo %d\n",
- __FILE__,__LINE__,result,info,(int)type,(int)topo);
+ __FILE__, __LINE__, result, info, (int)type, (int)topo);
if (iBase_SUCCESS == result)
result = result2;
}
return result;
}
-
int test_iterator_common( const char* info,
iMesh_Instance mesh,
iBase_EntitySetHandle set,
@@ -2452,7 +2879,7 @@ int test_iterator_common( const char* info,
enum iBase_EntityType type,
enum iMesh_EntityTopology topo )
{
- iBase_EntityHandle *contents = 0;
+ iBase_EntityHandle *contents = NULL;
int content_size = 0, content_alloc = 0;
int result;
@@ -2466,24 +2893,22 @@ int test_iterator_common( const char* info,
return result;
}
-
int test_iterator( iMesh_Instance mesh )
{
int result, i;
- iBase_EntitySetHandle root, list, set ,*setptr;
- iBase_EntityHandle* array = 0;
+ iBase_EntitySetHandle root, list, set, *setptr;
+ iBase_EntityHandle* array = NULL;
int array_len = 0, array_size = 0;
-
+
iMesh_getRootSet( mesh, &root, &result );
CHK(result);
-
/* create some sets containing every other handle */
iMesh_getEntities( mesh, root, iBase_ALL_TYPES, iMesh_ALL_TOPOLOGIES,
&array, &array_size, &array_len, &result );
CHK(result);
for (i = 1; i < array_size; i += 2)
- array[i] = array[i-1];
+ array[i] = array[i - 1];
for (i = 0; i < 2; ++i) {
setptr = i ? &list : &set;
iMesh_createEntSet( mesh, i, setptr, &result );
@@ -2499,7 +2924,7 @@ int test_iterator( iMesh_Instance mesh )
/* test single iterator and array iterator for all types */
for (i = 0; i < iBase_ALL_TYPES; ++i) {
- array_size = 2*i+2;
+ array_size = 2*i + 2;
result = test_iterator_common( "root", mesh, root, 1, (enum iBase_EntityType)i, iMesh_ALL_TOPOLOGIES );
CHK(result);
result = test_iterator_common( "root", mesh, root, array_size, (enum iBase_EntityType)i, iMesh_ALL_TOPOLOGIES );
@@ -2516,7 +2941,7 @@ int test_iterator( iMesh_Instance mesh )
/* test single iterator and array iterator for all types */
for (i = 0; i < iMesh_ALL_TOPOLOGIES; ++i) {
- array_size = 2*i+2;
+ array_size = 2*i + 2;
result = test_iterator_common( "root", mesh, root, 1, iBase_ALL_TYPES, (enum iMesh_EntityTopology)i );
CHK(result);
result = test_iterator_common( "root", mesh, root, array_size, iBase_ALL_TYPES, (enum iMesh_EntityTopology)i );
@@ -2534,7 +2959,6 @@ int test_iterator( iMesh_Instance mesh )
return 1;
}
-
int main( int argc, char *argv[] )
{
/* Check command line arg */
@@ -2557,7 +2981,6 @@ int main( int argc, char *argv[] )
filename = DEFAULT_INPUT_FILE;
}
-
/* initialize the Mesh */
iMesh_newMesh(NULL, &mesh, &result, 0);
if (iBase_SUCCESS != result) {
Repository URL: https://bitbucket.org/fathomteam/moab/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the moab-dev
mailing list