Changeset 4650 for trunk


Ignore:
Timestamp:
Nov 5, 2020 1:59:07 PM (13 months ago)
Author:
vondreele
Message:

fix the 'N' & 'P' key operation in structure drawings. They now properly increment & decrement Atom, Draw Atom & Map Peak tables while centering the item in the drawing.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIplot.py

    r4649 r4650  
    348348            self.canvas = wx.glcanvas.GLCanvas(self,-1,attribList=attribs,**kwargs)
    349349            GL.glEnable(GL.GL_NORMALIZE)
    350         #GSASIIpath.IPyBreak()
    351350        # create GL context
    352351        i,j= wx.__version__.split('.')[0:2]
     
    81118110    def OnKey(event):           #on key UP!!
    81128111        keyBox = False
     8112        NPkey = False
    81138113        try:
    81148114            keyCode = event.GetKeyCode()
     
    81198119            keyBox = True
    81208120            key = str(event.key).upper()
    8121         indx = drawingData['selectedAtoms']
    8122         cx,ct = drawingData['atomPtrs'][:2]
     8121#        indx = drawingData['selectedAtoms']
    81238122        if key in ['C']:
    81248123            drawingData['viewPoint'] = [np.array([.5,.5,.5]),[0,0]]
     
    81348133            SetViewDirText(drawingData['viewDir'])
    81358134            G2frame.G2plotNB.status.SetStatusText('New quaternion: %.2f+, %.2fi+ ,%.2fj+, %.2fk'%(Q[0],Q[1],Q[2],Q[3]),1)
    8136         elif key in ['N']:
    8137             drawAtoms = drawingData['Atoms']
    8138             if not len(drawAtoms):      #no atoms
     8135        elif key in ['N','P',]:
     8136            if G2frame.phaseDisplay.GetPageText(getSelection()) == 'Map peaks':
     8137                cx = 1
     8138                ct = 0
     8139                atoms = data.get('Map Peaks',[])
     8140            elif G2frame.phaseDisplay.GetPageText(getSelection()) == 'Draw Atoms':
     8141                cx,ct = drawingData['atomPtrs'][:2]
     8142                atoms = drawingData['Atoms']
     8143            elif G2frame.phaseDisplay.GetPageText(getSelection()) == 'Atoms':
     8144                cx,ct = data['General']['AtomPtrs'][:2]
     8145                atoms = data['Atoms']
     8146            else:
     8147                return
     8148            if not len(atoms):      #no atoms
    81398149                return
    81408150            pI = drawingData['viewPoint'][1]
    81418151            if not len(pI):
    81428152                pI = [0,0]
    8143             if indx:
    8144                 try:
    8145                     pI[0] = indx[pI[1]]
    8146                     Tx,Ty,Tz = drawAtoms[pI[0]][cx:cx+3]
    8147                 except IndexError:
    8148                     pI = [0,0]
    8149                     Tx,Ty,Tz = drawAtoms[pI[0]][cx:cx+3]
     8153            if key in ['N',]:
    81508154                pI[1] += 1
    8151                 pI[1] %= len(indx)
    8152                 txt = ' in selection'
    81538155            else:
    8154                 pI[0] += 1
    8155                 pI[0] %= len(drawAtoms)
    8156                 Tx,Ty,Tz = drawAtoms[pI[0]][cx:cx+3]
    8157                 txt = ''
     8156                pI[1] -= 1                   
     8157            pI[1] %= len(atoms)
     8158            Tx,Ty,Tz = atoms[pI[1]][cx:cx+3]
     8159            txt = ''
     8160            SetSelectedAtoms(pI[1])
    81588161            drawingData['viewPoint'] = [np.array([Tx,Ty,Tz]),pI]
    81598162            SetViewPointText(drawingData['viewPoint'][0])
    8160             G2frame.G2plotNB.status.SetStatusText('View point at atom '+drawAtoms[pI[0]][ct-1]+txt,1)
     8163            if ct: G2frame.G2plotNB.status.SetStatusText('View point at atom '+atoms[pI[0]][ct-1]+txt,1)
     8164            NPkey = True
    81618165           
    81628166        elif key in ['K'] and generalData['Map']['MapType']:
     
    81738177            dlg.Destroy()
    81748178               
    8175         elif key in ['P']:
    8176             drawAtoms = drawingData['Atoms']
    8177             if not len(drawAtoms):      #no atoms
    8178                 return
    8179             pI = drawingData['viewPoint'][1]
    8180             if not len(pI):
    8181                 pI = [0,0]
    8182             if indx:
    8183                 try:
    8184                     pI[0] = indx[pI[1]]
    8185                     Tx,Ty,Tz = drawAtoms[pI[0]][cx:cx+3]
    8186                 except IndexError:
    8187                     pI = [0,0]
    8188                     Tx,Ty,Tz = drawAtoms[pI[0]][cx:cx+3]
    8189                 pI[1] -= 1
    8190                 pI[1] %= len(indx)
    8191                 txt = ' in selection'
    8192             else:
    8193                 pI[0] -= 1
    8194                 pI[0] %= len(drawAtoms)
    8195                 Tx,Ty,Tz = drawAtoms[pI[0]][cx:cx+3]
    8196                 txt = ''
    8197             drawingData['viewPoint'] = [np.array([Tx,Ty,Tz]),pI]
    8198             SetViewPointText(drawingData['viewPoint'][0])           
    8199             G2frame.G2plotNB.status.SetStatusText('View point at atom '+drawAtoms[pI[0]][ct-1]+txt,1)
    82008179        elif key in ['U','D','L','R'] and mapData['Flip'] == True:
    82018180            dirDict = {'U':[0,1],'D':[0,-1],'L':[-1,0],'R':[1,0]}
     
    82488227                OnKeyPressed(event)
    82498228            return
    8250         Draw('key up')
     8229        Draw('key up',NPkey=NPkey)
    82518230       
    82528231    def OnKeyPressed(event):    #On key down for repeating operation - used to change tau...
     
    91629141            RenderBonds(ax,ay,az,bondData[i],bondR,Color[i])
    91639142               
    9164     def Draw(caller='',Fade=[]):
     9143    def Draw(caller='',Fade=[],NPkey=False):
    91659144        vdWRadii = generalData['vdWRadii']
    91669145        mapData = generalData['Map']
     
    92679246            else:
    92689247                bndColor = atColor
    9269             if iat in Ind and G2frame.phaseDisplay.GetPageText(getSelection()) != 'Map peaks':
     9248            if iat in Ind and (G2frame.phaseDisplay.GetPageText(getSelection()) != 'Map peaks') and not NPkey:
    92709249                atColor = np.array(Gr)/255.
    92719250                bndColor = atColor
     
    97629741       
    97639742    def Draw(caller=''):
    9764 #useful debug?       
    9765 #        if caller:
    9766 #            print caller
    9767 # end of useful debug
    97689743        cPos = defaults['cameraPos']
    97699744        VS = np.array(Page.canvas.GetSize())
Note: See TracChangeset for help on using the changeset viewer.