Changeset 3931


Ignore:
Timestamp:
Apr 24, 2019 3:41:44 PM (5 years ago)
Author:
vondreele
Message:

alternate settings for view direction appear to work, but still hidden option

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIphsGUI.py

    r3928 r3931  
    62856285                try:
    62866286                    Amat,Bmat = G2lat.cell2AB(generalData['Cell'][1:7])
     6287#reset view to stndard
     6288                    drawingData['viewDir'] = [0,0,1]
     6289                    drawingData['oldxy'] = []
     6290                    V0 = np.array([0,0,1])
     6291                    V = np.inner(Amat,V0)
     6292                    V /= np.sqrt(np.sum(V**2))
     6293                    A = np.arccos(np.sum(V*V0))
     6294                    Q = G2mth.AV2Q(A,[0,1,0])
     6295                    drawingData['Quaternion'] = Q
     6296#new view made here
    62876297                    VD = np.array([float(viewDir[i]) for i in range(3)])
    62886298                    VC = np.inner(Amat,VD)
     
    62936303                    VX = np.cross(VC,VB)
    62946304                    A = acosd(max((2.-np.sum((VB-VC)**2))/2.,-1.))
     6305                    if A == 0.0 and len(viewDir) == 3:
     6306                        raise ValueError        #avoid a no op
     6307#                    print('\nnew view =',viewDir)
     6308#                    print('A=%.3f, V='%A,VX)
    62956309                    QV = G2mth.AVdeg2Q(A,VX)
    62966310                    if len(viewDir) > 3:
     
    63016315                        VY0 = np.array([0.,-1.,0.])
    63026316                        if 'H' == viewDir[3].upper():
    6303                             QV = G2mth.prodQQ(QV,np.array([0.,rt2,0.,rt2]))
     6317                            QV = G2mth.prodQQ(np.array([rt2,0.,rt2,0.]),QV)     #rotate 90deg about +ve Y
    63046318                            VD = np.inner(invModel.T,VX0)
    63056319                        elif 'V' == viewDir[3].upper():
    6306                             QV = G2mth.prodQQ(QV,np.array([rt2,0.,0.,rt2]))
     6320                            QV = G2mth.prodQQ(np.array([rt2,-rt2,0.,0.]),QV)     #rotate 90deg about -ve X
    63076321                            VD = np.inner(invModel.T,VY0)
     6322#                        NAV = G2mth.Q2AVdeg(QV)
     6323#                        print('dir = %s, A= %.3f, V = '%(viewDir[3],NAV[0]),NAV[1:])
    63086324                        VD /= np.sqrt(np.sum(VD**2))
     6325#                        print('new view dir = ',VD)
    63096326                    Q = drawingData['Quaternion']
    6310                     drawingData['Quaternion'] = G2mth.prodQQ(QV,Q)
     6327                    QN = G2mth.prodQQ(Q,QV)
     6328                    drawingData['Quaternion'] = QN
    63116329                except (ValueError,IndexError):
    63126330                    VD = drawingData['viewDir']
     
    63276345                style=wx.TE_PROCESS_ENTER,size=wx.Size(140,20),name='viewDir')
    63286346            viewDir.Bind(wx.EVT_TEXT_ENTER,OnViewDir)
    6329             viewDir.Bind(wx.EVT_KILL_FOCUS,OnViewDir)
     6347#            viewDir.Bind(wx.EVT_KILL_FOCUS,OnViewDir)
    63306348            G2frame.phaseDisplay.viewDir = viewDir
    63316349            lineSizer.Add(viewDir,0,WACV)
Note: See TracChangeset for help on using the changeset viewer.