Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/avi_play/src/lib/graphics/importer/material.h @ 6611

Last change on this file since 6611 was 6467, checked in by bensch, 19 years ago

orxonox/trunk: Texture loading with GL_TEXTURE_* in ResourceManager and Material

File size: 2.0 KB
Line 
1/*!
2  \file material.h
3  \brief Contains the Material Class that handles Material for 3D-Objects.
4  @todo free SDL-surface when deleting Material.
5  @todo delete imgNameWithPath after use creation.
6*/
7
8#ifndef _MATERIAL_H
9#define _MATERIAL_H
10#include "base_object.h"
11
12#if HAVE_CONFIG_H
13#include <config.h>
14#endif /* HAVE_CONFIG_H */
15
16#ifndef NULL
17#define NULL 0            //!< a pointer to NULL
18#endif
19
20// FORWARD DECLARATIONS //
21class Texture;
22
23//! Class to handle Materials.
24class Material : public BaseObject
25{
26 public:
27  Material (const char* mtlName = NULL);
28  virtual ~Material ();
29
30  bool select () const;
31
32  void setIllum (int illum);
33  void setIllum (char* illum);
34  void setDiffuse (float r, float g, float b);
35  void setDiffuse (char* rgb);
36  void setAmbient (float r, float g, float b);
37  void setAmbient (char* rgb);
38  void setSpecular (float r, float g, float b);
39  void setSpecular (char* rgb);
40  void setShininess (float shini);
41  void setShininess (char* shini);
42  void setTransparency (float trans);
43  void setTransparency (char* trans);
44
45 // MAPPING //
46  void setDiffuseMap(const char* dMap, GLenum target = GL_TEXTURE_2D);
47  void setAmbientMap(const char* aMap, GLenum target = GL_TEXTURE_2D);
48  void setSpecularMap(const char* sMap, GLenum target = GL_TEXTURE_2D);
49  void setBump(const char* bump);
50
51  static void addTexturePath(const char* pathName);
52
53  private:
54    int         illumModel;       //!< The IlluminationModel is either flat or smooth.
55    float       diffuse [4];      //!< The diffuse color of the Material.
56    float       ambient [4];      //!< The ambient color of the Material.
57    float       specular [4];     //!< The specular color of the Material.
58    float       shininess;        //!< The shininess of the Material.
59    float       transparency;     //!< The transperency of the Material.
60  public:
61    Texture*    diffuseTexture;   //!< The diffuse texture of the Material.
62    Texture*    ambientTexture;   //!< The ambient texture of the Material.
63    Texture*    specularTexture;  //!< The specular texture of the Material.
64};
65#endif
Note: See TracBrowser for help on using the repository browser.