diff --git a/Mesh/3D_Extrude_Old.cpp b/Mesh/3D_Extrude_Old.cpp index ffbf2abc4fdd63de220c48112aeafb08540ac348..82a8a3315c0ab892ab2399fc724723169ea013d0 100644 --- a/Mesh/3D_Extrude_Old.cpp +++ b/Mesh/3D_Extrude_Old.cpp @@ -1,4 +1,4 @@ -// $Id: 3D_Extrude_Old.cpp,v 1.4 2001-06-26 09:35:22 geuzaine Exp $ +// $Id: 3D_Extrude_Old.cpp,v 1.5 2001-06-27 09:05:35 geuzaine Exp $ // This is the old extrusion mesh generator -> only available through // the command line option -extrude (w/o -recombine). This mesh @@ -48,6 +48,8 @@ int ZonLayer [NB_LAYER_MAX]; int LineLayer [NB_LAYER_MAX]; int SurfLayer [NB_LAYER_MAX+1]; double hLayer [NB_LAYER_MAX]; +double parLayer [NB_LAYER_MAX]; + typedef struct { int a,b; @@ -75,9 +77,14 @@ static void InitExtrudeParams (void){ printf("Number of elements in layer %d: ",i+1); scanf("%d",&NbElmLayer[i]); fprintf(file, "%d\n", NbElmLayer[i]);fflush(file); + printf("Depth of layer %d: ",i+1); scanf("%lf",&hLayer[i]); fprintf(file, "%g\n", hLayer[i]);fflush(file); + + printf("Progresion ratio for layer %d: ",i+1); + scanf("%lf",&parLayer[i]); + fprintf(file, "%g\n", parLayer[i]);fflush(file); } Tree_Ares = Tree_Create(sizeof(nxn),compnxn); Tree_Swaps = Tree_Create(sizeof(nxn),compnxn); @@ -356,7 +363,7 @@ static void Extrude_Vertex (void *data , void *dum){ Vertex **pV , *v, *newv; int i,j; - double h; + double h,a; pV = (Vertex**)data; v = *pV; @@ -364,9 +371,17 @@ static void Extrude_Vertex (void *data , void *dum){ v->Extruded_Points = List_Create(NbLayer,1,sizeof(Vertex*)); List_Add(v->Extruded_Points,&v); h = 0.0; + for(i=0;i<NbLayer;i++){ + + a = hLayer[i] * (parLayer[i]-1.)/(pow(parLayer[i],NbElmLayer[i])-1.) ; + for(j=0;j<NbElmLayer[i];j++){ - h += hLayer[i]/(double)NbElmLayer[i]; + + //h += hLayer[i]/(double)NbElmLayer[i]; + + h += a*pow(parLayer[i],j); + newv = Create_Vertex(++CurrentNodeNumber,v->Pos.X,v->Pos.Y,v->Pos.Z + h, v->lc , v->u ); Tree_Add(THEM->Vertices,&newv); List_Add(v->Extruded_Points,&newv);