Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/trunk/src/lib/graphics/importer/material.h @ 4584

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

orxonox/trunk: TrackElement and Material are BaseObjects now

File size: 1.9 KB
RevLine 
[2842]1/*!
2  \file material.h
3  \brief Contains the Material Class that handles Material for 3D-Objects.
[3186]4  \todo free SDL-surface when deleting Material.
5  \todo delete imgNameWithPath after use creation.
[2842]6*/
7
[2776]8#ifndef _MATERIAL_H
9#define _MATERIAL_H
[4584]10#include "base_object.h"
[2804]11
[4584]12#if HAVE_CONFIG_H
13#include <config.h>
[3140]14#endif /* HAVE_CONFIG_H */
15
[3894]16#ifndef NULL
[4466]17#define NULL 0            //!< a pointer to NULL
[3894]18#endif
19
[3427]20// FORWARD DEFINITIONS //
21class Texture;
[3140]22
[2842]23//! Class to handle Materials.
[4584]24class Material : public BaseObject
[2776]25{
26 public:
[3894]27  Material (const char* mtlName = NULL);
[3140]28  ~Material ();
[2778]29
[3140]30  bool select (void);
[2778]31
[2776]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);
[2836]40  void setShininess (float shini);
41  void setShininess (char* shini);
[2776]42  void setTransparency (float trans);
43  void setTransparency (char* trans);
44
[3140]45 // MAPPING //
[3803]46  void setDiffuseMap(const char* dMap);
47  void setAmbientMap(const char* aMap);
48  void setSpecularMap(const char* sMap);
49  void setBump(const char* bump);
[3070]50
[4466]51  static void addTexturePath(const char* pathName);
52
[3140]53 private:
[4466]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.
[2776]60
[4466]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.
[2776]64};
65#endif
Note: See TracBrowser for help on using the repository browser.