1 /* pointgroup.h */
2 /* Copyright (C) 2008 Atsushi Togo */
3 
4 #ifndef __pointgroup_H__
5 #define __pointgroup_H__
6 
7 #include "symmetry.h"
8 
9 typedef enum {
10   NONE,
11   TRICLI,
12   MONOCLI,
13   ORTHO,
14   TETRA,
15   RHOMB,
16   TRIGO,
17   HEXA,
18   CUBIC,
19 } Holohedry;
20 
21 typedef enum {
22   LAUE1,
23   LAUE2M,
24   LAUEMMM,
25   LAUE4M,
26   LAUE4MMM,
27   LAUE3,
28   LAUE3M,
29   LAUE6M,
30   LAUE6MMM,
31   LAUEM3,
32   LAUEM3M,
33 } Laue;
34 
35 typedef struct {
36   char symbol[6];
37   Holohedry holohedry;
38   Laue laue;
39   int transform_mat[3][3];
40 } Pointgroup;
41 
42 int ptg_get_pointgroup_number( const Symmetry * symmetry );
43 Pointgroup ptg_get_pointgroup( const int pointgroup_number );
44 void ptg_get_transformation_matrix( Pointgroup * pointgroup,
45 				    const Symmetry * symmetry );
46 #endif
47