colour.h 933 B

1234567891011121314151617181920212223242526272829303132
  1. /*
  2. * DoRayMe - a quick and dirty Raytracer
  3. * Colour header
  4. *
  5. * Created by Manoël Trapier
  6. * Copyright (c) 2020 986-Studio.
  7. *
  8. */
  9. #ifndef DORAYME_COLOUR_H
  10. #define DORAYME_COLOUR_H
  11. #include <tuple.h>
  12. class Colour : public Tuple
  13. {
  14. public:
  15. Colour(double red, double green, double blue) : Tuple(red, green, blue, 0) {};
  16. double red() { return this->x; };
  17. double green() { return this->y; };
  18. double blue() { return this->z; };
  19. double red(double v) { this->x = v; return v; };
  20. double green(double v) { this->y = v; return v; };
  21. double blue(double v) { this->z = v; return v; };
  22. using Tuple::operator*;
  23. Colour operator*(const Colour &b) const { return Colour(this->x * b.x,
  24. this->y * b.y,
  25. this->z * b.z); };
  26. };
  27. #endif /* DORAYME_COLOUR_H */