48 double x[7],x1[7],w[10];
54 x[i]=0.5*(b-
a)*x1[i]+(
a+b)/2;
55 double dx=(-3+(4*x[i]))*xyz1[0]+(4-(8*x[i]))*xyz[0]+(-1+(4*x[i]))*xyz2[0];
56 double dy=(-3+(4*x[i]))*xyz1[1]+(4-(8*x[i]))*xyz[1]+(-1+(4*x[i]))*xyz2[1];
57 double dz=(-3+(4*x[i]))*xyz1[2]+(4-(8*x[i]))*xyz[2]+(-1+(4*x[i]))*xyz2[2];
62 double S=
sqrt(dx2+dy2+dz2);
63 L += (b-
a)*0.5*w[i]*S;
71 double xyz1[3],xyz2[3],xyz3[3];
93 if (fabs((L01-L02)>0.001))
96 for (
int i=0;i<1000;i++)
99 double func=L10-(L0*0.5);
101 if (fabs(func)<0.001)
105 double dx=(-3+4*
P)*xyzn1[0]+(4-8*
P)*xyzn2[0]+(-1+4*
P)*xyzn3[0];
106 double dy=(-3+4*
P)*xyzn1[1]+(4-8*
P)*xyzn2[1]+(-1+4*
P)*xyzn3[1];
107 double dz=(-3+4*
P)*xyzn1[2]+(4-8*
P)*xyzn2[2]+(-1+4*
P)*xyzn3[2];
112 double S=
sqrt(dx2+dy2+dz2);
115 xyz1[0]=(1-(3*
P)+(2*(
P*
P)))*xyzn1[0]+4*(
P-(
P*
P))*xyzn2[0]+(-
P+2*(
P*
P))*xyzn3[0];
116 xyz1[1]=(1-(3*
P)+(2*(
P*
P)))*xyzn1[1]+4*(
P-(
P*
P))*xyzn2[1]+(-
P+2*(
P*
P))*xyzn3[1];
117 xyz1[2]=(1-(3*
P)+(2*(
P*
P)))*xyzn1[2]+4*(
P-(
P*
P))*xyzn2[2]+(-
P+2*(
P*
P))*xyzn3[2];
128 if (fabs((L11-L12)>0.001))
131 for (
int i=0;i<1000;i++)
134 double func=L110-(L00*0.5);
136 if (fabs(func)<0.001)
140 double dx=(-3+4*
P)*xyzn3[0]+(4-8*
P)*xyzn4[0]+(-1+4*
P)*xyzn5[0];
141 double dy=(-3+4*
P)*xyzn3[1]+(4-8*
P)*xyzn4[1]+(-1+4*
P)*xyzn5[1];
142 double dz=(-3+4*
P)*xyzn3[2]+(4-8*
P)*xyzn4[2]+(-1+4*
P)*xyzn5[2];
147 double S=
sqrt(dx2+dy2+dz2);
151 xyz2[0]=(1-(3*
P)+(2*(
P*
P)))*xyzn3[0]+4*(
P-(
P*
P))*xyzn4[0]+(-
P+2*(
P*
P))*xyzn5[0];
152 xyz2[1]=(1-(3*
P)+(2*(
P*
P)))*xyzn3[1]+4*(
P-(
P*
P))*xyzn4[1]+(-
P+2*(
P*
P))*xyzn5[1];
153 xyz2[2]=(1-(3*
P)+(2*(
P*
P)))*xyzn3[2]+4*(
P-(
P*
P))*xyzn4[2]+(-
P+2*(
P*
P))*xyzn5[2];
164 if (fabs((L21-L22)>0.001))
167 for (
int i=0;i<1000;i++)
170 double func=L220-(L000*0.5);
172 if (fabs(func)<0.001)
176 double dx=(-3+4*
P)*xyzn5[0]+(4-8*
P)*xyzn6[0]+(-1+4*
P)*xyzn1[0];
177 double dy=(-3+4*
P)*xyzn5[1]+(4-8*
P)*xyzn6[1]+(-1+4*
P)*xyzn1[1];
178 double dz=(-3+4*
P)*xyzn5[2]+(4-8*
P)*xyzn6[2]+(-1+4*
P)*xyzn1[2];
184 double S=
sqrt(dx2+dy2+dz2);
189 xyz3[0]=(1-(3*
P)+(2*(
P*
P)))*xyzn5[0]+4*(
P-(
P*
P))*xyzn6[0]+(-
P+2*(
P*
P))*xyzn1[0];
190 xyz3[1]=(1-(3*
P)+(2*(
P*
P)))*xyzn5[1]+4*(
P-(
P*
P))*xyzn6[1]+(-
P+2*(
P*
P))*xyzn1[1];
191 xyz3[2]=(1-(3*
P)+(2*(
P*
P)))*xyzn5[2]+4*(
P-(
P*
P))*xyzn6[2]+(-
P+2*(
P*
P))*xyzn1[2];
205 v[0]=v[1]=v[3]=v[5]=v[8]=v[10]=0;
206 v[2]=v[6]=v[7]=v[11]=0.5;
209 for(
int j=0;j<12;j=j+2)
222 for(
int j=0;j<20;j=j+1)
224 if (j==0) {uv[0]=0.;uv[1]=0.;uv[2]=0.;}
225 if (j==1) {uv[0]=1.;uv[1]=0.;uv[2]=0.;}
226 if (j==2) {uv[0]=0.;uv[1]=1.;uv[2]=0.;}
227 if (j==3) {uv[0]=0.;uv[1]=0.;uv[2]=1.;}
228 if (j==4) {uv[0]=1./3.;uv[1]=0.;uv[2]=0.;}
229 if (j==5) {uv[0]=2./3.;uv[1]=0.;uv[2]=0.;}
230 if (j==6) {uv[0]=2./3.;uv[1]=1./3.;uv[2]=0.;}
231 if (j==7) {uv[0]=1./3.;uv[1]=2./3.;uv[2]=0.;}
232 if (j==8) {uv[0]=0.;uv[1]=2./3.;uv[2]=0.;}
233 if (j==9) {uv[0]=0.;uv[1]=1./3.;uv[2]=0.;}
234 if (j==10) {uv[0]=0.;uv[1]=0.;uv[2]=1./3.;}
235 if (j==11) {uv[0]=0.;uv[1]=0.;uv[2]=2./3.;}
236 if (j==12) {uv[0]=2./3.;uv[1]=0.;uv[2]=1./3.;}
237 if (j==13) {uv[0]=1./3.;uv[1]=0.;uv[2]=2./3.;}
238 if (j==14) {uv[0]=0.;uv[1]=2./3.;uv[2]=1./3.;}
239 if (j==15) {uv[0]=0.;uv[1]=1./3.;uv[2]=2./3.;}
240 if (j==16) {uv[0]=1./3;uv[1]=1./3.;uv[2]=0.;}
241 if (j==17) {uv[0]=1./3.;uv[1]=0.;uv[2]=1./3.;}
242 if (j==18) {uv[0]=0.;uv[1]=1./3.;uv[2]=1./3.;}
243 if (j==19) {uv[0]=1./3.;uv[1]=1./3.;uv[2]=1./3.;}
256 bez[1]=-0.5*jac[0]-0.5*jac[2]+2*jac[1];
258 bez[3]=-0.5*jac[2]-0.5*jac[4]+2*jac[3];
260 bez[5]=-0.5*jac[4]-0.5*jac[0]+2*jac[5];
274 bez[4]=(-5*jac[0]+18*jac[4]-9*jac[5]+2*jac[1])/6.;
275 bez[5]=(2*jac[0]-9*jac[4]+18*jac[5]-5*jac[1])/6.;
276 bez[6]=(-5*jac[1]+18*jac[6]-9*jac[7]+2*jac[2])/6.;
277 bez[7]=(2*jac[1]-9*jac[6]+18*jac[7]-5*jac[2])/6.;
278 bez[8]=(-5*jac[2]+18*jac[8]-9*jac[9]+2*jac[0])/6.;
279 bez[9]=(2*jac[2]-9*jac[8]+18*jac[9]-5*jac[0])/6.;
280 bez[10]=(-5*jac[0]+18*jac[10]-9*jac[11]+2*jac[3])/6.;
281 bez[11]=(2*jac[0]-9*jac[10]+18*jac[11]-5*jac[3])/6.;
282 bez[12]=(-5*jac[1]+18*jac[12]-9*jac[13]+2*jac[3])/6.;
283 bez[13]=(2*jac[1]-9*jac[12]+18*jac[13]-5*jac[3])/6.;
284 bez[14]=(-5*jac[2]+18*jac[14]-9*jac[15]+2*jac[3])/6.;
285 bez[15]=(2*jac[2]-9*jac[14]+18*jac[15]-5*jac[3])/6.;
286 bez[16]=9./2.*(jac[16]+2./27.*(jac[0]+jac[1]+jac[2])-1./6.*(jac[4]+jac[5]+jac[6]+jac[7]+jac[8]+jac[9]));
287 bez[17]=9./2.*(jac[17]+2./27.*(jac[0]+jac[1]+jac[3])-1./6.*(jac[4]+jac[5]+jac[10]+jac[11]+jac[12]+jac[13]));
288 bez[18]=9./2.*(jac[18]+2./27.*(jac[0]+jac[2]+jac[3])-1./6.*(jac[8]+jac[9]+jac[10]+jac[11]+jac[14]+jac[15]));
289 bez[19]=9./2.*(jac[19]+2./27.*(jac[1]+jac[2]+jac[3])-1./6.*(jac[6]+jac[7]+jac[12]+jac[13]+jac[14]+jac[15]));
300 bez1[1]=0.5*bez[0]+0.5*bez[1];
301 bez1[2]=0.25*bez[0]+0.25*bez[2]+0.5*bez[1];
302 bez1[3]=0.25*bez[0]+0.25*bez[1]+0.25*bez[3]+0.25*bez[5];
303 bez1[4]=0.25*bez[0]+0.25*bez[4]+0.5*bez[5];
304 bez1[5]=0.5*bez[0]+0.5*bez[5];
307 bez1[6]=0.25*bez[0]+0.25*bez[2]+0.5*bez[1];
308 bez1[7]=0.5*bez[1]+0.5*bez[2];
310 bez1[9]=0.5*bez[2]+0.5*bez[3];
311 bez1[10]=0.25*bez[2]+0.25*bez[4]+0.5*bez[3];
312 bez1[11]=0.25*bez[1]+0.25*bez[2]+0.25*bez[3]+0.25*bez[5];
315 bez1[12]=0.25*bez[0]+0.25*bez[4]+0.5*bez[5];
316 bez1[13]=0.25*bez[1]+0.25*bez[3]+0.25*bez[4]+0.25*bez[5];
317 bez1[14]=0.25*bez[2]+0.25*bez[4]+0.5*bez[3];
318 bez1[15]=0.5*bez[3]+0.5*bez[4];
320 bez1[17]=0.5*bez[4]+0.5*bez[5];
322 bez1[18]=0.25*bez[2]+0.25*bez[4]+0.5*bez[3];
323 bez1[19]=0.25*bez[1]+0.25*bez[3]+0.25*bez[4]+0.25*bez[5];
324 bez1[20]=0.25*bez[0]+0.25*bez[4]+0.5*bez[5];
325 bez1[21]=0.25*bez[0]+0.25*bez[1]+0.25*bez[3]+0.25*bez[5];
326 bez1[22]=0.25*bez[0]+0.25*bez[2]+0.5*bez[1];
327 bez1[23]=0.25*bez[1]+0.25*bez[2]+0.25*bez[3]+0.25*bez[5];
333 double distorsion=1.0;
340 for (
int i=1;i<24;i++)
346 for (
int i=1;i<24;i++)
351 distorsion=jmin/jmax ;
410 double distorsion=1.0;
417 for (
int i=1;i<6;i++)
423 for (
int i=1;i<6;i++)
428 distorsion=jmin/jmax ;
435 double distorsion=1.0;
443 for (
int i=1;i<20;i++)
449 for (
int i=1;i<20;i++)
454 distorsion=jmin/jmax ;
468 for (
int i=1;i<6;i++)
485 for (
int i=1;i<20;i++)
504 for (
int i=1;i<6;i++)
522 for (
int i=1;i<20;i++)
532 double xyzn1[3],xyzn2[3],xyzn3[3],xyzn4[3],xyzn5[3],xyzn6[3];
541 xyzn1[0]=n1->
get_x();
542 xyzn1[1]=n1->
get_y();
543 xyzn1[2]=n1->
get_z();
545 xyzn2[0]=n2->
get_x();
546 xyzn2[1]=n2->
get_y();
547 xyzn2[2]=n2->
get_z();
549 xyzn3[0]=n3->
get_x();
550 xyzn3[1]=n3->
get_y();
551 xyzn3[2]=n3->
get_z();
553 xyzn4[0]=n4->
get_x();
554 xyzn4[1]=n4->
get_y();
555 xyzn4[2]=n4->
get_z();
557 xyzn5[0]=n5->
get_x();
558 xyzn5[1]=n5->
get_y();
559 xyzn5[2]=n5->
get_z();
561 xyzn6[0]=n6->
get_x();
562 xyzn6[1]=n6->
get_y();
563 xyzn6[2]=n6->
get_z();
567 du[0]=(-3+(4*v)+(4*u))*xyzn1[0]+(4-(8*u)-(4*v))*xyzn2[0]+(-1+(4*u))*xyzn3[0]+4*v*xyzn4[0]-4*v*xyzn6[0];
568 du[1]=(-3+(4*v)+(4*u))*xyzn1[1]+(4-(8*u)-(4*v))*xyzn2[1]+(-1+(4*u))*xyzn3[1]+4*v*xyzn4[1]-4*v*xyzn6[1];
569 du[2]=(-3+(4*v)+(4*u))*xyzn1[2]+(4-(8*u)-(4*v))*xyzn2[2]+(-1+(4*u))*xyzn3[2]+4*v*xyzn4[2]-4*v*xyzn6[2];
571 dv[0]=(-3+(4*v)+(4*u))*xyzn1[0]+(4-(8*v)-(4*u))*xyzn6[0]+(-1+(4*v))*xyzn5[0]+4*u*xyzn4[0]-4*u*xyzn2[0];
572 dv[1]=(-3+(4*v)+(4*u))*xyzn1[1]+(4-(8*v)-(4*u))*xyzn6[1]+(-1+(4*v))*xyzn5[1]+4*u*xyzn4[1]-4*u*xyzn2[1];
573 dv[2]=(-3+(4*v)+(4*u))*xyzn1[2]+(4-(8*v)-(4*u))*xyzn6[2]+(-1+(4*v))*xyzn5[2]+4*u*xyzn4[2]-4*u*xyzn2[2];
586 std::vector<double> vec;
587 double xyzn1[3],xyzn3[3],xyzn5[3];
593 xyzn1[0]=n1->
get_x();
594 xyzn1[1]=n1->
get_y();
595 xyzn1[2]=n1->
get_z();
597 xyzn3[0]=n3->
get_x();
598 xyzn3[1]=n3->
get_y();
599 xyzn3[2]=n3->
get_z();
601 xyzn5[0]=n5->
get_x();
602 xyzn5[1]=n5->
get_y();
603 xyzn5[2]=n5->
get_z();
616 for (
int i=1;i<3;i++)
623 for (
int i=1;i<3;i++)
628 double ratio=min/max ;
638 std::vector<double> dist;
640 double xyzn1[3],xyzn2[3],xyzn3[3],xyzn13[3];
642 xyzn1[0]=n1->
get_x();
643 xyzn1[1]=n1->
get_y();
644 xyzn1[2]=n1->
get_z();
646 xyzn2[0]=n2->
get_x();
647 xyzn2[1]=n2->
get_y();
648 xyzn2[2]=n2->
get_z();
650 xyzn3[0]=n3->
get_x();
651 xyzn3[1]=n3->
get_y();
652 xyzn3[2]=n3->
get_z();
654 xyzn13[0]=(xyzn1[0]+xyzn3[0])*0.5;
655 xyzn13[1]=(xyzn1[1]+xyzn3[1])*0.5;
656 xyzn13[2]=(xyzn1[2]+xyzn3[2])*0.5;
668 double xyzn3[3],xyzn4[3],xyzn5[3],xyzn35[3];
670 xyzn3[0]=n3->
get_x();
671 xyzn3[1]=n3->
get_y();
672 xyzn3[2]=n3->
get_z();
674 xyzn4[0]=n4->
get_x();
675 xyzn4[1]=n4->
get_y();
676 xyzn4[2]=n4->
get_z();
678 xyzn5[0]=n5->
get_x();
679 xyzn5[1]=n5->
get_y();
680 xyzn5[2]=n5->
get_z();
682 xyzn35[0]=(xyzn5[0]+xyzn3[0])*0.5;
683 xyzn35[1]=(xyzn5[1]+xyzn3[1])*0.5;
684 xyzn35[2]=(xyzn5[2]+xyzn3[2])*0.5;
697 double xyzn1[3],xyzn5[3],xyzn6[3],xyzn51[3];
699 xyzn1[0]=n1->
get_x();
700 xyzn1[1]=n1->
get_y();
701 xyzn1[2]=n1->
get_z();
703 xyzn5[0]=n5->
get_x();
704 xyzn5[1]=n5->
get_y();
705 xyzn5[2]=n5->
get_z();
707 xyzn6[0]=n6->
get_x();
708 xyzn6[1]=n6->
get_y();
709 xyzn6[2]=n6->
get_z();
711 xyzn51[0]=(xyzn5[0]+xyzn1[0])*0.5;
712 xyzn51[1]=(xyzn5[1]+xyzn1[1])*0.5;
713 xyzn51[2]=(xyzn5[2]+xyzn1[2])*0.5;