atomes 1.1.15
atomes: an atomic scale modeling tool box
Loading...
Searching...
No Matches
glwin.h
Go to the documentation of this file.
1/* This file is part of the 'atomes' software
2
3'atomes' is free software: you can redistribute it and/or modify it under the terms
4of the GNU Affero General Public License as published by the Free Software Foundation,
5either version 3 of the License, or (at your option) any later version.
6
7'atomes' is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
8without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9See the GNU General Public License for more details.
10
11You should have received a copy of the GNU Affero General Public License along with 'atomes'.
12If not, see <https://www.gnu.org/licenses/>
13
14Copyright (C) 2022-2024 by CNRS and University of Strasbourg */
15
23/*
24* This header file: 'glwin.h'
25*
26* Contains:
27
28 - Variable declarations related the OpenGL window
29 - Data structure declarations related the OpenGL window
30
31*/
32
33#ifndef GLWIN_H_
34#define GLWIN_H_
35
36#include "ogl_shading.h"
37
38#ifndef GL_COLOR_SUM_EXT
39# define GL_COLOR_SUM_EXT 0x8458
40#endif
41
42#ifndef GL_LIGHT_MODEL_COLOR_CONTROL_EXT
43# define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8
44#endif
45
46#ifndef GL_SEPARATE_SPECULAR_COLOR_EXT
47# define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA
48#endif
49
50#ifndef GL_TEXTURE_RECTANGLE_ARB
51# define GL_TEXTURE_RECTANGLE_ARB 0x84F5
52#endif
53
54#define BOX 0
55#define AXIS 1
56
57#define OGL_RENDERS 3
58#define OGL_BOX 8
59#define OGL_AXIS 13
60#define OGL_REPS 2
61#define ATOM_MAPS 7
62#define POLY_MAPS 7
63#define OGL_COORDS 5
64#define OGL_RINGS 12
65#define NUM_COLORS 64
66#define NINPUTS 6
67#define NSELECTION 7
68
69#define NGLOBAL_SHADERS 14
70
83
88enum shaders {
89 ATOMS = 0,
90 BONDS = 1,
91 SELEC = 2,
92 POLYS = 3,
93 MDBOX = 4,
94 MAXIS = 5,
95 ARROW = 6,
96 RINGS = 7,
97 PICKS = 8,
98 LABEL = 9,
99 MEASU = 10,
100 LIGHT = 11,
101 SLABS = 12,
102 VOLMS = 13
104
105#define FILLED_STYLES 4
106#define OGL_STYLES 6
107
108extern char * text_styles[OGL_STYLES];
109extern char * text_filled[FILLED_STYLES];
110
112typedef struct angle angle;
113struct angle
114{
115 double angle;
116 gboolean pbc;
117};
118
120typedef struct distance distance;
122{
123 double length;
124 double x;
125 double y;
126 double z;
127 gboolean pbc;
128};
129
130typedef struct atom_data atom_data;
132{
133 gboolean show[2];
134 gboolean label[2];
135 gboolean pick[2];
136 gboolean cloned;
137 int style;
138};
139
140typedef struct spinner spinner;
142{
143 GtkWidget * win;
144 GtkWidget * right;
145 GtkWidget * left;
146 GtkWidget * up;
147 GtkWidget * down;
148 GtkWidget * stop;
149};
150
151typedef struct sequencer sequencer;
153{
154 GtkWidget * win;
155 GtkWidget * first;
156 GtkWidget * last;
157 GtkWidget * prev;
158 GtkWidget * next;
159 GtkWidget * jump;
160 GtkWidget * play;
161 GtkWidget * stop;
162 GtkWidget * loop;
163 GtkWidget * fast;
164 GtkWidget * slow;
165};
166
167typedef struct recorder recorder;
169{
170 GtkWidget * win;
171 GtkWidget * rec;
172 GtkWidget * stop;
173};
174
179typedef struct Light Light;
191
196typedef struct Material Material;
198{
201 // 0 = lightning model
202 // 2 = metallic
203 // 3 = roughness
204 // 4 = back lightning
205 // 5 = gamma
206 // 6 = opacity
207 GLfloat param[6];
214};
215
220typedef struct Fog Fog;
221struct Fog
222{
223 int mode;
224 int based;
225 float density;
226 float depth[2];
228};
229
247
256
270
275typedef struct image image;
276struct image
277{
279 // Color maps for atoms [0] and polyhedra [1]
280 int color_map[2];
286 // Atoms
288 double * sphererad;
289 double * pointrad;
290 double * atomicrad;
292 // Bonds
293 double ** bondrad;
294 double ** linerad;
295 double radall[2];
297 // Clones
301 // Labels
302 // 0 = atoms, 1 = clones, 2 = axis, 3 = measures, 4 = measure edition
333 double labels_shift[5][3];
345 // 0 =Element name, 1 = Atomic symbol, 2 = Atomic symbol + ID number, 3 = ID number
354 double mwidth;
357 // Atom selection: 0 = normal mode, 1 = edition mode
361 // Model box and partial axis data
362 // BOX = 0, AXIS = 1
363 int box_axis[2];
366 double box_axis_rad[2];
369 double box_axis_line[2];
373 // Extra cell on a/b/c
374 int extra_cell[3];
376 double axis_length;
383 // Coordination(s)
399 // Only for recording
400 int ** i_rings[5];
403 // Volumes
427 int style;
444 int lights;
445 int * light_loc;
452 int step;
453 int rep;
454 int id;
455};
456
458typedef struct snapshot snapshot;
465
467typedef struct animation animation;
474
476typedef struct colormap colormap;
478{
479 float ** data;
480 int points;
482 float * positions;
483 float cmin;
484 float cmax;
486};
487
494{
495 int proj;
496 int action;
497 GtkWidget * atom_tree;
498 GtkWidget * mode_box;
499 GtkWidget * object_box;
500 GtkWidget * filter_box;
501 GtkWidget * atom_box;
502 GtkWidget * id_box;
503 GtkWidget * big_box;
504 GtkTreeStore * atom_model;
505 GtkListStore * obj_model;
506 GtkTreePath * path;
507 GtkWidget * info[2];
508 GtkWidget * preview[2];
509 // 0 = Unselected
510 // 1 = Selected
511 // 2 = All
512 int status;
516 // O = Normal
517 // 1 = Random
518 int mode;
521 // 0 = Atoms
522 // 1 = Groups
523 int object;
526 int filter;
532 int spec;
537 GtkWidget * entry_a, * entry_b;
538 GtkWidget * but_a, * but_b;
539 GtkWidget * img_a, * img_b;
540 // Passivating = for all atoms of that type but not as a group
541 gboolean passivating;
542 gboolean was_selected;
545 int int_b;
546 int * lab;
547 int * pick;
549 int * todo;
551};
552
566{
567 int id;
568 int origin;
569 float dim;
571 int type;
572 int atoms;
574 int * old_z;
575 struct atom * at_list;
576 int ifcl;
577 int * bcid;
578 double occ;
579 double * baryc;
580 int bonds;
581 int ** ibonds;
585};
586
593{
594 int multi;
595 gchar * let;
596 gchar * site;
597 gchar *** pos;
598};
599
606{
607 int origin;
608 gchar * name;
609 gchar * pos[3];
610 int nump;
611 gchar *** points;
612};
613
634
639typedef struct box_info box_info;
641{
642 double param[2][3];
645 double vect[3][3];
646 double rvect[3][3];
649 double vol;
650 double dens;
651};
652
657typedef struct cell_info cell_info;
659{
662 int cextra[3];
663 int pbc;
664 int frac;
665 int ltype;
669 double volume;
670 double density;
671 gboolean npt;
672 gboolean has_a_box;
673 gboolean crystal;
675};
676
679{
680 GtkWidget * win;
681 GtkWidget * bh_box;
682 GtkWidget * bv_box[2];
683 GtkWidget * cs_combo;
684 GtkWidget * bl_box;
685 GtkWidget * ltc_box;
686 GtkWidget * ltc_cons;
687 GtkWidget * bv_img;
688 GtkWidget * bl_combo;
689 GtkWidget * sg_box;
690 GtkWidget * sg_combo;
691 GtkWidget * sg_but;
692 GtkWidget * so_box;
693 GtkWidget * so_combo;
694 GtkWidget * so_info;
695 GtkWidget * la_combo;
696 GtkWidget * lattice_grid;
697 GtkWidget * lattice_box;
698 GtkWidget * bentry[2][3];
699 GtkWidget * ventry[3][3];
700 GtkWidget * add_combo;
701 GtkWidget * pbut;
704 gboolean overlapping;
705 gboolean wrap;
706 gboolean clones;
707 int extrac[3];
709};
710
713{
714 GtkWidget * win;
715 GtkWidget * vbox;
716 GtkWidget * notebook;
717 GtkWidget * atom_combo[5];
718 GtkWidget * axis_combo[2];
719 GtkWidget * axis_but[2];
720 GtkWidget * edit_entry[6];
721 GtkWidget * edit_scale[6];
722 GtkWidget * at_expand[3];
723 GtkWidget * edition_but[2];
724 GtkTreePath ** replace_nodes[2];
725 gboolean visible;
727 int axis[2];
728 gboolean show_axis[2];
729 gboolean rebuilt[2];
730 gboolean old_axis;
731 float new_param[3][2][6];
732 float old_param[3][2][6];
734 float * msd;
735 float * msd_all;
736 // 0 = REPLACE
737 // 1 = INSERT
738 // 2 = CBUILD
739 // 3 = PASSIVATE
745 double * new_z;
746};
747
750{
751 GtkWidget * win;
752 GtkWidget * notebook;
753 GtkWidget * put_in_box;
754 GtkWidget * passivate;
755 GtkWidget * superbut;
756 GtkWidget * shift_box[2];
757 GtkWidget * ax_cell[3];
758 GtkWidget * edit_entry[21];
759 GtkWidget * edit_scale[21];
760 GtkWidget * density_box;
761 GtkWidget * density;
762 gboolean slab_show;
763 gboolean slab_pbc;
769 double slab_vol;
772 int * slab_lot;
773 GtkWidget * slab_opts;
774 GtkWidget * slab_hbox[3];
775 GtkWidget * slab_param[3];
776 GtkWidget * slab_box[6];
777 GtkWidget * slab_info_box;
778 GtkWidget * slab_info;
779 gboolean homo_density;
780 double cparam[21];
781 double initbox[3];
783};
784
787{
788 GtkWidget * win;
789 GtkWidget * templates;
790 GtkWidget * param_mat;
791 GtkWidget * m_entry[5];
792 GtkWidget * m_scale[5];
793 GtkWidget * lights;
794 GtkWidget * lights_box;
795
796 GtkWidget * basic[2];
797 GtkWidget * base_ogl[2][5];
798 GtkWidget * entogl[5][3];
799
801 GtkWidget * light_type;
802 GtkWidget * light_type_box;
803 GtkWidget * light_fix;
804 GtkWidget * light_show;
805 GtkWidget * light_b_entry[2];
806 GtkWidget * light_entry[6];
807 GtkWidget * light_b_coord[2];
808
809 GtkWidget * dens_box;
810 GtkWidget * depth_box;
811 GtkWidget * fog_range[3];
812 GtkWidget * param_fog;
813
814 int proj;
817};
818
821{
822 GtkWidget * win;
823 GtkWidget * notebook;
824 GtkTreeStore * rings_model[5];
825 GtkTreeStore * chains_model;
826 GtkListStore * frag_mol_model[2];
827 int rst[5], rsz[5], ri[5];
828 GtkWidget * rilab[5][3];
829 int cst, csz, ch;
830 GtkWidget * chlab[3];
831};
832
833typedef struct measures measures;
835{
836 GtkWidget * win;
837 GtkWidget * label;
838 GtkWidget * selection_tree[3];
839};
840
841typedef struct volumes volumes;
843{
844 GtkWidget * win;
845 // All model
846 GtkWidget * compb[FILLED_STYLES];
847 GtkWidget * hboxv[FILLED_STYLES];
848 GtkWidget * hbvol[FILLED_STYLES];
849 GtkWidget * lab_vol[FILLED_STYLES];
850 double angp;
851 // Fragments and molecules
852 int sid[2];
853 GtkWidget ** fm_compb[2][FILLED_STYLES];
854 GtkWidget ** fm_hboxv[2][FILLED_STYLES];
855 GtkWidget ** fm_hbvol[2][FILLED_STYLES];
856 GtkWidget ** fm_lab_vol[2][FILLED_STYLES];
857 GtkWidget * fm_vbox[2];
858 GtkWidget * fm_vvbox[2];
859 int ngeov[2];
860 int * geov_id[2];
861};
862
865{
866 GtkWidget * win;
867 GtkWidget * notebook;
868};
869
873typedef struct glwin glwin;
874struct glwin
875{
876 gboolean init;
877 int proj;
878 // The entire OpenGL window
879 GtkWidget * win;
880 // The menu bar
881 GtkWidget * menu_box;
882 GtkWidget * menu_bar;
883#ifdef GTK3
884 // OpenGL menus
885 GtkWidget * ogl_styles[OGL_STYLES];
886 GtkWidget * filled_styles[FILLED_STYLES];
887 GtkWidget * color_styles[ATOM_MAPS+POLY_MAPS];
888 GtkWidget * ogl_render[OGL_RENDERS];
889 GtkWidget * ogl_rep[OGL_REPS];
890 GtkWidget * ogl_quality;
891 GtkWidget ** ogl_box_axis[2];
892 GtkWidget * ogl_box[8];
893 GtkWidget * ogl_mouse[3];
894 GtkWidget * ogl_atoms[8];
895 GtkWidget ** ogl_spec[2];
896 GtkWidget ** ogl_lab[2];
897 GtkWidget * ogl_bonds[14];
898 GtkWidget * ogl_clones[6];
899 GtkWidget * ogl_coord[OGL_COORDS];
900 GtkWidget * ogl_rings[OGL_RINGS];
901 GtkWidget * ogl_chains[2];
902 GtkWidget ** ogl_geom[2][10];
903 GtkWidget ** ogl_poly[2][9];
904 GtkWidget ** oglmv[2][10]; // Coordination sphere show/hide menus
905 GtkWidget ** oglmc[2][9]; // Coordination sphere color menus
906 GtkWidget ** oglmpv[2][9]; // Polyhedra view/hide menus
907 GtkWidget * ogl_mode[2+2*NINPUTS];
908 GtkWidget * ogl_smode[NSELECTION];
909 GtkWidget * ogl_anim[2];
910#endif
911 GtkWidget * camera_widg[7];
912 GtkWidget * rbuild[2];
913 GtkWidget * cbuilder;
914
915 // Matrices
930
937
938 // OpenGL plot
939 GtkWidget * plot;
940#ifndef GTKGLAREA
941 GLXContext glcontext;
942#endif
943 int pixels[2];
944
951 gboolean to_pick;
952
953 // Action mode
954 // 0 = analyze (normal), 1 = edit structure
955 int mode;
958 // Selection mode
969 // For temporary backup purposes only:
972
977 double ** saved_coord[3];
979 // 0 = atoms
980 // 1 = clones
981 // 2 = MOVE
982 // 3 = REPLACE
983 // 4 = REMOVE
984 // 5 = INSERT
985 // 6 = RANMOVE
986 // 7 = CBUILDER
987 // 8 = PASSIVATE
991 // 0 = Status
992 // 1 = Translation / Rotation
993 // 3 = x_t, y_t, z_t, x_r, y_r, z_r
994 float edition_param[3][2][6]; // 0-2 translation, 3-5 rotation
995
996 // Color pointers, these are used to deal with the
997 // Callbacks for the OpenGL window menus, and are used
998 // for atoms / box / axis ...
999 tint * colorp[64];
1005 int allbonds[2];
1008 int ** bonds;
1009 int **** bondid;
1011 // Clones
1015 gboolean was_moved;
1016 // Rebuild trigger switch on edition
1017 // [0] = on move:
1018 // [0] atom_win active: 0/1 to turn off/on
1019 // [1] atom_win inactive: 0/1 to turn off/on
1020 // [1] = on copy:
1021 // [0] atom_win active: 0/1 to turn off/on
1022 // [1] atom_win inactive: 0/1 to turn off/on
1023 gboolean rebuild[2][2];
1030 gboolean bonding;
1031 gboolean adv_bonding[2];
1034 qint ** gcid[10];
1035 gboolean rings;
1036 int ring_max[5];
1037 int ** num_rings[5];
1038 int **** all_rings[5];
1039 gboolean *** show_rpoly[5];
1040 gboolean chains;
1042 int ** num_chains;
1043 int **** all_chains;
1045 // Volumes data
1046 gboolean volumes;
1049 // [9] : a,b,c,alpha,beta,gama,p.x,p.y,p.z
1056
1059
1060 // Color picking
1067 // Spinner, player
1069 gboolean play;
1070 gboolean stop;
1071 gboolean loop;
1074 gboolean spin[4];
1077 gboolean record;
1078
1081
1082 double cshift[3];
1083 gboolean wrapped;
1084
1087
1089 GLdouble p_moy;
1090 gboolean fullscreen;
1091
1093 GSimpleActionGroup * action_group;
1094 GtkWidget * shortcuts;
1095};
1096
1097#endif
#define FILLED_STYLES
Definition glwin.h:105
#define OGL_COORDS
Definition glwin.h:63
#define POLY_MAPS
Definition glwin.h:62
object_types
Definition glwin.h:73
@ FROM_LIBRARY
Definition glwin.h:80
@ FROM_COORD_P
Definition glwin.h:78
@ FROM_MOL
Definition glwin.h:76
@ FROM_FRAG
Definition glwin.h:77
@ FROM_SPEC
Definition glwin.h:75
@ FROM_COORD_T
Definition glwin.h:79
@ FROM_PROJECT
Definition glwin.h:81
@ FROM_DATA
Definition glwin.h:74
#define OGL_RENDERS
Definition glwin.h:57
#define OGL_RINGS
Definition glwin.h:64
char * text_filled[FILLED_STYLES]
Definition m_style.c:61
#define OGL_STYLES
Definition glwin.h:106
shaders
The different types of shaders in the atomes program.
Definition glwin.h:88
@ BONDS
Definition glwin.h:90
@ PICKS
Definition glwin.h:97
@ LABEL
Definition glwin.h:98
@ VOLMS
Definition glwin.h:102
@ SLABS
Definition glwin.h:101
@ POLYS
Definition glwin.h:92
@ ARROW
Definition glwin.h:95
@ MAXIS
Definition glwin.h:94
@ SELEC
Definition glwin.h:91
@ MDBOX
Definition glwin.h:93
@ MEASU
Definition glwin.h:99
@ ATOMS
Definition glwin.h:89
@ RINGS
Definition glwin.h:96
@ LIGHT
Definition glwin.h:100
#define OGL_REPS
Definition glwin.h:60
#define NINPUTS
Definition glwin.h:66
#define ATOM_MAPS
Definition glwin.h:61
#define NSELECTION
Definition glwin.h:67
char * text_styles[OGL_STYLES]
Definition m_style.c:54
#define NGLOBAL_SHADERS
Definition glwin.h:69
Variable declarations related to GLSL programs Data structure declarations related to GLSL programs...
Definition glwin.h:222
int based
Definition glwin.h:224
int mode
Definition glwin.h:223
vec3_t color
Definition glwin.h:227
float density
Definition glwin.h:225
float depth[2]
Definition glwin.h:226
Definition glwin.h:181
int fix
Definition glwin.h:183
vec3_t spot_data
Definition glwin.h:189
vec3_t direction
Definition glwin.h:186
vec3_t attenuation
Definition glwin.h:188
int show
Definition glwin.h:184
int type
Definition glwin.h:182
vec3_t position
Definition glwin.h:185
vec3_t intensity
Definition glwin.h:187
GLfloat param[6]
Definition glwin.h:207
vec3_t albedo
Definition glwin.h:200
int predefine
Definition glwin.h:199
Definition glwin.h:114
double angle
Definition glwin.h:115
gboolean pbc
Definition glwin.h:116
snapshot * first
Definition glwin.h:471
snapshot * last
Definition glwin.h:472
int frames
Definition glwin.h:470
gboolean label[2]
Definition glwin.h:134
gboolean cloned
Definition glwin.h:136
int style
Definition glwin.h:137
gboolean pick[2]
Definition glwin.h:135
gboolean show[2]
Definition glwin.h:133
float old_param[3][2][6]
Definition glwin.h:732
GtkWidget * atom_combo[5]
Definition glwin.h:717
int add_spec
Definition glwin.h:744
float * msd_all
Definition glwin.h:735
GtkWidget * vbox
Definition glwin.h:715
int axis[2]
Definition glwin.h:727
coord_info * coord
Definition glwin.h:743
GtkWidget * axis_but[2]
Definition glwin.h:719
float * msd
Definition glwin.h:734
double * new_z
Definition glwin.h:745
GtkWidget * at_expand[3]
Definition glwin.h:722
GtkWidget * edit_scale[6]
Definition glwin.h:721
GtkWidget * notebook
Definition glwin.h:716
atomic_object * to_be_inserted[4]
Definition glwin.h:740
GtkWidget * axis_combo[2]
Definition glwin.h:718
int active
Definition glwin.h:726
int adv_bonding[2]
Definition glwin.h:742
gboolean visible
Definition glwin.h:725
gboolean old_axis
Definition glwin.h:730
GtkWidget * edit_entry[6]
Definition glwin.h:720
atomic_object * to_be_moved[2]
Definition glwin.h:741
int repeat_move
Definition glwin.h:733
GtkTreePath ** replace_nodes[2]
Definition glwin.h:724
float new_param[3][2][6]
Definition glwin.h:731
gboolean rebuilt[2]
Definition glwin.h:729
GtkWidget * edition_but[2]
Definition glwin.h:723
GtkWidget * win
Definition glwin.h:714
gboolean show_axis[2]
Definition glwin.h:728
atom_in_selection * prev
Definition glwin.h:253
atom_in_selection * next
Definition glwin.h:254
GtkTreePath * path
Definition glwin.h:506
GtkWidget * atom_box
Definition glwin.h:501
int mode
Definition glwin.h:518
int * lab
Definition glwin.h:546
tint pointer[6]
Definition glwin.h:550
GtkWidget * but_b
Definition glwin.h:538
int todo_size
Definition glwin.h:548
GtkWidget * img_a
Definition glwin.h:539
int object
Definition glwin.h:523
GtkWidget * atom_tree
Definition glwin.h:497
GtkWidget * id_box
Definition glwin.h:502
GtkWidget * preview[2]
Definition glwin.h:508
int num_to_add
Definition glwin.h:535
int set_for_all
Definition glwin.h:544
gboolean was_selected
Definition glwin.h:542
int proj
Definition glwin.h:495
GtkWidget * entry_a
Definition glwin.h:537
GtkWidget * info[2]
Definition glwin.h:507
int status
Definition glwin.h:512
GtkWidget * img_b
Definition glwin.h:539
int * todo
Definition glwin.h:549
GtkWidget * object_box
Definition glwin.h:499
gboolean passivating
Definition glwin.h:541
GtkWidget * but_a
Definition glwin.h:538
GtkTreeStore * atom_model
Definition glwin.h:504
GtkListStore * obj_model
Definition glwin.h:505
gboolean recompute_bonding
Definition glwin.h:543
int action
Definition glwin.h:496
int in_selection
Definition glwin.h:536
int search_digit
Definition glwin.h:533
int * pick
Definition glwin.h:547
GtkWidget * mode_box
Definition glwin.h:498
int spec
Definition glwin.h:532
GtkWidget * entry_b
Definition glwin.h:537
GtkWidget * big_box
Definition glwin.h:503
GtkWidget * filter_box
Definition glwin.h:500
int spec_to_add
Definition glwin.h:534
int int_b
Definition glwin.h:545
int filter
Definition glwin.h:526
atom_in_selection * first
Definition glwin.h:267
ColRGBA * bond_colors
Definition glwin.h:262
ColRGBA * angle_colors
Definition glwin.h:264
int * selected_bonds
Definition glwin.h:261
int * selected_dihedrals
Definition glwin.h:265
ColRGBA * dihedral_colors
Definition glwin.h:266
atom_in_selection * last
Definition glwin.h:268
int * selected_angles
Definition glwin.h:263
Definition global.h:886
double occ
Definition glwin.h:578
int ** ibonds
Definition glwin.h:581
atomic_object * prev
Definition glwin.h:583
coord_info * coord
Definition glwin.h:582
int * old_z
Definition glwin.h:574
float dim
Definition glwin.h:569
double * baryc
Definition glwin.h:579
int * bcid
Definition glwin.h:577
gchar * name
Definition glwin.h:570
struct atom * at_list
Definition glwin.h:575
atomic_object * next
Definition glwin.h:584
int species
Definition glwin.h:573
mat4_t frac_to_cart
Definition glwin.h:647
mat4_t cart_to_frac
Definition glwin.h:648
double dens
Definition glwin.h:650
double vect[3][3]
Definition glwin.h:645
double param[2][3]
Definition glwin.h:642
double rvect[3][3]
Definition glwin.h:646
double vol
Definition glwin.h:649
GtkWidget * sg_combo
Definition glwin.h:690
GtkWidget * ventry[3][3]
Definition glwin.h:699
GtkWidget * so_box
Definition glwin.h:692
GtkWidget * so_combo
Definition glwin.h:693
gboolean clones
Definition glwin.h:706
GtkWidget * bl_combo
Definition glwin.h:688
GtkWidget * ltc_cons
Definition glwin.h:686
GtkWidget * add_combo
Definition glwin.h:700
GtkWidget * so_info
Definition glwin.h:694
GtkWidget * lattice_grid
Definition glwin.h:696
GtkWidget * cs_combo
Definition glwin.h:683
GtkWidget * sg_but
Definition glwin.h:691
gboolean wrap
Definition glwin.h:705
GtkWidget * pbut
Definition glwin.h:701
int extrac[3]
Definition glwin.h:707
GtkWidget * bentry[2][3]
Definition glwin.h:698
GtkWidget * bh_box
Definition glwin.h:681
tint pointers[3][3]
Definition glwin.h:708
GtkWidget * bv_box[2]
Definition glwin.h:682
GtkWidget * sg_box
Definition glwin.h:689
GtkWidget * bl_box
Definition glwin.h:684
GtkWidget * lattice_box
Definition glwin.h:697
cell_info cell
Definition glwin.h:702
GtkWidget * ltc_box
Definition glwin.h:685
gboolean overlapping
Definition glwin.h:704
GtkWidget * bv_img
Definition glwin.h:687
GtkWidget * win
Definition glwin.h:680
GtkWidget * la_combo
Definition glwin.h:695
GtkWidget * shift_box[2]
Definition glwin.h:756
int slab_out
Definition glwin.h:768
double slab_vol
Definition glwin.h:769
gboolean slab_show
Definition glwin.h:762
GtkWidget * ax_cell[3]
Definition glwin.h:757
float slab_alpha
Definition glwin.h:770
gboolean cut_this_slab
Definition glwin.h:764
GtkWidget * slab_info
Definition glwin.h:778
double cparam[21]
Definition glwin.h:780
GtkWidget * slab_param[3]
Definition glwin.h:775
gboolean homo_density
Definition glwin.h:779
double initbox[3]
Definition glwin.h:781
GtkWidget * edit_scale[21]
Definition glwin.h:759
GtkWidget * slab_hbox[3]
Definition glwin.h:774
GtkWidget * put_in_box
Definition glwin.h:753
GtkWidget * edit_entry[21]
Definition glwin.h:758
GtkWidget * slab_box[6]
Definition glwin.h:776
GtkWidget * slab_opts
Definition glwin.h:773
int slab_atoms
Definition glwin.h:771
GtkWidget * notebook
Definition glwin.h:752
GtkWidget * slab_info_box
Definition glwin.h:777
int * slab_lot
Definition glwin.h:772
gboolean slab_pbc
Definition glwin.h:763
int slab_type
Definition glwin.h:766
dint slab_pointer[5]
Definition glwin.h:782
int slab_act
Definition glwin.h:767
GtkWidget * passivate
Definition glwin.h:754
GtkWidget * density_box
Definition glwin.h:760
gboolean slab_passivate
Definition glwin.h:765
GtkWidget * win
Definition glwin.h:751
GtkWidget * density
Definition glwin.h:761
GtkWidget * superbut
Definition glwin.h:755
int cextra[3]
Definition glwin.h:662
gboolean crystal
Definition glwin.h:673
gboolean npt
Definition glwin.h:671
double density
Definition glwin.h:670
double volume
Definition glwin.h:669
int pbc
Definition glwin.h:663
box_info * box
Definition glwin.h:660
int ltype
Definition glwin.h:665
gboolean has_a_box
Definition glwin.h:672
int frac
Definition glwin.h:664
space_group * sp_group
Definition glwin.h:674
ColRGBA ** colors
Definition glwin.h:481
float cmin
Definition glwin.h:483
float ** data
Definition glwin.h:479
float * positions
Definition glwin.h:482
float cmax
Definition glwin.h:484
int points
Definition glwin.h:480
ColRGBA * values
Definition glwin.h:485
int rsz[5]
Definition glwin.h:827
GtkListStore * frag_mol_model[2]
Definition glwin.h:826
GtkWidget * rilab[5][3]
Definition glwin.h:828
int rst[5]
Definition glwin.h:827
GtkWidget * notebook
Definition glwin.h:823
int ri[5]
Definition glwin.h:827
GtkWidget * chlab[3]
Definition glwin.h:830
GtkTreeStore * rings_model[5]
Definition glwin.h:824
GtkTreeStore * chains_model
Definition glwin.h:825
GtkWidget * win
Definition glwin.h:822
Definition global.h:97
double length
Definition glwin.h:123
double z
Definition glwin.h:126
double y
Definition glwin.h:125
gboolean pbc
Definition glwin.h:127
double x
Definition glwin.h:124
Definition glwin.h:875
float edition_param[3][2][6]
Definition glwin.h:994
GtkWidget * plot
Definition glwin.h:939
int mouseAction
Definition glwin.h:948
GtkWidget * menu_box
Definition glwin.h:881
mat4_t axis_proj_model_view_matrix
Definition glwin.h:928
gboolean adv_bonding[2]
Definition glwin.h:1031
mat4_t model_matrix
Definition glwin.h:919
int clones_to_be_picked
Definition glwin.h:1063
gboolean *** show_rpoly[5]
Definition glwin.h:1039
builder_edition * builder_win
Definition glwin.h:936
int **** all_rings[5]
Definition glwin.h:1038
int * stored_labels[2]
Definition glwin.h:971
gboolean bonding
Definition glwin.h:1030
GLXContext glcontext
Definition glwin.h:941
int mode
Definition glwin.h:955
int speed
Definition glwin.h:1072
mat4_t label_projection_matrix
Definition glwin.h:929
gboolean comp_vol[FILLED_STYLES]
Definition glwin.h:1051
colormap * custom_map
Definition glwin.h:1003
int mouseY
Definition glwin.h:946
gboolean spin[4]
Definition glwin.h:1074
vec3_t insert_coords
Definition glwin.h:990
mat4_t proj_model_view_matrix
Definition glwin.h:925
double ** volume_box[FILLED_STYLES]
Definition glwin.h:1050
double ** saved_coord[3]
Definition glwin.h:977
gboolean was_moved
Definition glwin.h:1015
int cmap[ATOM_MAPS]
Definition glwin.h:975
double cshift[3]
Definition glwin.h:1082
gboolean record
Definition glwin.h:1077
gboolean stop
Definition glwin.h:1070
gboolean volumes
Definition glwin.h:1046
int proj
Definition glwin.h:877
recorder * rec
Definition glwin.h:1076
glsl_program *** ogl_glsl[NGLOBAL_SHADERS]
Definition glwin.h:932
GtkWidget * camera_widg[7]
Definition glwin.h:911
mat4_t projection_matrix
Definition glwin.h:918
float zoom_factor
Definition glwin.h:1088
int **** all_chains
Definition glwin.h:1043
int frames
Definition glwin.h:1079
gboolean ** fm_comp_vol[2][FILLED_STYLES]
Definition glwin.h:1055
cell_edition * cell_win
Definition glwin.h:978
int ** bonds
Definition glwin.h:1008
GtkWidget * rbuild[2]
Definition glwin.h:912
mat4_t view_matrix
Definition glwin.h:920
GtkWidget * cbuilder
Definition glwin.h:913
int mouseButton
Definition glwin.h:947
mat4_t normal_matrix
Definition glwin.h:927
mat4_t proj_model_matrix
Definition glwin.h:924
int atoms_to_be_picked
Definition glwin.h:1062
mat4_t model_view_matrix
Definition glwin.h:922
int mouseX
Definition glwin.h:945
int spin_speed[4]
Definition glwin.h:1075
gboolean chains
Definition glwin.h:1040
GtkWidget * shortcuts
Definition glwin.h:1094
double * atoms_volume[FILLED_STYLES]
Definition glwin.h:1047
gboolean create_shaders[NGLOBAL_SHADERS]
Definition glwin.h:931
int picked
Definition glwin.h:1058
int bonds_to_be_picked
Definition glwin.h:1064
GLdouble p_moy
Definition glwin.h:1089
int mouseStatus
Definition glwin.h:949
measures * measure_win
Definition glwin.h:1085
model_edition * model_win[2]
Definition glwin.h:935
sequencer * player
Definition glwin.h:1068
gboolean rebuild[2][2]
Definition glwin.h:1023
mat4_t un_view_matrix
Definition glwin.h:921
int nth_copy
Definition glwin.h:950
double ** frag_mol_ppvolume[2][FILLED_STYLES]
Definition glwin.h:1053
int ** num_chains
Definition glwin.h:1042
gboolean wrapped
Definition glwin.h:1083
int ring_max[5]
Definition glwin.h:1036
vec4_t view_port
Definition glwin.h:917
int * color_to_pick
Definition glwin.h:1065
int action_id
Definition glwin.h:1092
mat4_t view_model_matrix
Definition glwin.h:923
gboolean prepare_motion
Definition glwin.h:1014
gboolean init
Definition glwin.h:876
vec3_t ** clones
Definition glwin.h:1012
int allbonds[2]
Definition glwin.h:1005
double * atoms_ppvolume[FILLED_STYLES]
Definition glwin.h:1048
volumes * volume_win
Definition glwin.h:1086
GtkWidget * menu_bar
Definition glwin.h:882
double ** frag_mol_volume[2][FILLED_STYLES]
Definition glwin.h:1052
atom_selection * tmp_sel[2]
Definition glwin.h:970
int pixels[2]
Definition glwin.h:943
double *** frag_box[FILLED_STYLES]
Definition glwin.h:1054
int selection_mode
Definition glwin.h:959
int chain_max
Definition glwin.h:1041
tint * colorp[64]
Definition glwin.h:999
qint ** gcid[10]
Definition glwin.h:1034
gboolean to_pick
Definition glwin.h:951
GSimpleActionGroup * action_group
Definition glwin.h:1093
gboolean fullscreen
Definition glwin.h:1090
vec3_t baryc[3]
Definition glwin.h:989
vec3_t model_position
Definition glwin.h:916
gboolean rings
Definition glwin.h:1035
opengl_edition * opengl_win
Definition glwin.h:934
int labelled
Definition glwin.h:1057
mat4_t proj_view_matrix
Definition glwin.h:926
atom_search * search_widg[9]
Definition glwin.h:988
int to_be_picked
Definition glwin.h:1061
GtkWidget * win
Definition glwin.h:879
coord_edition * coord_win
Definition glwin.h:974
atom_edition * atom_win
Definition glwin.h:976
spinner * spiner
Definition glwin.h:1073
int other_status
Definition glwin.h:973
gboolean loop
Definition glwin.h:1071
int **** bondid
Definition glwin.h:1009
animation * anim
Definition glwin.h:1080
gboolean play
Definition glwin.h:1069
int * n_shaders[NGLOBAL_SHADERS]
Definition glwin.h:933
int ** num_rings[5]
Definition glwin.h:1037
Definition glwin.h:277
ColRGBA * axis_color
Definition glwin.h:381
double ** linerad
Definition glwin.h:294
ColRGBA backcolor
Definition glwin.h:278
ColRGBA * at_color
Definition glwin.h:287
double * pointrad
Definition glwin.h:289
double axis_length
Definition glwin.h:376
gboolean * show_poly[9]
Definition glwin.h:284
GLdouble c_shift[2]
Definition glwin.h:388
vec4_t rotation_quaternion
Definition glwin.h:397
double mwidth
Definition glwin.h:354
double radall[2]
Definition glwin.h:295
int * light_loc
Definition glwin.h:445
double box_axis_rad[2]
Definition glwin.h:366
struct screen_string * labels_list[5]
Definition glwin.h:339
ColRGBA * labels_color[5]
Definition glwin.h:327
gboolean * show_coord[10]
Definition glwin.h:285
int mfactor
Definition glwin.h:353
gboolean * show_label[2]
Definition glwin.h:283
int filled_type
Definition glwin.h:434
gchar * labels_font[5]
Definition glwin.h:321
int lights
Definition glwin.h:444
GLdouble zoom
Definition glwin.h:395
gchar * axis_title[3]
Definition glwin.h:380
int mpattern
Definition glwin.h:352
double ** bondrad
Definition glwin.h:293
double * sphererad
Definition glwin.h:288
int labels_scale[5]
Definition glwin.h:315
int box_axis[2]
Definition glwin.h:363
int ** i_rings[5]
Definition glwin.h:400
int id
Definition glwin.h:454
GLdouble gleft
Definition glwin.h:391
GLdouble gright
Definition glwin.h:392
int axispos
Definition glwin.h:377
double box_axis_line[2]
Definition glwin.h:369
GLint render
Definition glwin.h:440
gboolean draw_clones
Definition glwin.h:298
GLdouble gfar
Definition glwin.h:390
GLdouble p_depth
Definition glwin.h:386
ColRGBA vol_col[FILLED_STYLES]
Definition glwin.h:409
ColRGBA * fm_vol_col[2][FILLED_STYLES]
Definition glwin.h:419
Material m_terial
Definition glwin.h:449
int axis_labels
Definition glwin.h:379
int labels_render[5]
Definition glwin.h:309
int style
Definition glwin.h:427
GLint quality
Definition glwin.h:439
gboolean * show_atom[2]
Definition glwin.h:282
gboolean * fm_show_vol[2][FILLED_STYLES]
Definition glwin.h:414
gboolean mtilt
Definition glwin.h:351
Fog f_g
Definition glwin.h:450
int rep
Definition glwin.h:453
int labels_format[3]
Definition glwin.h:346
int step
Definition glwin.h:452
double * atomicrad
Definition glwin.h:290
GLdouble c_angle[2]
Definition glwin.h:387
int labels_position[5]
Definition glwin.h:303
int extra_cell[3]
Definition glwin.h:374
int rotation_mode
Definition glwin.h:425
atom_selection * selected[2]
Definition glwin.h:358
ColRGBA ** spcolor[10]
Definition glwin.h:384
int m_is_pressed
Definition glwin.h:356
GLdouble axis_pos[3]
Definition glwin.h:378
GLdouble gbottom
Definition glwin.h:394
GLdouble gtop
Definition glwin.h:393
atom_data * at_data
Definition glwin.h:401
ColRGBA box_color
Definition glwin.h:372
gboolean cloned_poly
Definition glwin.h:299
double labels_shift[5][3]
Definition glwin.h:333
Light * l_ght
Definition glwin.h:448
GLdouble gnear
Definition glwin.h:389
gboolean show_vol[FILLED_STYLES]
Definition glwin.h:404
int color_map[2]
Definition glwin.h:280
GtkWidget * selection_tree[3]
Definition glwin.h:838
GtkWidget * label
Definition glwin.h:837
GtkWidget * win
Definition glwin.h:836
GtkWidget * notebook
Definition glwin.h:867
GtkWidget * win
Definition glwin.h:866
GtkWidget * lights_box
Definition glwin.h:794
GtkWidget * light_b_entry[2]
Definition glwin.h:805
GtkWidget * m_entry[5]
Definition glwin.h:791
GtkWidget * depth_box
Definition glwin.h:810
GtkWidget * light_entry[6]
Definition glwin.h:806
GtkWidget * light_b_coord[2]
Definition glwin.h:807
GtkWidget * dens_box
Definition glwin.h:809
GtkWidget * basic[2]
Definition glwin.h:796
GtkWidget * light_type
Definition glwin.h:801
GtkWidget * light_type_box
Definition glwin.h:802
GtkWidget * advanced_light_box
Definition glwin.h:800
GtkWidget * param_fog
Definition glwin.h:812
GtkWidget * templates
Definition glwin.h:789
GtkWidget * param_mat
Definition glwin.h:790
GtkWidget * m_scale[5]
Definition glwin.h:792
GtkWidget * lights
Definition glwin.h:793
GtkWidget * fog_range[3]
Definition glwin.h:811
GtkWidget * light_fix
Definition glwin.h:803
GtkWidget * entogl[5][3]
Definition glwin.h:798
tint pos_pointer[5][3]
Definition glwin.h:816
GtkWidget * base_ogl[2][5]
Definition glwin.h:797
GtkWidget * win
Definition glwin.h:788
GtkWidget * light_show
Definition glwin.h:804
dint pointer[6]
Definition glwin.h:815
Definition global.h:112
GtkWidget * rec
Definition glwin.h:171
GtkWidget * stop
Definition glwin.h:172
GtkWidget * win
Definition glwin.h:170
int num_instances
Definition glwin.h:242
ColRGBA col
Definition glwin.h:240
float shift[4]
Definition glwin.h:241
screen_string * last
Definition glwin.h:245
char * word
Definition glwin.h:239
float * instances
Definition glwin.h:243
screen_string * prev
Definition glwin.h:244
GtkWidget * slow
Definition glwin.h:164
GtkWidget * next
Definition glwin.h:158
GtkWidget * fast
Definition glwin.h:163
GtkWidget * first
Definition glwin.h:155
GtkWidget * last
Definition glwin.h:156
GtkWidget * loop
Definition glwin.h:162
GtkWidget * prev
Definition glwin.h:157
GtkWidget * play
Definition glwin.h:160
GtkWidget * jump
Definition glwin.h:159
GtkWidget * stop
Definition glwin.h:161
GtkWidget * win
Definition glwin.h:154
image * img
Definition glwin.h:461
snapshot * prev
Definition glwin.h:462
snapshot * next
Definition glwin.h:463
mat4_t coord_origin
Definition glwin.h:631
mat4_t wyck_origin
Definition glwin.h:632
int sid
Definition glwin.h:626
gchar * setting
Definition glwin.h:625
int nums
Definition glwin.h:627
wyckoff_position * wyckoff
Definition glwin.h:630
int numw
Definition glwin.h:629
gchar * hms
Definition glwin.h:623
gchar * name
Definition glwin.h:622
gchar * bravais
Definition glwin.h:624
spg_setting * settings
Definition glwin.h:628
gchar *** points
Definition glwin.h:611
gchar * pos[3]
Definition glwin.h:609
int nump
Definition glwin.h:610
gchar * name
Definition glwin.h:608
int origin
Definition glwin.h:607
GtkWidget * right
Definition glwin.h:144
GtkWidget * left
Definition glwin.h:145
GtkWidget * stop
Definition glwin.h:148
GtkWidget * down
Definition glwin.h:147
GtkWidget * win
Definition glwin.h:143
GtkWidget * up
Definition glwin.h:146
Definition global.h:104
int sid[2]
Definition glwin.h:852
GtkWidget * hbvol[FILLED_STYLES]
Definition glwin.h:848
GtkWidget ** fm_lab_vol[2][FILLED_STYLES]
Definition glwin.h:856
GtkWidget * hboxv[FILLED_STYLES]
Definition glwin.h:847
GtkWidget * fm_vvbox[2]
Definition glwin.h:858
int * geov_id[2]
Definition glwin.h:860
GtkWidget ** fm_compb[2][FILLED_STYLES]
Definition glwin.h:853
GtkWidget * fm_vbox[2]
Definition glwin.h:857
double angp
Definition glwin.h:850
GtkWidget * lab_vol[FILLED_STYLES]
Definition glwin.h:849
GtkWidget * compb[FILLED_STYLES]
Definition glwin.h:846
GtkWidget ** fm_hboxv[2][FILLED_STYLES]
Definition glwin.h:854
GtkWidget ** fm_hbvol[2][FILLED_STYLES]
Definition glwin.h:855
int ngeov[2]
Definition glwin.h:859
GtkWidget * win
Definition glwin.h:844
gchar * site
Definition glwin.h:596
gchar * let
Definition glwin.h:595
gchar *** pos
Definition glwin.h:597