cctw  0.2.1
cctwcrystalcoordinatetransform.h
Go to the documentation of this file.
1 #ifndef CCTWCRYSTALCOORDINATETRANSFORM_H
2 #define CCTWCRYSTALCOORDINATETRANSFORM_H
3 
5 #include "cctwmatrix3x3.h"
7 
9 {
10  Q_OBJECT
11 public:
12  CctwCrystalCoordinateTransform(CctwCrystalCoordinateParameters *parms, QString name, const double *angles, QObject *parent);
13 
14 public slots:
15 
16  virtual bool hasInverse() const;
17 
19  // Transform from input to output space coordinates
21  // Back transform from output to input space coordinates
22 
23  void updateFromParameters();
24  void setCurrentFrame(double frame);
25 
26  double changeCount();
27  void report();
28 
30 
31  CctwDoubleVector3D getDetPos(double x, double y);
33  CctwDoubleVector3D pixel2qlab(double x, double y, double z);
35  CctwDoubleVector3D qlab2hkl(double qx, double qy, double qz);
37  CctwDoubleVector3D hkl2grid(double h, double k, double l);
39  CctwDoubleVector3D grid2hkl(double gx, double gy, double gz);
41  CctwDoubleVector3D hkl2qlab(double h, double k, double l);
43  CctwDoubleVector3D qlab2pixel(double qx, double qy, double qz);
45  CctwDoubleVector3D getDetPix(double x, double y, double z);
47 
48  double twoThetaAngle() { return m_TwoThetaAngle; }
49  double omegaAngle() { return m_OmegaAngle; }
50  double chiAngle() { return m_ChiAngle; }
51  double phiAngle() { return m_PhiAngle; }
52 
59 
67 
70 
71 private:
73 
76 
77  const double *m_Angles;
78 
79 public:
81  double m_OmegaAngle;
82  double m_ChiAngle;
83  double m_PhiAngle;
84 
91 
92 private:
100 
103 };
104 
105 #endif // CCTWCRYSTALCOORDINATETRANSFORM_H
CctwCrystalCoordinateParameters * m_Parms
CctwDoubleMatrix3x3 createBMatrix(const CctwUnitCell &cell) const
CctwDoubleVector3D hkl2grid(double h, double k, double l)
QString name
Definition: cctwobject.h:32
CctwDoubleVector3D getDetPos(double x, double y)
CctwDoubleVector3D pixel2qlab(double x, double y, double z)
CctwDoubleVector3D hkl2qlab(double h, double k, double l)
CctwDoubleVector3D qlab2pixel(double qx, double qy, double qz)
CctwDoubleVector3D grid2hkl(double gx, double gy, double gz)
virtual CctwDoubleVector3D forward(CctwDoubleVector3D d)
virtual CctwDoubleVector3D inverse(CctwDoubleVector3D q)
CctwCrystalCoordinateTransform(CctwCrystalCoordinateParameters *parms, QString name, const double *angles, QObject *parent)
CctwDoubleVector3D qlab2hkl(double qx, double qy, double qz)
CctwDoubleVector3D getDetPix(double x, double y, double z)