Main Page   Namespace List   Alphabetical List   Data Structures   File List   Data Fields   Globals  

material.h

Go to the documentation of this file.
00001 
00002 //                          material.h                                  //
00003 //                         ------------                                 //
00004 //    begin                : Thu Oct 09 2003                            //
00005 //    copyright            : (C) 2003 by cbaudry (CEA/DSM/SPP)          //
00006 //    email                : cedric.baudry@tremplin-utc.fr              //
00008 
00010 //                                                                        //
00011 //   This program is free software; you can redistribute it and/or modify //
00012 //   it under the terms of the GNU General Public License as published by //
00013 //   the Free Software Foundation, version 2 of the License               //
00014 //                                                                        //
00016 
00017 #pragma once
00018 
00019 #include <GL/gl.h>
00020 
00021 #define NUM_MATERIALS 28
00022 #define NB_COLORS 13
00023 
00024 static double coltable[NB_COLORS][3] = {
00025     {1.00, 1.00, 1.00},         /* White */
00026     {0.00, 0.00, 0.00},         /* Black  */
00027     {1.00, 0.85, 0.70},         /* PeachPuff */
00028     {0.90, 0.50, 0.30},         /* Peach */
00029     {0.44, 0.50, 0.56},         /* SlateGrey */
00030     {0.39, 0.58, 0.93},         /* CornflowerBlue */
00031     {0.50, 0.50, 0.83},         /* Aquamarine */
00032     {0.49, 0.92, 0.00},         /* LawnGreen */
00033     {0.74, 0.71, 0.42},         /* DarkKhaki */
00034     {1.00, 0.84, 0.00},         /* Gold */
00035     {0.80, 0.36, 0.36},         /* IndianRed */
00036     {0.55, 0.27, 0.07},         /* SaddleBrown */
00037     {1.00, 0.08, 0.56},         /* DeepPink */
00038 };
00039 
00040 
00041 // Materials serves as an index with one entry for
00042 // each of the NUM_MATERIALS materials, see material.h
00043 enum materials
00044 {
00045 
00046     EMERALD, JADE, OBSIDIAN, PEARL, RUBY, TURQUOISE,
00047 
00048     BRASS, BRONZE, CHROME, COPPER, GOLD, SILVER,
00049 
00050     BLACK_PLASTIC, CYAN_PLASTIC, GREEN_PLASTIC,
00051 
00052     RED_PLASTIC, WHITE_PLASTIC, YELLOW_PLASTIC,
00053 
00054     BLACK_RUBBER, CYAN_RUBBER, GREEN_RUBBER,
00055 
00056     RED_RUBBER, WHITE_RUBBER, YELLOW_RUBBER,
00057 
00058     BRIGHT_WHITE, LESS_BRIGHT_WHITE,
00059 
00060     WARM_WHITE, COOL_WHITE
00061 };
00062 
00063 // material names so we can get stringdescriptions
00064 
00065 static char *matNames[NUM_MATERIALS][50] = {
00066 
00067     "EMERALD", "JADE", "OBSIDIAN", "PEARL", "RUBY", "TURQUOISE",
00068 
00069     "BRASS", "BRONZE", "CHROME", "COPPER", "GOLD", "SILVER",
00070 
00071     "BLACK_PLASTIC", "CYAN_PLASTIC", "GREEN_PLASTIC",
00072 
00073     "RED_PLASTIC", "WHITE_PLASTIC", "YELLOW_PLASTIC",
00074 
00075     "BLACK_RUBBER", "CYAN_RUBBER", "GREEN_RUBBER",
00076 
00077     "RED_RUBBER", "WHITE_RUBBER", "YELLOW_RUBBER",
00078 
00079     "BRIGHT_WHITE", "LESS_BRIGHT_WHITE",
00080 
00081     "WARM_WHITE", "COOL_WHITE"
00082 };
00083 
00084 // description of materials, 10 floating values each:
00085 // ambient(RGB), diffuse(RGB), specular(RGB), shininess
00086 
00087 static GLfloat Material[NUM_MATERIALS][10] = {
00088 
00089     //EMERALD
00090 
00091     0.0215f, 0.1745f, 0.0215f,
00092 
00093     0.07568f, 0.61424f, 0.07568f,
00094 
00095     0.633f, 0.727811f, 0.633f,
00096 
00097     0.6f,
00098 
00099     //JADE
00100 
00101     0.135f, 0.2225f, 0.1575f,
00102 
00103     0.54f, 0.89f, 0.63f,
00104 
00105     0.316228f, 0.316228f, 0.316228f,
00106 
00107     0.1f,
00108 
00109     //OBSIDIAN
00110 
00111     0.05375f, 0.05f, 0.06625f,
00112 
00113     0.18275f, 0.17f, 0.22525f,
00114 
00115     0.332741f, 0.328634f, 0.346435f,
00116 
00117     0.3f,
00118 
00119     //PEARL
00120 
00121     0.25f, 0.20725f, 0.20725f,
00122 
00123     1.0f, 0.829f, 0.829f,
00124 
00125     0.296648f, 0.296648f, 0.296648f,
00126 
00127     0.088f,
00128 
00129     //RUBY
00130 
00131     0.1745f, 0.01175f, 0.01175f,
00132 
00133     0.61424f, 0.04136f, 0.04136f,
00134 
00135     0.727811f, 0.626959f, 0.626959f,
00136 
00137     0.6f,
00138 
00139     //TURQUOISE
00140 
00141     0.1f, 0.18725f, 0.1745f,
00142 
00143     0.396f, 0.74151f, 0.69102f,
00144 
00145     0.297254f, 0.30829f, 0.306678f,
00146 
00147     0.1f,
00148 
00149     //BRASS
00150 
00151     0.329412f, 0.223529f, 0.027451f,
00152 
00153     0.780392f, 0.568627f, 0.113725f,
00154 
00155     0.992157f, 0.941176f, 0.807843f,
00156 
00157     0.21794872f,
00158 
00159     //BRONZE
00160 
00161     0.2125f, 0.1275f, 0.054f,
00162 
00163     0.714f, 0.4284f, 0.18144f,
00164 
00165     0.393548f, 0.271906f, 0.166721f,
00166 
00167     0.2f,
00168 
00169     //CHROME
00170 
00171     0.25f, 0.25f, 0.25f,
00172 
00173     0.4f, 0.4f, 0.4f,
00174 
00175     0.774597f, 0.774597f, 0.774597f,
00176 
00177     0.6f,
00178 
00179     //COPPER
00180 
00181     0.19125f, 0.0735f, 0.0225f,
00182 
00183     0.7038f, 0.27048f, 0.0828f,
00184 
00185     0.256777f, 0.137622f, 0.086014f,
00186 
00187     0.1f,
00188 
00189     //GOLD
00190 
00191     0.24725f, 0.1995f, 0.0745f,
00192 
00193     0.75164f, 0.60648f, 0.22648f,
00194 
00195     0.628281f, 0.555802f, 0.366065f,
00196 
00197     0.4f,
00198 
00199     //SILVER
00200 
00201     0.19225f, 0.19225f, 0.19225f,
00202 
00203     0.50754f, 0.50754f, 0.50754f,
00204 
00205     0.508273f, 0.508273f, 0.508273f,
00206 
00207     0.4f,
00208 
00209     //BLACK PLASTIC
00210 
00211     0.0f, 0.0f, 0.0f,
00212 
00213     0.01f, 0.01f, 0.01f,
00214 
00215     0.50f, 0.50f, 0.50f,
00216 
00217     0.25f,
00218 
00219     //CYAN PLASTIC
00220 
00221     0.0f, 0.1f, 0.06f,
00222 
00223     0.0f, 0.50980392f, 0.50980392f,
00224 
00225     0.50196078f, 0.50196078f, 0.50196078f,
00226 
00227     0.25f,
00228 
00229     //GREEN PLASTIC
00230 
00231     0.0f, 0.0f, 0.0f,
00232 
00233     0.1f, 0.35f, 0.1f,
00234 
00235     0.45f, 0.55f, 0.45f,
00236 
00237     0.25f,
00238 
00239     //RED PLASTIC
00240 
00241     0.0f, 0.0f, 0.0f,
00242 
00243     0.5f, 0.0f, 0.0f,
00244 
00245     0.7f, 0.6f, 0.6f,
00246 
00247     0.25f,
00248 
00249     //WHITE PLASTIC
00250 
00251     0.0f, 0.0f, 0.0f,
00252 
00253     0.55f, 0.55f, 0.55f,
00254 
00255     0.70f, 0.70f, 0.70f,
00256 
00257     0.25f,
00258 
00259     //YELLOW PLASTIC
00260 
00261     0.0f, 0.0f, 0.0f,
00262 
00263     0.5f, 0.5f, 0.0f,
00264 
00265     0.60f, 0.60f, 0.50f,
00266 
00267     0.25f,
00268 
00269     //BLACK RUBBER
00270 
00271     0.02f, 0.02f, 0.02f,
00272 
00273     0.01f, 0.01f, 0.01f,
00274 
00275     0.4f, 0.4f, 0.4f,
00276 
00277     0.078125f,
00278 
00279     //CYAN RUBBER
00280 
00281     0.0f, 0.05f, 0.05f,
00282 
00283     0.4f, 0.5f, 0.5f,
00284 
00285     0.04f, 0.7f, 0.7f,
00286 
00287     0.078125f,
00288 
00289     //GREEN RUBBER
00290 
00291     0.0f, 0.05f, 0.0f,
00292 
00293     0.4f, 0.5f, 0.4f,
00294 
00295     0.04f, 0.7f, 0.04f,
00296 
00297     0.078125f,
00298 
00299     //RED RUBBER
00300 
00301     0.05f, 0.0f, 0.0f,
00302 
00303     0.5f, 0.4f, 0.4f,
00304 
00305     0.7f, 0.04f, 0.04f,
00306 
00307     0.078125f,
00308 
00309     //WHITE RUBBER
00310 
00311     0.05f, 0.05f, 0.05f,
00312 
00313     0.5f, 0.5f, 0.5f,
00314 
00315     0.7f, 0.7f, 0.7f,
00316 
00317     0.078125f,
00318 
00319     //YELLOW RUBBER
00320 
00321     0.05f, 0.05f, 0.0f,
00322 
00323     0.5f, 0.5f, 0.4f,
00324 
00325     0.7f, 0.7f, 0.04f,
00326 
00327     0.078125f,
00328 
00329     // bright white
00330 
00331     0.2f, 0.2f, 0.2f,
00332 
00333     1.0f, 1.0f, 1.0f,
00334 
00335     0.8f, 0.8f, 0.8f,
00336 
00337     0.4f,
00338 
00339     // less bright white
00340 
00341     0.2f, 0.2f, 0.2f,
00342 
00343     0.8f, 0.8f, 0.8f,
00344 
00345     0.5f, 0.5f, 0.5f,
00346 
00347     0.35f,
00348 
00349     // warmish white
00350 
00351     0.3f, 0.2f, 0.2f,
00352 
00353     1.0f, 0.9f, 0.8f,
00354 
00355     0.4f, 0.2f, 0.2f,
00356 
00357     0.35f,
00358 
00359     // coolish white
00360 
00361     0.2f, 0.2f, 0.3f,
00362 
00363     0.8f, 0.9f, 1.0f,
00364 
00365     0.2f, 0.2f, 0.4f,
00366 
00367     0.35f
00368 };
00369 
00370 void doMaterial (GLfloat * pMat, GLenum gSide);
00371 

Generated on Wed Feb 18 16:32:50 2004 for POVAMA by doxygen1.2.18