UGDK  0.5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
visualeffect.h
Go to the documentation of this file.
1 #ifndef UGDK_STRUCTURE_VISUALEFFECT_H_
2 #define UGDK_STRUCTURE_VISUALEFFECT_H_
3 
4 #include <ugdk/structure/color.h>
5 
6 namespace ugdk {
7 namespace structure {
8 
9 class VisualEffect {
10  public:
12  VisualEffect() : visible_(true) {}
13 
15 
18  VisualEffect(const Color& color, bool _visible = true) :
19  color_(color), visible_(_visible) {}
20 
22 
23  // Getters.
27  const Color& color() const { return color_; }
28  bool visible() const { return visible_; }
29 
30  void set_color(const Color& _color) { color_ = _color; }
31  void set_visible(bool _visible) { visible_ = _visible; }
35  void Compose(const VisualEffect& other) {
36  color_.Compose(other.color_);
37  visible_ = visible_ && other.visible_;
38  }
39 
40  VisualEffect& operator *= (const VisualEffect& rhs) {
41  Compose(rhs);
42  return *this;
43  }
44 
45  VisualEffect operator * (const VisualEffect& rhs) const {
46  VisualEffect result(*this);
47  result.Compose(rhs);
48  return result;
49  }
50 
51  private:
52  Color color_;
53  bool visible_;
54 };
55 
56 } // namespace structure
57 } // namespace ugdk
58 
59 #endif // UGDK_STRUCTURE_VISUALEFFECT_H_
bool visible() const
Definition: visualeffect.h:28
VisualEffect(const Color &color, bool _visible=true)
Creates a new VisualEffect object with the specified values.
Definition: visualeffect.h:18
Definition: color.h:9
void Compose(const Color &rhs)
Definition: color.h:24
Definition: animation.h:11
Definition: visualeffect.h:9
VisualEffect operator*(const VisualEffect &rhs) const
Definition: visualeffect.h:44
void set_visible(bool _visible)
Definition: visualeffect.h:31
const Color & color() const
Definition: visualeffect.h:27
void set_color(const Color &_color)
Definition: visualeffect.h:30
void Compose(const VisualEffect &other)
Definition: visualeffect.h:34
VisualEffect()
Creates an identity VisualEffect;.
Definition: visualeffect.h:12
VisualEffect & operator*=(const VisualEffect &rhs)
Definition: visualeffect.h:39
~VisualEffect()
Definition: visualeffect.h:21