48 string output = string(
"polyhedra.vtk" );
52 int main(
int argc,
char** argv )
56 if( NULL ==
mb )
return 1;
64 if( argc > 2 )
output = argv[2];
66 if( argc > 3 )
layers = atoi( argv[3] );
82 cout <<
"Number of vertices is " << verts.
size() << endl;
83 cout <<
"Number of faces is " << faces.
size() << endl;
89 cout <<
"Number of edges is " << edges.
size() << endl;
91 std::vector< double > coords;
92 int nvPerLayer = (int)verts.
size();
93 coords.resize( 3 * nvPerLayer );
99 for(
int ii = 0; ii <
layers; ii++ )
101 for(
int i = 0; i < nvPerLayer; i++ )
114 "Error in get_element_connect" );
115 int nedges = (int)edges.
size();
118 for(
int j = 0; j < nedges; j++ )
125 if( 2 != num_nodes )
MB_CHK_ERR( MB_FAILURE );
127 int i0 = verts.
index( conn2[0] );
128 int i1 = verts.
index( conn2[1] );
129 for(
int ii = 0; ii <
layers; ii++ )
131 connect[indexConn++] = newVerts[ii][i0];
132 connect[indexConn++] = newVerts[ii][i1];
133 connect[indexConn++] = newVerts[ii + 1][i1];
134 connect[indexConn++] = newVerts[ii + 1][i0];
138 int nfaces = (int)faces.
size();
140 for(
int i = 0; i < nfaces; i++ )
141 allPolygons[i] = faces[i];
150 for(
int j = 0; j < nfaces; j++ )
158 for(
int i = 0; i < num_nodes; i++ )
160 indexVerts[i] = verts.
index( connp[i] );
161 int i1 = ( i + 1 ) % num_nodes;
167 indexEdges[i] = edges.
index( adjEdges[0] );
168 if( indexEdges[i] < 0 )
MB_CHK_SET_ERR( MB_FAILURE,
"did not find edge in range" );
171 for(
int ii = 0; ii <
layers; ii++ )
174 for(
int i = 0; i < num_nodes; i++ )
175 newConn[i] = newVerts[ii + 1][indexVerts[i]];
181 polyhedronConn[0] = allPolygons[nfaces * ii + j];
183 polyhedronConn[1] = allPolygons[nfaces * ( ii + 1 ) + j];
188 for(
int i = 0; i < num_nodes; i++ )
190 polyhedronConn[2 + i] = start_elem + ii +
layers * indexEdges[i];