📄 tetramod.c
字号:
xhz[ihz][iyhz][ixhz], xhz[ihz0][iyhz][ixhz], xhz[ihz0][iyhz+1][ixhz+1], yhz[ihz][iyhz][ixhz], yhz[ihz0][iyhz+1][ixhz], yhz[ihz0][iyhz+1][ixhz+1], zhz[ihz][iyhz][ixhz], zhz[ihz+1][iyhz+1][ixhz], zhz[ihz+1][iyhz+1][ixhz+1], &facet[if7].cn[0], &facet[if7].cn[1], &facet[if7].cn[2]); /*centered normal for if8: right slant 2 facet*/ tm_normal( xhz[ihz][iyhz][ixhz+1], xhz[ihz0][iyhz][ixhz], xhz[ihz0][iyhz+1][ixhz+1], yhz[ihz][iyhz][ixhz+1], yhz[ihz0][iyhz][ixhz], yhz[ihz0][iyhz+1][ixhz+1], zhz[ihz][iyhz][ixhz+1], zhz[ihz+1][iyhz][ixhz], zhz[ihz+1][iyhz+1][ixhz+1], &facet[if8].cn[0], &facet[if8].cn[1], &facet[if8].cn[2]); /*control point for left facet on hz*/ facet[if1].ip[0]=i000; facet[if1].ip[1]=i010; facet[if1].ip[2]=i110; /*control point of right facet on hz*/ facet[if2].ip[0]=i000; facet[if2].ip[1]=i100; facet[if2].ip[2]=i110; /*upper diagonal facet*/ facet[if3].ip[0]=i000; facet[if3].ip[1]=i110; facet[if3].ip[2]=i111; /*lower diagonal facet*/ facet[if4].ip[0]=i000; facet[if4].ip[1]=i001; facet[if4].ip[2]=i111; /*left slant1 facet*/ facet[if5].ip[0]=i000; facet[if5].ip[1]=i010; facet[if5].ip[2]=i111; /*right slant1 facet*/ facet[if6].ip[0]=i000; facet[if6].ip[1]=i100; facet[if6].ip[2]=i111; /*left slant2 facet*/ facet[if7].ip[0]=i000; facet[if7].ip[1]=i011; facet[if7].ip[2]=i111; /*right slant2 facet*/ facet[if8].ip[0]=i100; facet[if8].ip[1]=i001; facet[if8].ip[2]=i111; } if (ihz==0) { facet[if1].itetra[0]=-1; facet[if2].itetra[0]=-1; } else { facet[if1].itetra[0]= /*left facet on hz*/ nhztrap*2+(ihz-1)*ntrap+iyhz*(nxhz-1)+ixhz; facet[if2].itetra[0]= /*right facet on hz*/ facet[if1].itetra[0]+3*nhztrap; } facet[if1].itetra[1]=it1; /*left facet on hz*/ facet[if2].itetra[1]=it4; /*right facet on hz*/ facet[if3].itetra[0]=it1; /*upper diagonal facet*/ facet[if3].itetra[1]=it4; /*upper diagonal facet*/ facet[if4].itetra[0]=it3; /*lower diagonal facet*/ facet[if4].itetra[1]=it5; /*lower diagonal facet*/ facet[if5].itetra[0]=it1; /*left slant1 facet*/ facet[if5].itetra[1]=it2; /*left slant1 facet*/ facet[if6].itetra[0]=it4; /*right slant1 facet*/ facet[if6].itetra[1]=it5; /*right slant1 facet*/ facet[if7].itetra[0]=it2; /*left slant2 facet*/ facet[if7].itetra[1]=it3; /*left slant2 facet*/ facet[if8].itetra[0]=it5; /*right slant2 facet*/ facet[if8].itetra[1]=it6; /*right slant3 facet*/ } } } for (ihz=0;ihz<nhz;ihz++) { for (iyhz=0;iyhz<nyhz-1;iyhz++) { for (ixhz=0;ixhz<nxhz;ixhz++) { iwh=nhztrap1*2+nhztrap*6; if9=iwh+ihz*nfacetx+iyhz*nxhz+ixhz;/*upper facet facing x*/ if10=nhzfacetx+if9; /*lower facet facing x*/ it1=ihz*ntrap+iyhz*(nxhz-1)+ixhz; /*left top tetra*/ it2=nhztrap+it1; /*left middle tetra*/ it3=nhztrap*2+it1; /*left bottom tetra*/ it4=nhztrap*3+it1; /*right top tetra*/ it5=nhztrap*4+it1; /*right middle tetra*/ it6=nhztrap*5+it1; /*right bottom tetra*/ i000=ihz*nxhz*nyhz+iyhz*nxhz+ixhz;/*upper 4 control point*/ i010=i000+nxhz; i100=i000+1; i110=i000+nxhz+1; i001=nhzpoint+i000; /*lower 4 control point*/ i011=nhzpoint+i010; i101=nhzpoint+i100; i111=nhzpoint+i110; if (iyhz%2==0) { /*centered normal for if9: upper facet facing x*/ tm_normal( xhz[ihz][iyhz][ixhz], xhz[ihz0][iyhz][ixhz], xhz[ihz][iyhz+1][ixhz], yhz[ihz][iyhz][ixhz], yhz[ihz0][iyhz][ixhz], yhz[ihz][iyhz+1][ixhz], zhz[ihz][iyhz][ixhz], zhz[ihz+1][iyhz][ixhz], zhz[ihz][iyhz+1][ixhz], &facet[if9].cn[0], &facet[if9].cn[1], &facet[if9].cn[2]); /*centered normal for if10: lower facet facing x*/ tm_normal( xhz[ihz0][iyhz+1][ixhz], xhz[ihz0][iyhz][ixhz], xhz[ihz][iyhz+1][ixhz], yhz[ihz0][iyhz+1][ixhz], yhz[ihz0][iyhz][ixhz], yhz[ihz][iyhz+1][ixhz], zhz[ihz+1][iyhz+1][ixhz], zhz[ihz+1][iyhz][ixhz], zhz[ihz][iyhz+1][ixhz], &facet[if10].cn[0], &facet[if10].cn[1], &facet[if10].cn[2]); /*upper facet facing x*/ facet[if9].ip[0]=i000; facet[if9].ip[1]=i010; facet[if9].ip[2]=i001; /*lower facet facing x*/ facet[if10].ip[0]=i010; facet[if10].ip[1]=i001; facet[if10].ip[2]=i011; } else { /*centered normal for if9: upper facet facing x*/ tm_normal( xhz[ihz][iyhz][ixhz], xhz[ihz0][iyhz+1][ixhz], xhz[ihz][iyhz+1][ixhz], yhz[ihz][iyhz][ixhz], yhz[ihz0][iyhz+1][ixhz], yhz[ihz][iyhz+1][ixhz], zhz[ihz][iyhz][ixhz], zhz[ihz+1][iyhz+1][ixhz], zhz[ihz][iyhz+1][ixhz], &facet[if9].cn[0], &facet[if9].cn[1], &facet[if9].cn[2]); /*centered normal for if10: lower facet facing x*/ tm_normal( xhz[ihz0][iyhz][ixhz], xhz[ihz0][iyhz+1][ixhz], xhz[ihz][iyhz][ixhz], yhz[ihz0][iyhz][ixhz], yhz[ihz0][iyhz+1][ixhz], yhz[ihz][iyhz][ixhz], zhz[ihz+1][iyhz][ixhz], zhz[ihz+1][iyhz+1][ixhz], zhz[ihz][iyhz][ixhz], &facet[if10].cn[0], &facet[if10].cn[1], &facet[if10].cn[2]); /*upper facet facing x*/ facet[if9].ip[0]=i000; facet[if9].ip[1]=i010; facet[if9].ip[2]=i011; /*lower facet facing x*/ facet[if10].ip[0]=i000; facet[if10].ip[1]=i001; facet[if10].ip[2]=i011; } if (ixhz==0) { facet[if9].itetra[0]=-1;/*upper facet facing x*/ facet[if10].itetra[0]=-1;/*lower facet facing x*/ } else { facet[if9].itetra[0]=it4-1; facet[if10].itetra[0]=it6-1; } if (ixhz==nxhz-1) { facet[if9].itetra[1]=-1; facet[if10].itetra[1]=-1; } else { facet[if9].itetra[1]=it2; /*upper facet facing x*/ facet[if10].itetra[1]=it3; /*lower facet facing x*/ } } } for (iyhz=0;iyhz<nyhz;iyhz++) { for (ixhz=0;ixhz<nxhz-1;ixhz++) { iwh=nhztrap1*2+nhztrap*6+nhzfacetx*2; if11=iwh+ihz*nfacety+iyhz*(nxhz-1)+ixhz;/*upper facet facing y*/ if12=nhzfacety+if11; /*lower facet facing y*/ it1=ihz*ntrap+iyhz*(nxhz-1)+ixhz; /*left top tetra*/ it2=nhztrap+it1; /*left middle tetra*/ it3=nhztrap*2+it1; /*left bottom tetra*/ it4=nhztrap*3+it1; /*right top tetra*/ it5=nhztrap*4+it1; /*right middle tetra*/ it6=nhztrap*5+it1; /*right bottom tetra*/ i000=ihz*nxhz*nyhz+iyhz*nxhz+ixhz;/*upper 4 control point*/ i010=i000+nxhz; i100=i000+1; i110=i000+nxhz+1; i001=nhzpoint+i000; /*lower 4 control point*/ i011=nhzpoint+i010; i101=nhzpoint+i100; i111=nhzpoint+i110; if (iyhz%2==0) { /*centered normal for if11: upper facet facing y*/ tm_normal( xhz[ihz][iyhz][ixhz], xhz[ihz0][iyhz][ixhz+1], xhz[ihz][iyhz][ixhz+1], yhz[ihz][iyhz][ixhz], yhz[ihz0][iyhz][ixhz+1], yhz[ihz][iyhz][ixhz+1], zhz[ihz][iyhz][ixhz], zhz[ihz+1][iyhz][ixhz+1], zhz[ihz][iyhz][ixhz+1], &facet[if11].cn[0], &facet[if11].cn[1], &facet[if11].cn[2]); /*centered normal for if12: lower facet facing y*/ tm_normal( xhz[ihz][iyhz][ixhz], xhz[ihz0][iyhz][ixhz+1], xhz[ihz0][iyhz][ixhz], yhz[ihz][iyhz][ixhz], yhz[ihz0][iyhz][ixhz+1], yhz[ihz0][iyhz][ixhz], zhz[ihz][iyhz][ixhz], zhz[ihz+1][iyhz][ixhz+1], zhz[ihz+1][iyhz][ixhz], &facet[if12].cn[0], &facet[if12].cn[1], &facet[if12].cn[2]); /*upper facet facing y*/ facet[if11].ip[0]=i000; facet[if11].ip[1]=i100; facet[if11].ip[2]=i101; /*lower facet facing y*/ facet[if12].ip[0]=i000; facet[if12].ip[1]=i001; facet[if12].ip[2]=i101; if (iyhz==0) { facet[if11].itetra[0]=-1;/*upper facet facing y*/ facet[if12].itetra[0]=-1;/*lower facet facing y*/ } else { facet[if11].itetra[0]=it1-(nxhz-1); facet[if12].itetra[0]=it2-(nxhz-1); } if (iyhz==nyhz-1) { facet[if11].itetra[1]=-1; facet[if12].itetra[1]=-1; } else { facet[if11].itetra[1]=it1;/*upper facet facing y*/ facet[if12].itetra[1]=it2;/*lower facet facing y*/ } } else { /*centered normal for if11: upper facet facing y*/ tm_normal( xhz[ihz][iyhz][ixhz], xhz[ihz0][iyhz][ixhz], xhz[ihz][iyhz][ixhz+1], yhz[ihz][iyhz][ixhz], yhz[ihz0][iyhz][ixhz], yhz[ihz][iyhz][ixhz+1], zhz[ihz][iyhz][ixhz], zhz[ihz+1][iyhz][ixhz], zhz[ihz][iyhz][ixhz+1], &facet[if11].cn[0], &facet[if11].cn[1], &facet[if11].cn[2]); /*centered normal for if12: lower facet facing y*/ tm_normal( xhz[ihz][iyhz][ixhz+1], xhz[ihz0][iyhz][ixhz+1], xhz[ihz0][iyhz][ixhz], yhz[ihz][iyhz][ixhz+1], yhz[ihz0][iyhz][ixhz+1], yhz[ihz0][iyhz][ixhz], zhz[ihz][iyhz][ixhz+1], zhz[ihz+1][iyhz][ixhz+1], zhz[ihz+1][iyhz][ixhz], &facet[if12].cn[0], &facet[if12].c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -