21 int *alpha_verts, *beta_verts;
22 int *alpha_iso, *beta_iso;
25 alpha_verts = alpha_cube->
verts;
26 alpha_iso = *alpha_cube->
isosurf;
30 beta_verts = beta_cube->
verts;
38 if (alpha_iso[0] != -1) {
39 for (i = 0; i < alpha_cube->
verts_num; i++) {
40 if (alpha_verts[i] < 200) {
42 alpha_verts[i], cell, falpha, sum_verts, CS_verts_tail,
43 CS_verts_refer, CS_verts_head, bdflag))) {
44 fprintf(stderr,
"Error: Cannot get vertex index.\n");
52 (*CS_polys_tail)->type = 0;
53 (*CS_polys_tail)->plist = (
int *)
HECMW_calloc(4,
sizeof(
int));
54 (*CS_polys_tail)->plist[0] = 3;
55 (*CS_polys_tail)->plist[1] = alpha_vident[alpha_iso[i++]];
56 (*CS_polys_tail)->plist[2] = alpha_vident[alpha_iso[i++]];
57 (*CS_polys_tail)->plist[3] = alpha_vident[alpha_iso[i++]];
58 (*CS_polys_tail)->bdflag = bdflag;
59 (*CS_polys_tail)->elem_id[0] = cell->
elem_id[0];
60 (*CS_polys_tail)->elem_id[1] = cell->
elem_id[1];
62 if ((*CS_polys_tail)->nextpolygon ==
NULL) {
65 fprintf(stderr,
"Cannot allocate memory.\n");
70 }
while (alpha_iso[i] != -1);
73 if (beta_iso[0] != -1) {
74 for (i = 0; i < beta_cube->
verts_num; i++) {
75 if (beta_verts[i] < 100) {
76 beta_vident[i] = alpha_vident[i];
81 (*CS_polys_tail)->type = 1;
82 (*CS_polys_tail)->plist = (
int *)
HECMW_calloc(4,
sizeof(
int));
83 (*CS_polys_tail)->plist[0] = 3;
84 (*CS_polys_tail)->plist[1] = beta_vident[beta_iso[i++]];
85 (*CS_polys_tail)->plist[2] = beta_vident[beta_iso[i++]];
86 (*CS_polys_tail)->plist[3] = beta_vident[beta_iso[i++]];
87 (*CS_polys_tail)->bdflag = bdflag;
88 (*CS_polys_tail)->elem_id[0] = cell->
elem_id[0];
89 (*CS_polys_tail)->elem_id[1] = cell->
elem_id[1];
90 if ((*CS_polys_tail)->nextpolygon ==
NULL) {
97 }
while (beta_iso[i] != -1);
108 switch (bound_index) {
110 switch (vert_index) {
126 switch (vert_index) {
142 switch (vert_index) {
158 switch (vert_index) {
174 switch (vert_index) {
190 switch (vert_index) {
211 Point **CS_verts_tail,
Point **CS_verts_refer,
212 Point **CS_verts_head,
int bdflag) {
221 CS_verts_refer[table_no] = CS_verts_head[table_no];
228 }
else if (pindex >= 200) {
229 fvalue = cell->
s_data[pindex - 200];
230 cdata = cell->
c_data[pindex - 200];
236 pident = ++(*sum_verts);
238 add_verts_table(CS_verts_tail, table_no, pident, fvalue, cdata, &pgeom,
248 CS_verts = CS_verts_refer[table_no];
250 while (CS_verts->
ident) {
254 if ((CS_verts->
info == 1) || (CS_verts->
info == 0)) {
257 }
else if (bdflag >= 1024) {
264 }
else if (CS_verts->
info == 2) {
265 if (bdflag < 0) CS_verts->
info = -1;
267 return CS_verts->
ident;
275 double pfield,
double cdata,
Fgeom *pgeom,
int bdflag) {
276 CS_verts_tail[table_no]->
ident = pident;
277 CS_verts_tail[table_no]->
field = pfield;
278 CS_verts_tail[table_no]->
cdata = cdata;
279 CS_verts_tail[table_no]->
geom = *pgeom;
282 CS_verts_tail[table_no]->
info = -1;
283 }
else if (bdflag >= 1024) {
284 CS_verts_tail[table_no]->
info = 2;
286 CS_verts_tail[table_no]->
info = 1;
288 CS_verts_tail[table_no]->
info = 0;
291 if (CS_verts_tail[table_no]->nextpoint ==
NULL) {
294 fprintf(stderr,
"Cannot allocate memory.\n");
298 CS_verts_tail[table_no] = CS_verts_tail[table_no]->
nextpoint;
311 verts = cube_polys->
verts;
313 if (cell->
s_data[0] == fvalue) {
314 for (i = 0; i < verts_num; i++) {
315 if ((verts[i] == 0) || (verts[i] == 3) || (verts[i] == 8) ||
322 if (cell->
s_data[1] == fvalue) {
323 for (i = 0; i < verts_num; i++) {
324 if ((verts[i] == 0) || (verts[i] == 1) || (verts[i] == 9) ||
331 if (cell->
s_data[2] == fvalue) {
332 for (i = 0; i < verts_num; i++) {
333 if ((verts[i] == 1) || (verts[i] == 2) || (verts[i] == 11) ||
340 if (cell->
s_data[3] == fvalue) {
341 for (i = 0; i < verts_num; i++) {
342 if ((verts[i] == 2) || (verts[i] == 3) || (verts[i] == 10) ||
349 if (cell->
s_data[4] == fvalue) {
350 for (i = 0; i < verts_num; i++) {
351 if ((verts[i] == 4) || (verts[i] == 7) || (verts[i] == 8) ||
358 if (cell->
s_data[5] == fvalue) {
359 for (i = 0; i < verts_num; i++) {
360 if ((verts[i] == 4) || (verts[i] == 5) || (verts[i] == 9) ||
367 if (cell->
s_data[6] == fvalue) {
368 for (i = 0; i < verts_num; i++) {
369 if ((verts[i] == 5) || (verts[i] == 6) || (verts[i] == 11) ||
376 if (cell->
s_data[7] == fvalue) {
377 for (i = 0; i < verts_num; i++) {
378 if ((verts[i] == 6) || (verts[i] == 7) || (verts[i] == 10) ||