Changeset 4494


Ignore:
Timestamp:
Jun 18, 2020 10:10:00 AM (3 years ago)
Author:
vondreele
Message:

make voids permanent,add show options for map & voids, draw voids as blue dots

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIphsGUI.py

    r4493 r4494  
    14671467            'showABC':True,'selectedAtoms':[],'Atoms':[],'oldxy':[],'magMult':1.0,
    14681468            'bondList':{},'viewDir':[1,0,0],'Plane':[[0,0,1],False,False,0.0,[255,255,0]],
    1469             'peakMoveView':True,'PeakDistRadius':0.0,
    1470             'atomsExpandRadius':5.,'atomsDistRadius':2.5,
     1469            'peakMoveView':True,'PeakDistRadius':0.0,'showVoids':False,'showMap':False,
     1470            'atomsExpandRadius':5.,'atomsDistRadius':2.5,'Voids':[],
    14711471        }
    14721472    for key in defaultDrawing:
     
    73567356        if 'SymFade' not in drawingData:
    73577357            drawingData['SymFade'] = False
     7358        if 'Voids' not in drawingData:
     7359            drawingData['Voids'] = []
     7360            drawinData['showVoids'] = False
     7361            drawingData['showMap'] = False
    73587362        cx,ct,cs,ci = [0,0,0,0]
    73597363        if generalData['Type'] in ['nuclear','faulted',]:
     
    83978401        rMax = max(data['General']['vdWRadii'])
    83988402        cell = data['General']['Cell'][1:7]
     8403        drawingData = data['Drawing']
    83998404        voidDlg = wx.Dialog(G2frame,wx.ID_ANY,
    84008405                    'Void computation parameters',
     
    84078412        voidPar = {'a':1., 'b':1., 'c':1., 'grid':.25, 'probe':0.5}
    84088413        for i in ('a', 'b', 'c'):
    8409             mainSizer.Add(
    8410                 G2G.G2SliderWidget(voidDlg,voidPar,i,
    8411                                'Max '+i+' value: ',0.,xmax,100))
    8412            
     8414            mainSizer.Add(G2G.G2SliderWidget(voidDlg,voidPar,i,
     8415                'Max '+i+' value: ',0.,xmax,100))
    84138416        hSizer = wx.BoxSizer(wx.HORIZONTAL)
    84148417        hSizer.Add(wx.StaticText(voidDlg,wx.ID_ANY,'Grid spacing (A)'))
     
    84408443        voidDlg.Destroy()
    84418444        if res != wx.ID_OK: return
    8442         res = VoidMap(data, voidPar['a'], voidPar['b'], voidPar['c'],
     8445        drawingData['Voids'] = VoidMap(data, voidPar['a'], voidPar['b'], voidPar['c'],
    84438446                          voidPar['grid'],voidPar['probe'])
    8444         G2plt.PlotStructure(G2frame,data,
    8445                         voidMap=res,voidRadius=voidPar['probe']) 
     8447        drawingData['showVoids'] = True
     8448        G2plt.PlotStructure(G2frame,data)
    84468449       
    84478450################################################################################
     
    86288631            def OnSymFade(event):
    86298632                drawingData['SymFade'] = symFade.GetValue()
     8633                G2plt.PlotStructure(G2frame,data)
     8634               
     8635            def OnShowMap(event):
     8636                drawingData['showMap'] = showMap.GetValue()
     8637                G2plt.PlotStructure(G2frame,data)
     8638               
     8639            def OnShowVoids(event):
     8640                drawingData['showVoids'] = showVoids.GetValue()
    86308641                G2plt.PlotStructure(G2frame,data)
    86318642               
     
    87648775            symFade.SetValue(drawingData['SymFade'])
    87658776            line3Sizer.Add(symFade,0,WACV)
     8777            showMap = wx.CheckBox(drawOptions,-1,label=' Show density map?')
     8778            showMap.Bind(wx.EVT_CHECKBOX, OnShowMap)
     8779            showMap.SetValue(drawingData['showMap'])
     8780            line3Sizer.Add(showMap,0,WACV)
     8781            showVoids = wx.CheckBox(drawOptions,-1,label=' Show void map?')
     8782            showVoids.Bind(wx.EVT_CHECKBOX, OnShowVoids)
     8783            showVoids.SetValue(drawingData['showVoids'])
     8784            line3Sizer.Add(showVoids,0,WACV)
    87668785            showSizer.Add(line3Sizer)
    87678786           
     
    88878906        mainSizer.Add(PlaneSizer(),0,)
    88888907        G2G.HorizontalLine(mainSizer,drawOptions)
    8889         mainSizer.Add(wx.StaticText(drawOptions,wx.ID_ANY,
    8890                                         'On map peak selection:'),0,WACV)
    8891         mainSizer.Add(G2G.G2CheckBox(drawOptions,'Move view point',
    8892                                          drawingData,'peakMoveView'))
     8908        mainSizer.Add(wx.StaticText(drawOptions,wx.ID_ANY,'On map peak selection:'),0,WACV)
     8909        mainSizer.Add(G2G.G2CheckBox(drawOptions,'Move view point',drawingData,'peakMoveView'))
    88938910        mapSizer = wx.FlexGridSizer(0,3,5,5)
    88948911        mapSizer.Add(wx.StaticText(drawOptions,wx.ID_ANY,'Show Map points within:'),0,WACV)
    88958912        mapSizer.Add(G2G.ValidatedTxtCtrl(drawOptions,drawingData,'PeakDistRadius',
    8896                             xmin=0.0,xmax=5.0,nDig=(10,1),size=(50,-1)))
     8913            xmin=0.0,xmax=5.0,nDig=(10,1),size=(50,-1)))
    88978914        mapSizer.Add(wx.StaticText(drawOptions,wx.ID_ANY,u"\u212B"),0,WACV)
    88988915        mapSizer.Add(wx.StaticText(drawOptions,wx.ID_ANY,'Show atoms within:'),0,WACV)
    88998916        mapSizer.Add(G2G.ValidatedTxtCtrl(drawOptions,drawingData,'atomsExpandRadius',
    8900                             xmin=0.0,xmax=15.0,nDig=(10,1),size=(50,-1)))
     8917            xmin=0.0,xmax=15.0,nDig=(10,1),size=(50,-1)))
    89018918        mapSizer.Add(wx.StaticText(drawOptions,wx.ID_ANY,u"\u212B"),0,WACV)
    89028919        mapSizer.Add(wx.StaticText(drawOptions,wx.ID_ANY,'Label distance to atoms within:'),0,WACV)
    89038920        mapSizer.Add(G2G.ValidatedTxtCtrl(drawOptions,drawingData,'atomsDistRadius',
    8904                             xmin=0.0,xmax=15.0,nDig=(10,1),size=(50,-1)))
     8921            xmin=0.0,xmax=15.0,nDig=(10,1),size=(50,-1)))
    89058922        mapSizer.Add(wx.StaticText(drawOptions,wx.ID_ANY,u"\u212B"),0,WACV)
    89068923        mainSizer.Add(mapSizer)
     
    1188411901        data['Drawing']['contourLevel'] = 1.
    1188511902        data['Drawing']['mapSize'] = 10.
     11903        data['Drawing']['showMap'] = True
    1188611904        print (dim+mapData['MapType']+' computed: rhomax = %.3f rhomin = %.3f sigma = %.3f'%(np.max(mapData['rho']),np.min(mapData['rho']),mapSig))
    1188711905        UpdateDrawAtoms()
     
    1189111909        generalData = data['General']
    1189211910        generalData['Map'] = mapDefault.copy()
     11911        data['Drawing']['showMap'] = False
    1189311912        G2plt.PlotStructure(G2frame,data)
    1189411913       
     
    1202812047        data['Drawing']['contourLevel'] = 1.
    1202912048        data['Drawing']['mapSize'] = 10.
     12049        data['Drawing']['showMap'] = True
    1203012050        print (' Charge flip map computed: rhomax = %.3f rhomin = %.3f sigma = %.3f'%(np.max(mapData['rho']),np.min(mapData['rho']),mapSig))
    1203112051        if mapData['Rcf'] < 99.:
  • trunk/GSASIIplot.py

    r4491 r4494  
    79287928################################################################################
    79297929           
    7930 def PlotStructure(G2frame,data,firstCall=False,pageCallback=None,
    7931                     voidMap=[],voidRadius=.1):
     7930def PlotStructure(G2frame,data,firstCall=False,pageCallback=None):
    79327931    '''Crystal structure plotting package. Can show structures as balls, sticks, lines,
    79337932    thermal motion ellipsoids and polyhedra. Magnetic moments shown as black/red
     
    79427941      update items on the parent page. Currently implemented for
    79437942      RB Models tab only
    7944     :param list voidMap: a list of coordinates to be plotted as small spheres
    7945     :param float voidRadius: radius of spheres drawn for void map
    79467943    '''
    79477944
     
    87138710        GL.glPopMatrix()
    87148711       
     8712    def RenderFadeSphere(x,y,z,radius,color):
     8713        fade = list(color) + [1.0,]
     8714        GL.glMaterialfv(GL.GL_FRONT_AND_BACK,GL.GL_AMBIENT_AND_DIFFUSE,fade)
     8715        GL.glShadeModel(GL.GL_FLAT)
     8716        GL.glEnable(GL.GL_BLEND)
     8717        GL.glBlendFunc(GL.GL_SRC_ALPHA,GL.GL_ONE_MINUS_SRC_ALPHA)
     8718        GL.glPushMatrix()
     8719        GL.glTranslate(x,y,z)
     8720        GL.glMultMatrixf(B4mat.T)
     8721        q = GLU.gluNewQuadric()
     8722        GLU.gluSphere(q,radius,20,10)
     8723        GL.glPopMatrix()
     8724        GL.glDisable(GL.GL_BLEND)
     8725        GL.glShadeModel(GL.GL_SMOOTH)
     8726
    87158727    def RenderDots(XYZ,RC):
    87168728        GL.glEnable(GL.GL_COLOR_MATERIAL)
     
    90949106                RenderLabel(x,y,z,'  '+atom[ct-2],radius,wxGreen,matRot)
    90959107#        glDisable(GL_BLEND)
    9096         if not FourD and len(rhoXYZ):       #no green dot map for 4D - it's wrong!
     9108        if not FourD and len(rhoXYZ) and drawingData['showMap']:       #no green dot map for 4D - it's wrong!
    90979109            RenderMap(rho,rhoXYZ,indx,Rok)
    90989110        if len(Ind) == 1 and pageName == 'Map peaks':
     
    92519263#            agg = canvas.switch_backends(Canvas)
    92529264            RenderViewPlane(msize*eplane,Zimg,width,height)
    9253         for x,y,z in voidMap:
    9254              RenderSphere(x,y,z,voidRadius,(0,1.,0))
     9265        if drawingData['showVoids']:
     9266            for x,y,z in drawingData['Voids']:
     9267                RenderFadeSphere(x,y,z,.05,(0.,0.,1.))
    92559268        try:
    92569269            if Page.context: Page.canvas.SetCurrent(Page.context)
Note: See TracChangeset for help on using the changeset viewer.