Walls And Holes  1
tilematerial.h
Go to the documentation of this file.
1 #ifndef TILEMATERIAL_H
2 #define TILEMATERIAL_H
3 
4 #include "imageandsource.h"
5 
6 #include <QObject>
7 
8 class TileMaterial : public QObject
9 {
10  Q_OBJECT
11 
12 public:
16  TileMaterial(QObject *parent = nullptr);
17 
21  TileMaterial(QString name,
23  float ambient,
24  float diffuse,
25  float specular,
26  float shininess,
27  QObject *parent = nullptr);
28 
29  QString name() const;
31  float ambient() const;
32  float diffuse() const;
33  float specular() const;
34  float shininess() const;
35 
36 
37  void setName(QString name);
39  void setAmbient(float ambient);
40  void setDiffuse(float diffuse);
41  void setSpecular(float specular);
42  void setShininess(float shininess);
43 
46 
47  bool operator ==(const TileMaterial &other)
48  {
49  return mAmbient == other.mAmbient
50  && mDiffuse == other.mDiffuse
51  && mSpecular == other.mSpecular
52  && mShininess == other.mShininess
53  && mTexture == other.mTexture
54  && mName == other.mName;
55  }
56 
57 signals:
58  void nameChanged(QString newName);
59  void textureChanged();
60  void phongParamsChanged();
61  void aboutToBeRemoved();
62 
63 private:
64  QString mName;
65 
66  SharedImageAndSource mTexture;
67  float mAmbient;
68  float mDiffuse;
69  float mSpecular;
70  float mShininess;
71 
72 
73  /* Singleton for the default material. */
74  static TileMaterial *defaultMaterial;
75  static TileMaterial *defaultGroundMaterial;
76 
77  /* Singleton for the default texture. */
78  static SharedImageAndSource getDefaultTexture();
79  static SharedImageAndSource getDefaultGroundTexture();
80  static SharedImageAndSource DefaultTexture;
81  static SharedImageAndSource DefaultGroundTexture;
82 };
83 
84 #endif // TILEMATERIAL_H
float ambient() const
Definition: tilematerial.cpp:27
void setDiffuse(float diffuse)
Definition: tilematerial.cpp:36
SharedImageAndSource texture() const
Definition: tilematerial.cpp:26
void setSpecular(float specular)
Definition: tilematerial.cpp:37
float diffuse() const
Definition: tilematerial.cpp:28
QSharedPointer< ImageAndSource > SharedImageAndSource
Definition: imageandsource.h:8
float specular() const
Definition: tilematerial.cpp:29
void phongParamsChanged()
static TileMaterial * getDefaultGroundMaterial()
Definition: tilematerial.cpp:51
QString name() const
Definition: tilematerial.cpp:25
static TileMaterial * getDefaultMaterial()
Definition: tilematerial.cpp:42
void aboutToBeRemoved()
void setTexture(SharedImageAndSource texture)
Definition: tilematerial.cpp:34
void nameChanged(QString newName)
TileMaterial(QObject *parent=nullptr)
Creates a TileMaterial with a default material.
Definition: tilematerial.cpp:3
void setShininess(float shininess)
Definition: tilematerial.cpp:38
void setAmbient(float ambient)
Definition: tilematerial.cpp:35
void textureChanged()
void setName(QString name)
Definition: tilematerial.cpp:33
bool operator==(const TileMaterial &other)
Definition: tilematerial.h:47
Definition: tilematerial.h:8
float shininess() const
Definition: tilematerial.cpp:30