pattern.h 600 B

123456789101112131415161718192021222324252627282930313233343536
  1. /*
  2. * DoRayMe - a quick and dirty Raytracer
  3. * Pattern header
  4. *
  5. * Created by Manoël Trapier
  6. * Copyright (c) 2020 986-Studio.
  7. *
  8. */
  9. #ifndef DORAYME_PATTERN_H
  10. #define DORAYME_PATTERN_H
  11. #include <colour.h>
  12. #include <tuple.h>
  13. #include <matrix.h>
  14. class Shape;
  15. class Pattern
  16. {
  17. public:
  18. Colour a;
  19. Colour b;
  20. Matrix transformMatrix;
  21. Matrix inverseTransform;
  22. public:
  23. Pattern(Colour a, Colour b);
  24. virtual Colour patternAt(Tuple point) = 0;
  25. void setTransform(Matrix transform);
  26. Colour patternAtObject(Shape *object, Tuple point);
  27. };
  28. #endif /* DORAYME_PATTERN_H */