# -*- org -*-

* 5.0.0	UNRELEASED
** General
   - 5.x runtime can be co-installed with the 4.x series.
   - hkl.h contain all the Public API.
   - A clear separation between the public and private API was
     achieved, in order to propose a Long Time Support of the
     5.x series.
   - c-tap-hardness library was embeded to provide the unit test
     framework.
   - gobject-instrospection provide the binding support. Look at this
     [[https://wiki.gnome.org/action/show/Projects/GObjectIntrospection][page]] for more informations.
   - Documentation was generated with sphinx and asymptote for the figures.
   - New diffractometers added
     - E4CH (eulerian 4 circles horizontal) geometry.
     - MARS beamline (SOLEIL) eulerian 4 circles vertical geometry.
     - SOLEIL SIRIUS KAPPA
     - SOLEIL SIRIUS TURRET
   - New Pseudo Axes engines.
     - qper_qpar
   - A not yet public hkl3d library used only by the gui allow to
     compute (Bullet) and display (OpenGL) collision for model
     described using the COLLADA file format.
** Buildsystem
   - add a --disable-hkl3d flag to avoid hkl3d library compilation.
   - replace the --enable-ghkl with a --disable-gui.
   - use ./configure --help for all the options
** Gui
   - Rewriten using Gtk instead of Gtkmm, in order to minimise the
     required dependencies.
   - Added a 3D view to display diffractometers and collisions.
   - Added the K6C 3D model.
** Bindings
   - Provide the garantie via unit tests that the python API will be
     stable during all the 5.x lifetime.
   - For other languages look at [[https://wiki.gnome.org/Projects/GObjectIntrospection/][here]].

* 4.0.4	UNRELEASED
	* add the SOLEIL SIXS MED2+2 diffractometer
	  - engine: hkl
	    - mode: reflectivity.
	  - engine: qper_qpar
	* add the SOLEIL MARS diffractometer
	  - engine: qper_qpar
	* add the PETRA3 P09 EH2 diffractometer
	  - engine: qper_qpar
	* modified E6C
	  - engine: qper_qpar
	  - add modes : hkl psi_constant_horizontal, constant_mu_horizontal
	* K6C
	  - engine hkl:
	    - add the constant_incidence mode
	  - engine: qper_qpar
	* add the sphinx documentation

* 4.0.3	06-06-2010
	* remove the usage.c file to avoid a GPL2-GPL3+ incompatibility
	* update the documentation
	* fix warning catched by clang

* 4.0.2	01-06-2010
	* add the ghkl manpage and .desktop file
	* fix the ghkl quit menuitem bugs

* 4.0.1	10-05-2010
	* fix a few ghkl bugs (.ui files installation)
	* add a --enable-ghkl=[yes,no] flag to allow compiling the gui interface
	* do not forgot to link ghkl against gsl.
	* display by default the preference panel of ghkl.

* 4.0.0	14-04-2010

	* add the autotools buildsystem and remove all other systems.
	* add a GUI ghkl for testing purpose based on gtkmm.
	* add the GNU info doc
	* add the gtk-doc to document the api (work in progress)
	* new structure for the HklDetector (prepare for 2D detectors)
	* HklGeometryConfig shared between all equivalent HklGeometries.
	* fix for 64 bits computers runtime error.
	* add the GError class to report calculation errors (not yet used)
	* new way to set the UB matrix of a sample (hkl_sample_set_UB).
	* new ZAxis geometry
		- mode zaxis
		- mode reflectivity (mu = gamma)

* 3.0.1	23-10-2009

	* add the psi_constant mode to the e4cv, e6c, k4cv and k6c geometries. (thanks teresa)
	* upgrade the user guide to explain how to add a mode.
	* the horizontal modes are also valid if omega = +-PI. (e6c, k6c)
	* remove geometries with an invalid range from the list of solutions.

* 3.0.0	15-07-2009

	* Rewrote from scratch in C with the GSL library.
		- now most of pseudo axes modes are numeric.
		  So a 6 circles mode is now a real 6 circles mode.
	* Eulerian 4 circles
		- PseudoAxisEngine  "hkl": "h", "k", "l"
			* Mode "bissector"
			* Mode "constant_omega"
			* Mode "constant_chi"
			* Mode "constant_phi"
			* Mode "double_diffraction"
		- PseudoAxisEngine "psi": "psi"
			* Mode "psi"
	* Kappa 4 circles
		- PseudoAxisEngine  "hkl": "h", "k", "l"
			* Mode "bissector"
			* Mode "constant_omega"
			* Mode "constant_chi"
			* Mode "constant_phi"
			* Mode "double_diffraction"
		- PseudoAxisEngine "psi": "psi"
			* Mode "psi"
		- PseudoAxisEngien "eulerians": "omega", "chi", "phi"
			* mode "eulerians"
	* Eulerian 6 circles
		- PseudoAxisEngine  "hkl": "h", "k", "l"
			* Mode "bissector_vertical"
			* Mode "constant_omega_vertical"
			* Mode "constant_chi_vertical"
			* Mode "constant_phi_vertical"
			* Mode "double_diffraction_vertical"
			* Mode "lifting_detector"
			* Mode "bissector_horizontal"
			* Mode "double_diffraction_horizontal"
		- PseudoAxisEngine "psi": "psi"
			* Mode "psi"
	* Kappa 6 circles
		- PseudoAxisEngine  "hkl": "h", "k", "l"
			* Mode "bissector_vertical"
			* Mode "constant_omega_vertical"
			* Mode "constant_chi_vertical"
			* Mode "constant_phi_vertical"
			* Mode "double_diffraction_vertical"
			* Mode "lifting_detector"
			* Mode "bissector_horizontal"
			* Mode "constant_phi_horizontal"
			* Mode "constant_kphi_horizontal"
			* Mode "double_diffraction_horizontal"
		- PseudoAxisEngine "psi": "psi"
			* Mode "psi"
		- PseudoAxisEngien "eulerians": "omega", "chi", "phi"
			* mode "eulerians"

* 2.3.0 24-01-2007

    * Refactoring of the sample part.
      - It is now possible to create different kind of samples easily.
        - MonoCrystal type.

    * Diffractometers:
      - Eulerian 6 Circles.
      - kappa 4 Circles Vertical.
    
    * Refactoring of the PseudoAxe part.
      - Derived PseudoAxe can be created from an already existing PseudoAxe if the Geometry conversion exist.
      - Better related PseudoAxes (ex Eulerians on a Kappa)
      - The PseudoAxe is just a interface, computation is done by the PseudoAxeEngine.
      - Eulerian 4 Circles Vertical
        - "th2th" : derived from the twoC
        - "q2th" : derived from the twoC
        - "q" : derived from the twoC
      - kappa 4 Circles Vertical
        - "omega", "chi", "phi" : eulerian 4 circles Vertical pseudoAxes.
        - "th2th" : derived from the twoC
        - "q2th" : derived from the twoC
        - "q" : derived from the twoC
        - "psi" : derived from the Eulerian 4 Circlers Vertical.
      - Eulerian 6 Circles:
        - "tth" : 2 * theta
        - "q" : 2 * tau * sin(theta) / lambda
        - "psi" : derived from the Eulerian 4 Circlers Vertical.
      - Kappa6C
        - "omega", "chi", "phi" : derived from the Kappa 4 Circles Vertical.
        - "tth" derived from the Eulerian6C.
        - "q" derived from the Eulerian6C.
        - "psi" : derived from the Eulerian 4 Circlers Vertical.
    
    * Refactoring of the Modes.
      - Derived Mode can be created from an already existing Mode if the Geometry conversion exist.
      - all Eulerian 4 Circles on the kappa4C, Eulerian6c and Kappa6C diffractometers.

* 2.2.0 19-06-2006
    
    * Diffractometers:
      - twoC Vertical.
      - Eulerian 4 Circles Vertical.
      - Kappa 6 Circles.
    
    * PseudoAxes
      - twoC
        - "th2th": omega - 2theta (domega = d2theta / 2)
        - "q2th" : omega - 2theta (domega = d2theta / 2) but q2th = 2 tau sin(theta) / lambda
        - "q" : 2 * tau * sin(theta) / lambda
      - Eulerian 4 Circles Vertical
        - "th2th": omega - 2theta (domega = d2theta / 2)
        - "q2th" : omega - 2theta (domega = d2theta / 2) but q2th = 2 tau sin(theta) / lambda
        - "q" : 2 * tau * sin(theta) / lambda
        - "psi" : Rotation of the sample oaround the Q vector.
    
    * Modes
      - twoC
        - "symetric" (omega = theta, 2theta = 2 * theta)
        - "fix incidence" (omega = free, 2theta = 2 * theta)
      - Eulerian 4 circles:
        - "Bissector"
        - "Delta Theta"
        - "Constant Omega"
        - "Constant Chi"
        - 'Constant Phi"
      - Kappa6C
        - all Eulerian 4 Circles modes.
