fermisurfer Git
Revision | 4e6f3b09e92c6881095ddbce80fe5ae27fd81c0f (tree) |
---|---|
Zeit | 2015-12-08 15:39:31 |
Autor | ![]() |
Commiter | mitsuaki1987 |
modify menu
ifdef for Mac
@@ -459,6 +459,6 @@ http://sourceforge.jp/projects/fermisurfer/forums/ | ||
459 | 459 | <p>When you want to join us, please contact me as follows.</p> |
460 | 460 | <p>The Institute of Solid State Physics</p> |
461 | 461 | <p>Mitsuaki Kawamura</p> |
462 | - <p><code>mkawamura@issp.u-tokyo.ac.jp</code></p> | |
462 | + <p><code>mkawamura__at__issp.u-tokyo.ac.jp</code></p> | |
463 | 463 | </body> |
464 | 464 | </html> |
@@ -499,6 +499,6 @@ Fermi energy shift : | ||
499 | 499 | <p>開発に参加したい方は以下の連絡先にて受け付けております.</p> |
500 | 500 | <p>東京大学物性研究所</p> |
501 | 501 | <p>河村光晶</p> |
502 | - <p><code>mkawamura@issp.u-tokyo.ac.jp</code></p> | |
502 | + <p><code>mkawamura__at__issp.u-tokyo.ac.jp</code></p> | |
503 | 503 | </body> |
504 | 504 | </html> |
@@ -1,5 +1,5 @@ | ||
1 | 1 | fermisurfer:fermisurfer.c |
2 | - cc fermisurfer.c -framework GLUT -framework OpenGL -lm -o fermisurfer | |
2 | + cc fermisurfer.c -framework GLUT -framework OpenGL -lm -o fermisurfer -D MAC | |
3 | 3 | |
4 | 4 | install: |
5 | 5 | cp fermisurfer /usr/local/bin/fermisurfer |
@@ -37,9 +37,13 @@ | ||
37 | 37 | #include <stdlib.h> |
38 | 38 | #include <stdio.h> |
39 | 39 | #include <math.h> |
40 | +#ifdef MAC | |
41 | +#include <GLUT/glut.h> | |
42 | +#else | |
40 | 43 | #include <GL/glut.h> |
41 | 44 | #include <omp.h> |
42 | -/** | |
45 | +#endif | |
46 | + /** | |
43 | 47 | * Input variables |
44 | 48 | */ |
45 | 49 | int ng[3]; /**< BZ grids */ |
@@ -59,6 +63,11 @@ int lcolorbar = 1; /**< Switch for colorbar */ | ||
59 | 63 | int lstereo = 1; /**< Switch for the stereogram */ |
60 | 64 | int lmouse = 1; /**< Switch for the mouse function */ |
61 | 65 | /** |
66 | + Menu | |
67 | +*/ | |
68 | +int ibandmenu, ibgmenu, icsmenu, ibzmenu, inlmenu, | |
69 | +icbmenu, itetmenu, istereomenu, imousemenu, imenu; | |
70 | +/** | |
62 | 71 | * Variables for Brillouin zone boundaries |
63 | 72 | */ |
64 | 73 | int nbzl; /**< The number of Lines of 1st Brillouin zone */ |
@@ -1834,17 +1843,14 @@ void main_menu(int value /**< [in] Selected menu*/){ | ||
1834 | 1843 | void menu_mouse(int value /**< [in] Selected menu*/){ |
1835 | 1844 | /**/ |
1836 | 1845 | if (value == 1 && lmouse != 1){ |
1837 | - printf("Mouse drag : Rotate \n\n"); | |
1838 | 1846 | lmouse = 1; |
1839 | 1847 | glutPostRedisplay(); |
1840 | 1848 | } |
1841 | 1849 | if (value == 2 && lmouse != 2){ |
1842 | - printf("Mouse drag : Scale \n\n"); | |
1843 | 1850 | lmouse = 2; |
1844 | 1851 | glutPostRedisplay(); |
1845 | 1852 | } |
1846 | 1853 | if (value == 3 && lmouse != 3){ |
1847 | - printf("Mouse drag : Translate \n\n"); | |
1848 | 1854 | lmouse = 3; |
1849 | 1855 | glutPostRedisplay(); |
1850 | 1856 | } |
@@ -1856,11 +1862,9 @@ void menu_mouse(int value /**< [in] Selected menu*/){ | ||
1856 | 1862 | void menu_band(int value /**< [in] Selected menu*/){ |
1857 | 1863 | /**/ |
1858 | 1864 | if(draw_band[value] == 0){ |
1859 | - printf("band # %d : On \n", value + 1); | |
1860 | 1865 | draw_band[value] = 1; |
1861 | 1866 | } |
1862 | 1867 | else{ |
1863 | - printf("band # %d : Off \n", value + 1); | |
1864 | 1868 | draw_band[value] = 0; |
1865 | 1869 | } |
1866 | 1870 | glutPostRedisplay(); |
@@ -1871,15 +1875,14 @@ void menu_band(int value /**< [in] Selected menu*/){ | ||
1871 | 1875 | */ |
1872 | 1876 | void menu_bgcolor(int value /**<[in] Selected menu*/){ |
1873 | 1877 | if(value == 1 && blackback != 1){ |
1874 | - printf("Background color becomes BLACK. \n"); | |
1875 | 1878 | glClearColor(0.0, 0.0, 0.0, 0.0); |
1876 | 1879 | blackback = 1; |
1877 | 1880 | glutPostRedisplay(); |
1878 | 1881 | } |
1879 | 1882 | else if(value == 2 && blackback != 0){ |
1880 | - printf("Background color becomes WHITE. \n"); | |
1881 | 1883 | glClearColor(1.0, 1.0, 1.0, 0.0); |
1882 | 1884 | blackback = 0; |
1885 | + glutPostRedisplay(); | |
1883 | 1886 | } |
1884 | 1887 | /**/ |
1885 | 1888 | }/* bgcolor change*/ |
@@ -1890,25 +1893,21 @@ void menu_colorscale(int value /**<[in] Selected menu*/){ | ||
1890 | 1893 | /**/ |
1891 | 1894 | if(value == 1 && fcscl != 1){ |
1892 | 1895 | fcscl = 1; |
1893 | - printf("##### Automatic color scale mode ##### \n"); | |
1894 | 1896 | max_and_min(); |
1895 | 1897 | glutPostRedisplay(); |
1896 | 1898 | } |
1897 | 1899 | else if(value == 2 && fcscl != 2){ |
1898 | 1900 | fcscl = 2; |
1899 | - printf("##### Manual color scale mode ##### \n"); | |
1900 | 1901 | max_and_min(); |
1901 | 1902 | glutPostRedisplay(); |
1902 | 1903 | } |
1903 | 1904 | else if(value == 3 && fcscl != 3){ |
1904 | 1905 | fcscl = 3; |
1905 | - printf("##### Unicolor scale mode ##### \n"); | |
1906 | 1906 | max_and_min(); |
1907 | 1907 | glutPostRedisplay(); |
1908 | 1908 | } |
1909 | 1909 | else if(value == 4 && fcscl != 4){ |
1910 | 1910 | fcscl = 4; |
1911 | - printf("##### Periodic color scale mode ##### \n"); | |
1912 | 1911 | max_and_min(); |
1913 | 1912 | glutPostRedisplay(); |
1914 | 1913 | } |
@@ -1920,7 +1919,6 @@ void menu_colorscale(int value /**<[in] Selected menu*/){ | ||
1920 | 1919 | void menu_bzmode(int value /**<[in] Selected menu*/){ |
1921 | 1920 | if(value == 1 && fbz != 1){ |
1922 | 1921 | fbz = 1; |
1923 | - printf("##### First Brillouin zone mode ##### \n\n"); | |
1924 | 1922 | free(kvp); |
1925 | 1923 | free(nmlp); |
1926 | 1924 | free(clr); |
@@ -1939,7 +1937,6 @@ void menu_bzmode(int value /**<[in] Selected menu*/){ | ||
1939 | 1937 | } |
1940 | 1938 | else if(value == 2 && fbz != -1){ |
1941 | 1939 | fbz = -1; |
1942 | - printf("##### Primitive Brillouin zone mode ##### \n\n"); | |
1943 | 1940 | free(kvp); |
1944 | 1941 | free(nmlp); |
1945 | 1942 | free(clr); |
@@ -1962,12 +1959,10 @@ void menu_bzmode(int value /**<[in] Selected menu*/){ | ||
1962 | 1959 | */ |
1963 | 1960 | void menu_nodeline(int value /**<[in] Selected menu*/){ |
1964 | 1961 | if(value == 1 && nodeline != 1){ |
1965 | - printf("Nodeline : on \n\n"); | |
1966 | 1962 | nodeline = 1; |
1967 | 1963 | glutPostRedisplay(); |
1968 | 1964 | } |
1969 | 1965 | else if(value == 2 && nodeline != 0){ |
1970 | - printf("Nodeline : off \n\n"); | |
1971 | 1966 | nodeline = 0; |
1972 | 1967 | glutPostRedisplay(); |
1973 | 1968 | } |
@@ -1978,17 +1973,14 @@ void menu_nodeline(int value /**<[in] Selected menu*/){ | ||
1978 | 1973 | */ |
1979 | 1974 | void menu_stereo(int value /**<[in] Selected menu*/){ |
1980 | 1975 | if(value == 1 && lstereo != 1){ |
1981 | - printf("Stereo : Off. \n\n"); | |
1982 | 1976 | lstereo = 1; |
1983 | 1977 | glutPostRedisplay(); |
1984 | 1978 | } |
1985 | 1979 | if(value == 2 && lstereo != 2){ |
1986 | - printf("Stereo : On. Parallel eyes \n\n"); | |
1987 | 1980 | lstereo = 2; |
1988 | 1981 | glutPostRedisplay(); |
1989 | 1982 | } |
1990 | 1983 | if(value == 3 && lstereo != 3){ |
1991 | - printf("Stereo : On. Crossed eyes \n\n"); | |
1992 | 1984 | lstereo = 3; |
1993 | 1985 | glutPostRedisplay(); |
1994 | 1986 | } |
@@ -1998,12 +1990,10 @@ void menu_stereo(int value /**<[in] Selected menu*/){ | ||
1998 | 1990 | */ |
1999 | 1991 | void menu_colorbar(int value /**<[in] Selected menu*/){ |
2000 | 1992 | if(value == 1 && lcolorbar != 1){ |
2001 | - printf("Color bar : on \n\n"); | |
2002 | 1993 | lcolorbar = 1; |
2003 | 1994 | glutPostRedisplay(); |
2004 | 1995 | } |
2005 | 1996 | if(value == 2 && lcolorbar != 0){ |
2006 | - printf("Color bar : off \n\n"); | |
2007 | 1997 | lcolorbar = 0; |
2008 | 1998 | glutPostRedisplay(); |
2009 | 1999 | } |
@@ -2012,6 +2002,7 @@ void menu_colorbar(int value /**<[in] Selected menu*/){ | ||
2012 | 2002 | * Change tetrahedron |
2013 | 2003 | */ |
2014 | 2004 | void menu_tetra(int value) /**<[in] Selected menu*/{ |
2005 | + int imenu2; | |
2015 | 2006 | /**/ |
2016 | 2007 | if(value != itet){ |
2017 | 2008 | printf("Tetra patern %d \n", value + 1); |
@@ -2031,83 +2022,202 @@ void menu_tetra(int value) /**<[in] Selected menu*/{ | ||
2031 | 2022 | glutPostRedisplay(); |
2032 | 2023 | } |
2033 | 2024 | } /* menu_tetra */ |
2025 | + /** | |
2026 | + Munu | |
2027 | + */ | |
2028 | +void FS_ModifyMenu(int status) | |
2029 | +{ | |
2030 | + int ib; | |
2031 | + char ibstr[20] = { 0 }; | |
2032 | + if (status == GLUT_MENU_IN_USE) { | |
2033 | + glutPostRedisplay(); | |
2034 | + } | |
2035 | + else { | |
2036 | + /**/ | |
2037 | + glutSetMenu(imousemenu); | |
2038 | + for (ib = 0; ib < 3; ib++) glutRemoveMenuItem(1); | |
2039 | + if (lmouse == 1) glutAddMenuEntry("[x] Rotate", 1); | |
2040 | + else glutAddMenuEntry("[ ] Rotate", 1); | |
2041 | + if (lmouse == 2) glutAddMenuEntry("[x] Scale", 2); | |
2042 | + else glutAddMenuEntry("[ ] Scale", 2); | |
2043 | + if (lmouse == 3) glutAddMenuEntry("[x] Translate", 3); | |
2044 | + else glutAddMenuEntry("[ ] Translate", 3); | |
2045 | + | |
2046 | + /* Band menu */ | |
2047 | + glutSetMenu(ibandmenu); | |
2048 | + for (ib = 0; ib < nb; ib++) glutRemoveMenuItem(1); | |
2049 | + for (ib = 0; ib < nb; ib++) { | |
2050 | + if (draw_band[ib] == 1) sprintf(ibstr, "[x] band # %d", ib + 1); | |
2051 | + else sprintf(ibstr, "[ ] band # %d", ib + 1); | |
2052 | + glutAddMenuEntry(ibstr, ib); | |
2053 | + } | |
2054 | + | |
2055 | + /* Background color */ | |
2056 | + glutSetMenu(ibgmenu); | |
2057 | + for (ib = 0; ib < 2; ib++) glutRemoveMenuItem(1); | |
2058 | + if (blackback == 1) glutAddMenuEntry("[x] Black", 1); | |
2059 | + else glutAddMenuEntry("[ ] Black", 1); | |
2060 | + if (blackback == 0) glutAddMenuEntry("[x] White", 2); | |
2061 | + else glutAddMenuEntry("[ ] White", 2); | |
2062 | + | |
2063 | + /* Color scale mode */ | |
2064 | + glutSetMenu(icsmenu); | |
2065 | + for (ib = 0; ib < 4; ib++) glutRemoveMenuItem(1); | |
2066 | + if (fcscl == 1) glutAddMenuEntry("[x] Auto", 1); | |
2067 | + else glutAddMenuEntry("[ ] Auto", 1); | |
2068 | + if (fcscl == 2) glutAddMenuEntry("[x] Manual", 2); | |
2069 | + else glutAddMenuEntry("[ ] Manual", 2); | |
2070 | + if (fcscl == 3) glutAddMenuEntry("[x] Unicolor", 3); | |
2071 | + else glutAddMenuEntry("[ ] Unicolor", 3); | |
2072 | + if (fcscl == 4) glutAddMenuEntry("[x] Periodic", 4); | |
2073 | + else glutAddMenuEntry("[ ] Periodic", 4); | |
2074 | + | |
2075 | + /* Brillouin zone */ | |
2076 | + glutSetMenu(ibzmenu); | |
2077 | + for (ib = 0; ib < 2; ib++) glutRemoveMenuItem(1); | |
2078 | + if (fbz == 1) glutAddMenuEntry("[x] First Brillouin zone", 1); | |
2079 | + else glutAddMenuEntry("[ ] First Brillouin zone", 1); | |
2080 | + if (fbz == -1) glutAddMenuEntry("[x] Primitive Brillouin zone", 2); | |
2081 | + else glutAddMenuEntry("[ ] Primitive Brillouin zone", 2); | |
2082 | + | |
2083 | + /* Nodeline on/off */ | |
2084 | + glutSetMenu(inlmenu); | |
2085 | + for (ib = 0; ib < 2; ib++) glutRemoveMenuItem(1); | |
2086 | + if (nodeline == 1) glutAddMenuEntry("[x] On", 1); | |
2087 | + else glutAddMenuEntry("[ ] On", 1); | |
2088 | + if (nodeline == 0) glutAddMenuEntry("[x] Off", 2); | |
2089 | + else glutAddMenuEntry("[ ] Off", 2); | |
2090 | + | |
2091 | + /* Colorbar on/off */ | |
2092 | + glutSetMenu(icbmenu); | |
2093 | + for (ib = 0; ib < 2; ib++) glutRemoveMenuItem(1); | |
2094 | + if (lcolorbar == 1) glutAddMenuEntry("[x] On", 1); | |
2095 | + else glutAddMenuEntry("[ ] On", 1); | |
2096 | + if (lcolorbar == 0) glutAddMenuEntry("[x] Off", 2); | |
2097 | + else glutAddMenuEntry("[ ] Off", 2); | |
2098 | + | |
2099 | + /* Stereogram */ | |
2100 | + glutSetMenu(istereomenu); | |
2101 | + for (ib = 0; ib < 3; ib++) glutRemoveMenuItem(1); | |
2102 | + if (lstereo == 1) glutAddMenuEntry("[x] None", 1); | |
2103 | + else glutAddMenuEntry("[ ] None", 1); | |
2104 | + if (lstereo == 2) glutAddMenuEntry("[x] Parallel", 2); | |
2105 | + else glutAddMenuEntry("[ ] Parallel", 2); | |
2106 | + if (lstereo == 3) glutAddMenuEntry("[x] Cross", 3); | |
2107 | + else glutAddMenuEntry("[ ] Cross", 3); | |
2108 | + | |
2109 | + /* Tetrahedron */ | |
2110 | + glutSetMenu(itetmenu); | |
2111 | + for (ib = 0; ib < 16; ib++) glutRemoveMenuItem(1); | |
2112 | + for (ib = 0; ib < 16; ib++) { | |
2113 | + if (itet == ib) sprintf(ibstr, "[x] tetra # %d", ib + 1); | |
2114 | + else sprintf(ibstr, "[ ] tetra # %d", ib + 1); | |
2115 | + glutAddMenuEntry(ibstr, ib); | |
2116 | + } | |
2117 | + glutPostRedisplay(); | |
2118 | + } | |
2119 | +} | |
2034 | 2120 | /** |
2035 | - * Glut init function | |
2036 | - */ | |
2037 | -void init(void) | |
2121 | +Munu | |
2122 | +*/ | |
2123 | +void FS_CreateMenu() | |
2038 | 2124 | { |
2039 | 2125 | int ib; |
2040 | - int ibandmenu, ibgmenu, icsmenu, ibzmenu, inlmenu, | |
2041 | - icbmenu, itetmenu, istereomenu, imousemenu; | |
2042 | - char ibstr[20]={0}; | |
2126 | + char ibstr[20] = { 0 }; | |
2043 | 2127 | /**/ |
2044 | - glClearColor(0.0, 0.0, 0.0, 0.0); | |
2045 | - glEnable(GL_DEPTH_TEST); | |
2046 | - glEnable(GL_LIGHTING); | |
2047 | - glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE ); | |
2048 | - glEnable(GL_LIGHT0); | |
2049 | - glEnable(GL_LIGHT1); | |
2050 | - glEnable(GL_NORMALIZE); | |
2051 | - /* Stereogram */ | |
2052 | 2128 | imousemenu = glutCreateMenu(menu_mouse); |
2053 | - glutAddMenuEntry("Rotate", 1); | |
2054 | - glutAddMenuEntry("Scale", 2); | |
2055 | - glutAddMenuEntry("Translate", 3); | |
2129 | + if (lmouse == 1) glutAddMenuEntry("[x] Rotate", 1); | |
2130 | + else glutAddMenuEntry("[ ] Rotate", 1); | |
2131 | + if (lmouse == 2) glutAddMenuEntry("[x] Scale", 2); | |
2132 | + else glutAddMenuEntry("[ ] Scale", 2); | |
2133 | + if (lmouse == 3) glutAddMenuEntry("[x] Translate", 3); | |
2134 | + else glutAddMenuEntry("[ ] Translate", 3); | |
2056 | 2135 | /* Band menu */ |
2057 | 2136 | ibandmenu = glutCreateMenu(menu_band); |
2058 | - for(ib =0;ib < nb; ib++){ | |
2059 | - sprintf(ibstr,"band # %d",ib + 1); | |
2137 | + for (ib = 0; ib < nb; ib++) { | |
2138 | + if (draw_band[ib] == 1) sprintf(ibstr, "[x] band # %d", ib + 1); | |
2139 | + else sprintf(ibstr, "[ ] band # %d", ib + 1); | |
2060 | 2140 | glutAddMenuEntry(ibstr, ib); |
2061 | 2141 | } |
2062 | 2142 | /* Background color */ |
2063 | 2143 | ibgmenu = glutCreateMenu(menu_bgcolor); |
2064 | - glutAddMenuEntry("Black",1); | |
2065 | - glutAddMenuEntry("White",2); | |
2144 | + if (blackback == 1) glutAddMenuEntry("[x] Black", 1); | |
2145 | + else glutAddMenuEntry("[ ] Black", 1); | |
2146 | + if (blackback == 0) glutAddMenuEntry("[x] White", 2); | |
2147 | + else glutAddMenuEntry("[ ] White", 2); | |
2066 | 2148 | /* Color scale mode */ |
2067 | 2149 | icsmenu = glutCreateMenu(menu_colorscale); |
2068 | - glutAddMenuEntry("Auto",1); | |
2069 | - glutAddMenuEntry("Manual",2); | |
2070 | - glutAddMenuEntry("Unicolor",3); | |
2071 | - glutAddMenuEntry("Periodic",4); | |
2150 | + if (fcscl == 1) glutAddMenuEntry("[x] Auto", 1); | |
2151 | + else glutAddMenuEntry("[ ] Auto", 1); | |
2152 | + if (fcscl == 2) glutAddMenuEntry("[x] Manual", 2); | |
2153 | + else glutAddMenuEntry("[ ] Manual", 2); | |
2154 | + if (fcscl == 3) glutAddMenuEntry("[x] Unicolor", 3); | |
2155 | + else glutAddMenuEntry("[ ] Unicolor", 3); | |
2156 | + if (fcscl == 4) glutAddMenuEntry("[x] Periodic", 4); | |
2157 | + else glutAddMenuEntry("[ ] Periodic", 4); | |
2072 | 2158 | /* Brillouin zone */ |
2073 | 2159 | ibzmenu = glutCreateMenu(menu_bzmode); |
2074 | - glutAddMenuEntry("First Brillouin zone",1); | |
2075 | - glutAddMenuEntry("Primitive Brillouin zone",2); | |
2160 | + if (fbz == 1) glutAddMenuEntry("[x] First Brillouin zone", 1); | |
2161 | + else glutAddMenuEntry("[ ] First Brillouin zone", 1); | |
2162 | + if (fbz == -1) glutAddMenuEntry("[x] Primitive Brillouin zone", 2); | |
2163 | + else glutAddMenuEntry("[ ] Primitive Brillouin zone", 2); | |
2076 | 2164 | /* Nodeline on/off */ |
2077 | 2165 | inlmenu = glutCreateMenu(menu_nodeline); |
2078 | - glutAddMenuEntry("On",1); | |
2079 | - glutAddMenuEntry("Off",2); | |
2166 | + if (nodeline == 1) glutAddMenuEntry("[x] On", 1); | |
2167 | + else glutAddMenuEntry("[ ] On", 1); | |
2168 | + if (nodeline == 0) glutAddMenuEntry("[x] Off", 2); | |
2169 | + else glutAddMenuEntry("[ ] Off", 2); | |
2080 | 2170 | /* Colorbar on/off */ |
2081 | 2171 | icbmenu = glutCreateMenu(menu_colorbar); |
2082 | - glutAddMenuEntry("On",1); | |
2083 | - glutAddMenuEntry("Off",2); | |
2172 | + if (lcolorbar == 1) glutAddMenuEntry("[x] On", 1); | |
2173 | + else glutAddMenuEntry("[ ] On", 1); | |
2174 | + if (lcolorbar == 0) glutAddMenuEntry("[x] Off", 2); | |
2175 | + else glutAddMenuEntry("[ ] Off", 2); | |
2084 | 2176 | /* Stereogram */ |
2085 | 2177 | istereomenu = glutCreateMenu(menu_stereo); |
2086 | - glutAddMenuEntry("None",1); | |
2087 | - glutAddMenuEntry("Parallel",2); | |
2088 | - glutAddMenuEntry("Cross",3); | |
2178 | + if (lstereo == 1) glutAddMenuEntry("[x] None", 1); | |
2179 | + else glutAddMenuEntry("[ ] None", 1); | |
2180 | + if (lstereo == 2) glutAddMenuEntry("[x] Parallel", 2); | |
2181 | + else glutAddMenuEntry("[ ] Parallel", 2); | |
2182 | + if (lstereo == 3) glutAddMenuEntry("[x] Cross", 3); | |
2183 | + else glutAddMenuEntry("[ ] Cross", 3); | |
2089 | 2184 | /* Tetrahedron */ |
2090 | 2185 | itetmenu = glutCreateMenu(menu_tetra); |
2091 | - for(ib =0;ib < 16; ib++){ | |
2092 | - sprintf(ibstr,"tetra # %d",ib + 1); | |
2093 | - glutAddMenuEntry(ibstr,ib); | |
2186 | + for (ib = 0; ib < 16; ib++) { | |
2187 | + if (itet == ib) sprintf(ibstr, "[x] tetra # %d", ib + 1); | |
2188 | + else sprintf(ibstr, "[ ] tetra # %d", ib + 1); | |
2189 | + glutAddMenuEntry(ibstr, ib); | |
2094 | 2190 | } |
2095 | - /* | |
2096 | - Main menu | |
2191 | + /* | |
2192 | + Main menu | |
2097 | 2193 | */ |
2098 | - glutCreateMenu(main_menu); | |
2099 | - glutAddSubMenu("Band",ibandmenu); | |
2194 | + imenu = glutCreateMenu(main_menu); | |
2195 | + glutAddSubMenu("Band", ibandmenu); | |
2100 | 2196 | glutAddSubMenu("Mouse Drag", imousemenu); |
2101 | 2197 | glutAddMenuEntry("Shift Fermi energy", 2); |
2102 | - glutAddSubMenu("Background color",ibgmenu); | |
2103 | - glutAddSubMenu("Color scale mode",icsmenu); | |
2104 | - glutAddSubMenu("Brillouin zone",ibzmenu); | |
2105 | - glutAddSubMenu("Node lines",inlmenu); | |
2106 | - glutAddSubMenu("Color bar On/Off",icbmenu); | |
2107 | - glutAddSubMenu("Stereogram",istereomenu); | |
2108 | - glutAddSubMenu("Tetrahedron",itetmenu); | |
2109 | - glutAddMenuEntry("Exit",9); | |
2198 | + glutAddSubMenu("Background color", ibgmenu); | |
2199 | + glutAddSubMenu("Color scale mode", icsmenu); | |
2200 | + glutAddSubMenu("Brillouin zone", ibzmenu); | |
2201 | + glutAddSubMenu("Node lines", inlmenu); | |
2202 | + glutAddSubMenu("Color bar On/Off", icbmenu); | |
2203 | + glutAddSubMenu("Stereogram", istereomenu); | |
2204 | + glutAddSubMenu("Tetrahedron", itetmenu); | |
2205 | + glutAddMenuEntry("Exit", 9); | |
2110 | 2206 | glutAttachMenu(GLUT_RIGHT_BUTTON); |
2207 | +}/** | |
2208 | + * Glut init function | |
2209 | + */ | |
2210 | +void init(void) | |
2211 | +{ | |
2212 | + glClearColor(0.0, 0.0, 0.0, 0.0); | |
2213 | + glEnable(GL_DEPTH_TEST); | |
2214 | + glEnable(GL_LIGHTING); | |
2215 | + glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE ); | |
2216 | + glEnable(GL_LIGHT0); | |
2217 | + glEnable(GL_LIGHT1); | |
2218 | + glEnable(GL_NORMALIZE); | |
2219 | + /* Menu */ | |
2220 | + FS_CreateMenu(); | |
2111 | 2221 | } /* init */ |
2112 | 2222 | /** |
2113 | 2223 | * Main routine |
@@ -2128,8 +2238,10 @@ int main( | ||
2128 | 2238 | /**/ |
2129 | 2239 | max_and_min_bz(); |
2130 | 2240 | /**/ |
2241 | +#ifndef MAC | |
2131 | 2242 | #pragma omp parallel |
2132 | 2243 | printf("Threads : %d \n", omp_get_num_threads()); |
2244 | +#endif | |
2133 | 2245 | /**/ |
2134 | 2246 | printf("\n##### First Brillouin zone mode ##### \n\n"); |
2135 | 2247 | query = 1; |
@@ -2159,6 +2271,7 @@ int main( | ||
2159 | 2271 | glutMotionFunc(motion); |
2160 | 2272 | glutKeyboardFunc(keyboard); |
2161 | 2273 | glutSpecialFunc(special_key); |
2274 | + glutMenuStateFunc(FS_ModifyMenu); | |
2162 | 2275 | init(); |
2163 | 2276 | glutMainLoop(); |
2164 | 2277 | return 0; |