| | |
| | | ts_double norml,ddp=0.0; |
| | | ts_uint i; |
| | | ts_double xnorm=0.0,ynorm=0.0,znorm=0.0; |
| | | /*find normal of the vertex as average normal of all the triangles surrounding it. */ |
| | | /*find normal of the vertex as sum of all the normals of the triangles surrounding it. */ |
| | | for(i=0;i<vtx->tristar_no;i++){ |
| | | xnorm=vtx->tristar[i]->xnorm; |
| | | ynorm=vtx->tristar[i]->ynorm; |
| | | znorm=vtx->tristar[i]->znorm; |
| | | xnorm+=vtx->tristar[i]->xnorm; |
| | | ynorm+=vtx->tristar[i]->ynorm; |
| | | znorm+=vtx->tristar[i]->znorm; |
| | | } |
| | | /*normalize*/ |
| | | norml=sqrt(xnorm*xnorm+ynorm*ynorm+znorm*znorm); |
| | |
| | | ynorm/=norml; |
| | | znorm/=norml; |
| | | /*calculate ddp, perpendicular displacement*/ |
| | | ddp=xnorm*(vtx->x-vtx_old->x)+xnorm*(vtx->y-vtx_old->y)+znorm*(vtx->z-vtx_old->z); |
| | | ddp=xnorm*(vtx->x-vtx_old->x)+ynorm*(vtx->y-vtx_old->y)+znorm*(vtx->z-vtx_old->z); |
| | | /*calculate dE*/ |
| | | // printf("ddp=%e",ddp); |
| | | return vesicle->tape->F*ddp; |