worldbuilder.h 1023 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*
  2. * DoRayMe - a quick and dirty Raytracer
  3. * Worldbuilder header
  4. *
  5. * Created by Manoël Trapier
  6. * Copyright (c) 2020 986-Studio.
  7. *
  8. */
  9. #ifndef DORAYME_WORLDBUILDER_H
  10. #define DORAYME_WORLDBUILDER_H
  11. #include <world.h>
  12. #include <camera.h>
  13. /* Let's keep a single header for now, will see later */
  14. class DefaultWorld : public World
  15. {
  16. public:
  17. DefaultWorld();
  18. };
  19. /* Not implemented yet */
  20. class Hw3File : public World
  21. {
  22. private:
  23. Matrix transformStack[50];
  24. uint32_t transStackCount;
  25. public:
  26. double currentAmbient;
  27. double currentShininess;
  28. double currentSpecular;
  29. double currentDiffuse;
  30. double currentEmission;
  31. double currentReflective;
  32. double currentTransparency;
  33. double currentRefIndex;
  34. Colour currentColour;
  35. Matrix cam;
  36. double camFoV;
  37. public:
  38. Matrix getTransformMatrix();
  39. void popTransformMatrix();
  40. void pushTransformMatrix();
  41. void applyTransformMatrix(Matrix t);
  42. Hw3File(const char *filename);
  43. };
  44. #endif /* DORAYME_WORLDBUILDER_H */