OSDN Git Service

mrcImage3DPad2: Bug fixed: v2.3.70p0300
authorTakuo Yasunaga <tacyas1@TakuonoMacBook-Pro.local>
Mon, 12 Oct 2020 07:07:45 +0000 (16:07 +0900)
committerTakuo Yasunaga <tacyas1@TakuonoMacBook-Pro.local>
Mon, 12 Oct 2020 07:07:45 +0000 (16:07 +0900)
 Please enter the commit message for your changes. Lines starting
 with '#' will be ignored, and an empty message aborts the commit.

 Committer: Takuo Yasunaga <tacyas1@TakuonoMacBook-Pro.local>

 On branch master
 Your branch is up to date with 'origin/master'.

 Changes to be committed:
modified:   src/Tools/mrcImage/mrcImage3DPad2/src/mrcImage3DPad2.c

src/Tools/mrcImage/mrcImage3DPad2/src/mrcImage3DPad2.c

index f015e23..049372f 100755 (executable)
@@ -254,7 +254,7 @@ void lmrcImage3DPad(mrcImage* out, mrcImage* in, lmrcImage3DPadInfo linfo, int m
        int x,y,z;
        double data,cx,cy,cz,sx,sy,sz,r2,av,c,dr2;
        double dstx, dsty, dstz;
-       double offset;
+       double offset, v;
 
        out->Header = in->Header;
        out->HeaderN.x = linfo.Nx;
@@ -272,22 +272,43 @@ void lmrcImage3DPad(mrcImage* out, mrcImage* in, lmrcImage3DPadInfo linfo, int m
        sy=(out->HeaderN.y-in->HeaderN.y)*0.5;
        sz=(out->HeaderN.z-in->HeaderN.z)*0.5;
        r2=SQR(linfo.rmax);
-       switch(mode){
-               case 0:
-                       if (!linfo.flagv){
+
+  // Floating and padding value
+       if (linfo.flagFloating) { // Boundery
         if(linfo.flagr) {
-                                 av=lmrcImage3DPadCalcavr(in, linfo.rmax);
+                     av=lmrcImage3DPadCalcavr(in, linfo.rmax);
         } else {
-                                 av=lmrcImage3DPadCalcavr(in, -1);
+                         av=lmrcImage3DPadCalcavr(in, -1);
         }
-                       } else {
-                               av=linfo.v;
-                       }
-                       if(linfo.flagFloating) {
-                               offset = av;
-                       } else {
-                               offset = 0;
-                       }
+       } else { // NotFloating
+      av = 0;
+  }
+
+       if(linfo.flagFloating) {
+    if(linfo.flagv) {
+      v = linfo.v;
+           offset = av - v;
+    } else {
+      v = 0;
+      offset = av;
+    }
+       } else {
+    v = 0;
+               offset = 0;
+       }
+
+  // Padding value
+       for (z=0;z<out->HeaderN.z;z++){
+       for (y=0;y<out->HeaderN.y;y++){
+       for (x=0;x<out->HeaderN.x;x++){
+    // 
+         mrcPixelDataSet(out, x, y, z, v, mrcPixelRePart);
+       }
+       }
+       }
+
+       switch(mode){
+               case 0:
                        for (z=0;z<out->HeaderN.z;z++){
                        for (y=0;y<out->HeaderN.y;y++){
                        for (x=0;x<out->HeaderN.x;x++){
@@ -313,21 +334,7 @@ void lmrcImage3DPad(mrcImage* out, mrcImage* in, lmrcImage3DPadInfo linfo, int m
                        break;
                case 1:
                case 2:
-                       if (!linfo.flagv) {
-        if(linfo.flagr) {
-                                 av=lmrcImage3DPadCalcavr(in ,linfo.rmax+linfo.w);
-        } else {
-                                 av=lmrcImage3DPadCalcavr(in ,-1);
-        }
-                       } else {
-                               av=linfo.v;
-                       }
-                       if(linfo.flagFloating) {
-                               offset = av;
-                       } else {
-                               offset = 0;
-                       }
-                       fprintf(stdout,"av :%g\n",av); 
+                       //fprintf(stdout,"av :%g\n",av); 
                        for (z=0;z<in->HeaderN.z;z++){
                        for (y=0;y<in->HeaderN.y;y++){
                        for (x=0;x<in->HeaderN.x;x++){