ImfFlatImage.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. //
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. // Copyright (c) Contributors to the OpenEXR Project.
  4. //
  5. #ifndef INCLUDED_IMF_FLAT_IMAGE_H
  6. #define INCLUDED_IMF_FLAT_IMAGE_H
  7. //----------------------------------------------------------------------------
  8. //
  9. // class FlatImage
  10. //
  11. // For an explanation of images, levels and channels,
  12. // see the comments in header file Image.h.
  13. //
  14. //----------------------------------------------------------------------------
  15. #include "ImfFlatImageLevel.h"
  16. #include "ImfImage.h"
  17. #include "ImfUtilExport.h"
  18. #include "ImfTileDescription.h"
  19. OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
  20. class IMFUTIL_EXPORT_TYPE FlatImage : public Image
  21. {
  22. public:
  23. //
  24. // Constructors and destructor.
  25. // The default constructor constructs an image with an empty data
  26. // window level mode ONE_LEVEL and level rounding mode ROUND_DOWN.
  27. //
  28. IMFUTIL_EXPORT FlatImage();
  29. IMFUTIL_EXPORT
  30. FlatImage(const IMATH_NAMESPACE::Box2i &dataWindow,
  31. LevelMode levelMode = ONE_LEVEL,
  32. LevelRoundingMode levelRoundingMode = ROUND_DOWN);
  33. IMFUTIL_EXPORT virtual ~FlatImage();
  34. //
  35. // Accessing image levels by level number
  36. //
  37. IMFUTIL_EXPORT virtual FlatImageLevel & level(int l = 0);
  38. IMFUTIL_EXPORT virtual const FlatImageLevel & level(int l = 0) const;
  39. IMFUTIL_EXPORT virtual FlatImageLevel & level(int lx, int ly);
  40. IMFUTIL_EXPORT virtual const FlatImageLevel & level(int lx, int ly) const;
  41. protected:
  42. IMFUTIL_EXPORT virtual FlatImageLevel *
  43. newLevel (int lx, int ly, const IMATH_NAMESPACE::Box2i &dataWindow);
  44. };
  45. OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
  46. #endif