Ignore:
Timestamp:
Jun 20, 2014 11:44:52 AM (8 years ago)
Author:
srkline
Message:

Some cleanup of the FFT routines to be more exact in declaring mat

Rearranged the Event mode panel so that it's a little more obvious what to do, and in what order

Cleaned up the examples for the Simulation Scripting.

Location:
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Alpha/Tinker
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Alpha/Tinker/FFT_ConcentratedSpheres.ipf

    r936 r942  
    315315        fill = 10 
    316316        rad = 100 
    317         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     317        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    318318        DoSpheresCalcFFTPanel(num,qMin,qMax) 
    319319        FFTEraseMatrixButtonProc("") 
    320320 
    321321        rad = 80 
    322         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     322        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    323323        DoSpheresCalcFFTPanel(num,qMin,qMax) 
    324324        FFTEraseMatrixButtonProc("") 
    325325 
    326326        rad = 70 
    327         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     327        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    328328        DoSpheresCalcFFTPanel(num,qMin,qMax) 
    329329        FFTEraseMatrixButtonProc("") 
    330330 
    331331        rad = 50 
    332         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     332        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    333333        DoSpheresCalcFFTPanel(num,qMin,qMax) 
    334334        FFTEraseMatrixButtonProc("") 
    335335 
    336336        rad = 30 
    337         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     337        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    338338        DoSpheresCalcFFTPanel(num,qMin,qMax) 
    339339        FFTEraseMatrixButtonProc("") 
     
    343343        fill = 10 
    344344        rad = 150 
    345         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     345        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    346346        DoBinnedSpheresCalcFFTPanel(num,qMin,qMax) 
    347347        FFTEraseMatrixButtonProc("") 
    348348         
    349349        rad = 120 
    350         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     350        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    351351        DoBinnedSpheresCalcFFTPanel(num,qMin,qMax) 
    352352        FFTEraseMatrixButtonProc("") 
    353353 
    354354        rad = 100 
    355         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     355        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    356356        DoBinnedSpheresCalcFFTPanel(num,qMin,qMax) 
    357357        FFTEraseMatrixButtonProc("") 
    358358 
    359359        rad = 80 
    360         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     360        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    361361        DoBinnedSpheresCalcFFTPanel(num,qMin,qMax) 
    362362        FFTEraseMatrixButtonProc("") 
    363363 
    364364        rad = 50 
    365         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     365        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    366366        DoBinnedSpheresCalcFFTPanel(num,qMin,qMax) 
    367367        FFTEraseMatrixButtonProc("") 
     
    371371        fill = 30 
    372372        rad = 150 
    373         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     373        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    374374        fill = 20 
    375375        rad = 100 
    376         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
    377         fill = 10 
    378         rad = 50 
    379         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     376        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
     377        fill = 10 
     378        rad = 50 
     379        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    380380        DoBinnedSLDCalcFFTPanel(num,qMin,qMax) 
    381381        FFTEraseMatrixButtonProc("") 
     
    383383        fill = 30 
    384384        rad = 120 
    385         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     385        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    386386        fill = 20 
    387387        rad = 100 
    388         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
    389         fill = 10 
    390         rad = 50 
    391         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     388        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
     389        fill = 10 
     390        rad = 50 
     391        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    392392        DoBinnedSLDCalcFFTPanel(num,qMin,qMax) 
    393393        FFTEraseMatrixButtonProc("") 
     
    395395        fill = 30 
    396396        rad = 100 
    397         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     397        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    398398        fill = 20 
    399399        rad = 70 
    400         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
    401         fill = 10 
    402         rad = 50 
    403         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     400        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
     401        fill = 10 
     402        rad = 50 
     403        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    404404        DoBinnedSLDCalcFFTPanel(num,qMin,qMax) 
    405405        FFTEraseMatrixButtonProc("") 
     
    407407        fill = 30 
    408408        rad = 80 
    409         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     409        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    410410        fill = 20 
    411411        rad = 70 
    412         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
    413         fill = 10 
    414         rad = 50 
    415         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     412        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
     413        fill = 10 
     414        rad = 50 
     415        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    416416        DoBinnedSLDCalcFFTPanel(num,qMin,qMax) 
    417417        FFTEraseMatrixButtonProc("") 
     
    419419        fill = 30 
    420420        rad = 50 
    421         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     421        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    422422        fill = 20 
    423423        rad = 40 
    424         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     424        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    425425        fill = 10 
    426426        rad = 30 
    427         FillSphereRadius(mat,grid,rad,xc,yc,zc,fill) 
     427        FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
    428428        DoBinnedSLDCalcFFTPanel(num,qMin,qMax) 
    429429        FFTEraseMatrixButtonProc("") 
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Alpha/Tinker/FFT_Cubes.ipf

    r936 r942  
    8585Function fDoFFT() 
    8686         
    87         Wave mat=mat 
     87        Wave mat=root:mat 
    8888        Variable t0,t1 
    8989         
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Alpha/Tinker/FFT_Cylinder_Fills.ipf

    r936 r942  
    4848        WAVE numConnection3D = numConnection3D 
    4949        WAVE/T connectedTo3D = connectedTo3D 
    50         WAVE mat=mat 
     50        WAVE mat=root:mat 
    5151        Variable num=numpnts(x3d),ii=0 
    5252        Variable matSize=DimSize(mat,0),jj 
     
    9797        WAVE numConnection3D = numConnection3D 
    9898        WAVE/T connectedTo3D = connectedTo3D 
    99         WAVE mat = mat 
     99        WAVE mat = root:mat 
    100100         
    101101        for(ii=1;ii<num;ii+=1)          //[0] point is the test point, dist == 0 
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Alpha/Tinker/FFT_FillMatrixShapes.ipf

    r849 r942  
    7777//                                      endif 
    7878                                endif 
     79                        endfor 
     80                endfor 
     81        endfor 
     82         
     83        return(0)        
     84End 
     85 
     86//grid is the size of each voxel in the matrix in angstroms (grid^3 is the volume) 
     87//radius is the real-space radius that you want the sphere to be 
     88// 
     89// Now enforces periodic boundary conditions 
     90Function FillSphereRadiusPeriodic(mat,grid,rad,xc,yc,zc,fill) 
     91        WAVE mat 
     92        Variable grid,rad,xc,yc,zc,fill 
     93         
     94        Variable ii,jj,kk,dik,numVox 
     95        Variable x1,y1,z1 
     96        Variable nDimx,nDimy,nDimz 
     97 
     98        numVox= round(rad/grid*3)               //*3 for extra room, *2 is diam 
     99         
     100        nDimx=DimSize(mat,0)-1 
     101        nDimy=DimSize(mat,1)-1 
     102        nDimz=DimSize(mat,2)-1 
     103         
     104// keep the bounding box within bounds   
     105//      x1 = (xc >= numVox) ? (xc-numVox) : 0 
     106//      x2 = (xc + numVox) <= numx ? (xc + numVox) : numx 
     107//      y1 = (yc >= numVox) ? (yc-numVox) : 0 
     108//      y2 = (yc + numVox) <= numy ? (yc + numVox) : numy 
     109//      z1 = (zc >= numVox) ? (zc-numVox) : 0 
     110//      z2 = (zc + numVox) <= numz ? (zc + numVox) : numz 
     111 
     112 
     113        for(ii=xc-numVox;ii<xc+numVox;ii+=1) 
     114                for(jj=yc-numVox;jj<yc+numVox;jj+=1) 
     115                        for(kk=zc-numVox;kk<zc+numVox;kk+=1) 
     116                                //calculate the distance, even if it's off the matrix 
     117                                dik=sqrt( (ii-xc)^2+(jj-yc)^2+(kk-zc)^2 )*grid 
     118                                if(dik<=rad) 
     119                                        //then if it's part of the sphere, get the voxel in bounds before filling 
     120                                        x1=ii 
     121                                        y1=jj 
     122                                        z1=kk 
     123                                        if( (ii>nDimx) || (ii<0) ) 
     124                                                x1 = abs(nDimx+1 - abs(x1)) 
     125                                        endif 
     126                                        if( (jj>nDimy) || (jj<0) ) 
     127                                                y1 = abs(nDimy+1 - abs(y1)) 
     128                                        endif 
     129                                        if( (kk>nDimz) || (kk<0) ) 
     130                                                z1 = abs(nDimz+1 - abs(z1)) 
     131                                        endif 
     132                                 
     133                                        mat[x1][y1][z1] = fill 
     134 
     135 
     136                                endif           //if dist < rad 
    79137                        endfor 
    80138                endfor 
     
    233291//  
    234292// !! this does not check for overlap!!! 
    235 Function  SphereAtEachPoint(mat,rad,pd) 
     293Function SphereAtEachPoint(mat,rad,pd,fill) 
    236294        Wave mat 
    237         Variable rad,pd 
     295        Variable rad,pd,fill 
    238296         
    239297        Wave x3d=x3d 
     
    251309                        rad = meanRad + gnoise(pd*meanRad) 
    252310                endif 
    253                 FillSphereRadius(mat,grid,rad,x3d[ii],y3d[ii],z3d[ii],1) 
     311                FillSphereRadiusPeriodic(mat,grid,rad,x3d[ii],y3d[ii],z3d[ii],fill) 
    254312        endfor   
    255313         
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Alpha/Tinker/FFT_FillTests.ipf

    r936 r942  
    3535        fill2 = trunc(rho2/FFT_delRho) 
    3636         
    37         FillSphereRadius(m,FFT_T,radius1,ctr,ctr,ctr,fill1) 
    38         FillSphereRadius(m,FFT_T,radius2,ctr+separation/FFT_T,ctr,ctr,fill2) 
     37        FillSphereRadiusPeriodic(m,FFT_T,radius1,ctr,ctr,ctr,fill1) 
     38        FillSphereRadiusPeriodic(m,FFT_T,radius2,ctr+separation/FFT_T,ctr,ctr,fill2) 
    3939        return(0) 
    4040End 
     
    7777        fill2 = trunc(rho2/FFT_delRho) 
    7878         
    79         FillSphereRadius(m,FFT_T,radius2,ctr,ctr,ctr,fill2) 
    80         FillSphereRadius(m,FFT_T,radius1,ctr,ctr,ctr,fill1) 
     79        FillSphereRadiusPeriodic(m,FFT_T,radius2,ctr,ctr,ctr,fill2) 
     80        FillSphereRadiusPeriodic(m,FFT_T,radius1,ctr,ctr,ctr,fill1) 
    8181        return(0) 
    8282End 
     
    124124        fill3 = trunc(rhoshel3/FFT_delRho) 
    125125         
    126         FillSphereRadius(m,FFT_T,rcore+thick1+thick2+thick3,ctr,ctr,ctr,fill3)          //outer size (shell 3) 
    127         FillSphereRadius(m,FFT_T,rcore+thick1+thick2,ctr,ctr,ctr,fill2)         //outer size (shell 2) 
    128         FillSphereRadius(m,FFT_T,rcore+thick1,ctr,ctr,ctr,fill1)                //outer size (shell 1) 
    129         FillSphereRadius(m,FFT_T,rcore,ctr,ctr,ctr,fillc)               //core 
     126        FillSphereRadiusPeriodic(m,FFT_T,rcore+thick1+thick2+thick3,ctr,ctr,ctr,fill3)          //outer size (shell 3) 
     127        FillSphereRadiusPeriodic(m,FFT_T,rcore+thick1+thick2,ctr,ctr,ctr,fill2)         //outer size (shell 2) 
     128        FillSphereRadiusPeriodic(m,FFT_T,rcore+thick1,ctr,ctr,ctr,fill1)                //outer size (shell 1) 
     129        FillSphereRadiusPeriodic(m,FFT_T,rcore,ctr,ctr,ctr,fillc)               //core 
    130130        return(0) 
    131131End 
     
    176176//      (1,-1,-1) 
    177177         
    178         FillSphereRadius(m,FFT_T,radius1,ctr+separation/FFT_T,ctr+separation/FFT_T,ctr+separation/FFT_T,fill1) 
    179         FillSphereRadius(m,FFT_T,radius1,ctr-separation/FFT_T,ctr-separation/FFT_T,ctr+separation/FFT_T,fill2) 
    180         FillSphereRadius(m,FFT_T,radius1,ctr-separation/FFT_T,ctr+separation/FFT_T,ctr-separation/FFT_T,fill3) 
    181         FillSphereRadius(m,FFT_T,radius1,ctr+separation/FFT_T,ctr-separation/FFT_T,ctr-separation/FFT_T,fill4) 
     178        FillSphereRadiusPeriodic(m,FFT_T,radius1,ctr+separation/FFT_T,ctr+separation/FFT_T,ctr+separation/FFT_T,fill1) 
     179        FillSphereRadiusPeriodic(m,FFT_T,radius1,ctr-separation/FFT_T,ctr-separation/FFT_T,ctr+separation/FFT_T,fill2) 
     180        FillSphereRadiusPeriodic(m,FFT_T,radius1,ctr-separation/FFT_T,ctr+separation/FFT_T,ctr-separation/FFT_T,fill3) 
     181        FillSphereRadiusPeriodic(m,FFT_T,radius1,ctr+separation/FFT_T,ctr-separation/FFT_T,ctr-separation/FFT_T,fill4) 
    182182        return(0) 
    183183End 
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Alpha/Tinker/FFT_Fit_MixedDumbbell.ipf

    r844 r942  
    115115        fill2 = trunc(rho2/FFT_delRho) 
    116116         
    117         FillSphereRadius(m,FFT_T,radius1,ctr,ctr,ctr,fill1) 
    118         FillSphereRadius(m,FFT_T,radius2,ctr+separation/FFT_T,ctr,ctr,fill2) 
     117        FillSphereRadiusPeriodic(m,FFT_T,radius1,ctr,ctr,ctr,fill1) 
     118        FillSphereRadiusPeriodic(m,FFT_T,radius2,ctr+separation/FFT_T,ctr,ctr,fill2) 
    119119         
    120120// set up for the calculation 
     
    212212//      fill2 = trunc(rho2/FFT_delRho) 
    213213//       
    214 //      FillSphereRadius(m,FFT_T,radius1,ctr,ctr,ctr,fill1) 
    215 //      FillSphereRadius(m,FFT_T,radius2,ctr+separation/FFT_T,ctr,ctr,fill2) 
     214//      FillSphereRadiusPeriodic(m,FFT_T,radius1,ctr,ctr,ctr,fill1) 
     215//      FillSphereRadiusPeriodic(m,FFT_T,radius2,ctr+separation/FFT_T,ctr,ctr,fill2) 
    216216//       
    217217//End 
     
    254254//      fill2 = trunc(rho2/FFT_delRho) 
    255255//       
    256 //      FillSphereRadius(m,FFT_T,radius2,ctr,ctr,ctr,fill2) 
    257 //      FillSphereRadius(m,FFT_T,radius1,ctr,ctr,ctr,fill1) 
     256//      FillSphereRadiusPeriodic(m,FFT_T,radius2,ctr,ctr,ctr,fill2) 
     257//      FillSphereRadiusPeriodic(m,FFT_T,radius1,ctr,ctr,ctr,fill1) 
    258258//       
    259259//End 
     
    301301//      fill3 = trunc(rhoshel3/FFT_delRho) 
    302302//       
    303 //      FillSphereRadius(m,FFT_T,rcore+thick1+thick2+thick3,ctr,ctr,ctr,fill3)          //outer size (shell 3) 
    304 //      FillSphereRadius(m,FFT_T,rcore+thick1+thick2,ctr,ctr,ctr,fill2)         //outer size (shell 2) 
    305 //      FillSphereRadius(m,FFT_T,rcore+thick1,ctr,ctr,ctr,fill1)                //outer size (shell 1) 
    306 //      FillSphereRadius(m,FFT_T,rcore,ctr,ctr,ctr,fillc)               //core 
     303//      FillSphereRadiusPeriodic(m,FFT_T,rcore+thick1+thick2+thick3,ctr,ctr,ctr,fill3)          //outer size (shell 3) 
     304//      FillSphereRadiusPeriodic(m,FFT_T,rcore+thick1+thick2,ctr,ctr,ctr,fill2)         //outer size (shell 2) 
     305//      FillSphereRadiusPeriodic(m,FFT_T,rcore+thick1,ctr,ctr,ctr,fill1)                //outer size (shell 1) 
     306//      FillSphereRadiusPeriodic(m,FFT_T,rcore,ctr,ctr,ctr,fillc)               //core 
    307307//       
    308308//End 
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Alpha/Tinker/FFT_Panel.ipf

    r936 r942  
    110110        SetVariable FFTSetVar_4,limits={0,0,0},value= FFT_estTime,noedit= 1,live= 1,format="%d" 
    111111        Button FFTButton_9,pos={200,400},size={100,20},proc=FFT_Get2DSlice,title="Get 2D Slice" 
    112         Button FFTButton_10,pos={169,156},size={130,20},proc=FFT_TransposeMat,title="Transpose Matrix" 
    113         Button FFTButton_11,pos={169,189},size={130,20},proc=FFT_RotateMat,title="Rotate Matrix" 
    114         Button FFTButton_12,pos={168,219},size={130,20},proc=FFT_AddRotatedObject,title="Add Rotated Obj" 
    115         Button FFTButton_12,disable=2           // hide this button 
     112 
     113        Button FFTButton_19,pos={168,150},size={130,20},proc=FFT_ChangeMatrixValuesButton,title="Replace Voxels" 
     114        Button FFTButton_12,pos={168,175},size={130,20},proc=FFT_ReplaceSolventButton,title="Replace Solvent" 
     115        Button FFTButton_11,pos={169,200},size={130,20},proc=FFT_RotateMat,title="Rotate Matrix" 
     116        Button FFTButton_10,pos={169,225},size={130,20},proc=FFT_TransposeMat,title="Transpose Matrix" 
     117 
    116118        Button FFTButton_13,pos={14,109},size={120,20},proc=FFTFillSolventMatrixProc,title="Solvent Matrix" 
    117119        SetVariable FFTSetVar_5,pos={155,111},size={150,15},title="Solvent SLD (10^-7)" 
     
    591593        fill = solventSLD 
    592594         
    593         WAVE mat = mat 
     595        WAVE mat = root:mat 
    594596        Variable dx,dy,dz,nx,ny,nz 
    595597        dx = DimSize(mat,0) 
     
    643645End 
    644646 
     647Function FFT_ChangeMatrixValuesButton(ctrlName) 
     648        String ctrlName 
     649         
     650        Execute "ChangeMatrixValues()" 
     651 
     652end 
     653 
     654Function FFT_ReplaceSolventButton(ctrlname) 
     655        String ctrlName 
     656         
     657        Execute "ReplaceSolvent()" 
     658end 
    645659 
    646660Function FFT_MakeMatrixButtonProc(ctrlName) : ButtonControl 
     
    670684End 
    671685 
    672 Proc FFTDrawSphereProc(matStr,rad,xc,yc,zc,fill)  
     686Proc FFTDrawSphereProc(matStr,rad,xc,yc,zc,fill,periodic)  
    673687        String matStr="mat" 
    674         Variable rad=25,xc=50,yc=50,zc=50,fill=10 
     688        Variable rad=25,xc=50,yc=50,zc=50,fill=10,periodic=1 
    675689        Prompt matStr,"the wave"                //,popup,WaveList("*",";","") 
    676690        Prompt rad,"enter real radius (A)" 
     
    679693        Prompt zc,"enter the Z-center" 
    680694        Prompt fill,"fill SLD value" 
     695        Prompt periodic,"enter 1 for periodic, 0 for non-periodic fill" 
    681696         
    682697        Variable grid=root:FFT_T 
    683698         
    684         FillSphereRadius($matStr,grid,rad,xc,yc,zc,fill) 
    685          
     699        if(periodic) 
     700                FillSphereRadiusPeriodic($matStr,grid,rad,xc,yc,zc,fill) 
     701        else 
     702                FillSphereRadius($matStr,grid,rad,xc,yc,zc,fill) 
     703        endif 
    686704End 
    687705 
     
    881899End 
    882900 
     901// replaces specified values 
     902Proc ChangeMatrixValues(old,new) 
     903        Variable old,new 
     904         
     905        mat = (mat==old) ? new : mat 
     906        // sequence of steps to get the gizmo to update the display correctly 
     907        RemoveFromGizmo/N=Gizmo_VoxelMat object=Voxelgram0 
     908        RemoveFromGizmo/N=Gizmo_VoxelMat displayItem=axes0 
     909        AppendToGizmo/N=Gizmo_VoxelMat voxelgram=root:mat,name=voxelgram0 
     910        ModifyGizmo/N=Gizmo_VoxelMat  setDisplayList=-1, object=voxelgram0 
     911        ModifyGizmo/N=Gizmo_VoxelMat  setDisplayList=-1, object=axes0           //so that the axes are drawn last 
     912        ModifyGizmo ModifyObject=voxelgram0 property={ pointSize,3} 
     913 
     914         
     915        ColorizeGizmo() 
     916End 
     917 
     918 
     919 
     920// replaces the solvent value and updates the global 
     921Proc ReplaceSolvent(newSolv) 
     922        Variable newSolv 
     923         
     924        Variable solv = root:FFT_SolventSLD 
     925         
     926        mat = (mat==solv) ? newSolv : mat 
     927         
     928        root:FFT_SolventSLD = newSolv 
     929 
     930// sequence of steps to get the gizmo to update the display correctly 
     931        RemoveFromGizmo/N=Gizmo_VoxelMat object=Voxelgram0 
     932        RemoveFromGizmo/N=Gizmo_VoxelMat displayItem=axes0 
     933        AppendToGizmo/N=Gizmo_VoxelMat voxelgram=root:mat,name=voxelgram0 
     934        ModifyGizmo/N=Gizmo_VoxelMat  setDisplayList=-1, object=voxelgram0 
     935        ModifyGizmo/N=Gizmo_VoxelMat  setDisplayList=-1, object=axes0           //so that the axes are drawn last 
     936        ModifyGizmo ModifyObject=voxelgram0 property={ pointSize,3} 
     937 
     938 
     939        ColorizeGizmo() 
     940End 
     941 
     942 
    883943//overwrites any existing matrix 
    884944// matrix is byte, to save space 
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Alpha/Tinker/FFT_Plane_Fills.ipf

    r836 r942  
    3838Function MakeTactoid() 
    3939 
    40         WAVE mat=mat 
     40        WAVE mat=root:mat 
    4141        Variable ii,trim=10 
    4242        Variable num=DimSize(mat,0) 
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Alpha/Tinker/FFT_VoxelDisplay.ipf

    r941 r942  
    1313        ModifyGizmo startRecMacro 
    1414        AppendToGizmo voxelgram=root:mat,name=voxelgram0 
    15         ModifyGizmo ModifyObject=voxelgram0 property={ valueRGBA,0,10,1.5259e-05,0.195544,0.8,0.15} 
     15//      ModifyGizmo ModifyObject=voxelgram0 property={ valueRGBA,0,10,1.5259e-05,0.195544,0.8,0.15} 
    1616        ModifyGizmo ModifyObject=voxelgram0 property={ mode,0} 
    1717        ModifyGizmo ModifyObject=voxelgram0 property={ pointSize,3} 
Note: See TracChangeset for help on using the changeset viewer.