pattern.h 654 B

1234567891011121314151617181920212223242526272829303132333435363738
  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. #include <stdio.h>
  15. class Shape;
  16. class Pattern
  17. {
  18. public:
  19. Colour a;
  20. Colour b;
  21. Matrix transformMatrix;
  22. Matrix inverseTransform;
  23. public:
  24. Pattern(Colour a, Colour b);
  25. virtual Colour patternAt(Tuple point) = 0;
  26. virtual void dumpMe(FILE *fp);
  27. void setTransform(Matrix transform);
  28. Colour patternAtObject(Shape *object, Tuple point);
  29. };
  30. #endif /* DORAYME_PATTERN_H */