ImfTiledInputPart.h 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. //
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. // Copyright (c) Contributors to the OpenEXR Project.
  4. //
  5. #ifndef IMFTILEDINPUTPART_H_
  6. #define IMFTILEDINPUTPART_H_
  7. #include "ImfForward.h"
  8. #include "ImfTileDescription.h"
  9. #include <ImathBox.h>
  10. OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
  11. //-----------------------------------------------------------------------------
  12. // class TiledInputPart:
  13. //
  14. // Same interface as TiledInputFile. Please have a reference to TiledInputFile.
  15. //-----------------------------------------------------------------------------
  16. class IMF_EXPORT_TYPE TiledInputPart
  17. {
  18. public:
  19. IMF_EXPORT
  20. TiledInputPart(MultiPartInputFile& multiPartFile, int partNumber);
  21. IMF_EXPORT
  22. const char * fileName () const;
  23. IMF_EXPORT
  24. const Header & header () const;
  25. IMF_EXPORT
  26. int version () const;
  27. IMF_EXPORT
  28. void setFrameBuffer (const FrameBuffer &frameBuffer);
  29. IMF_EXPORT
  30. const FrameBuffer & frameBuffer () const;
  31. IMF_EXPORT
  32. bool isComplete () const;
  33. IMF_EXPORT
  34. unsigned int tileXSize () const;
  35. IMF_EXPORT
  36. unsigned int tileYSize () const;
  37. IMF_EXPORT
  38. LevelMode levelMode () const;
  39. IMF_EXPORT
  40. LevelRoundingMode levelRoundingMode () const;
  41. IMF_EXPORT
  42. int numLevels () const;
  43. IMF_EXPORT
  44. int numXLevels () const;
  45. IMF_EXPORT
  46. int numYLevels () const;
  47. IMF_EXPORT
  48. bool isValidLevel (int lx, int ly) const;
  49. IMF_EXPORT
  50. int levelWidth (int lx) const;
  51. IMF_EXPORT
  52. int levelHeight (int ly) const;
  53. IMF_EXPORT
  54. int numXTiles (int lx = 0) const;
  55. IMF_EXPORT
  56. int numYTiles (int ly = 0) const;
  57. IMF_EXPORT
  58. IMATH_NAMESPACE::Box2i dataWindowForLevel (int l = 0) const;
  59. IMF_EXPORT
  60. IMATH_NAMESPACE::Box2i dataWindowForLevel (int lx, int ly) const;
  61. IMF_EXPORT
  62. IMATH_NAMESPACE::Box2i dataWindowForTile (int dx, int dy, int l = 0) const;
  63. IMF_EXPORT
  64. IMATH_NAMESPACE::Box2i dataWindowForTile (int dx, int dy,
  65. int lx, int ly) const;
  66. IMF_EXPORT
  67. void readTile (int dx, int dy, int l = 0);
  68. IMF_EXPORT
  69. void readTile (int dx, int dy, int lx, int ly);
  70. IMF_EXPORT
  71. void readTiles (int dx1, int dx2, int dy1, int dy2,
  72. int lx, int ly);
  73. IMF_EXPORT
  74. void readTiles (int dx1, int dx2, int dy1, int dy2,
  75. int l = 0);
  76. IMF_EXPORT
  77. void rawTileData (int &dx, int &dy,
  78. int &lx, int &ly,
  79. const char *&pixelData,
  80. int &pixelDataSize);
  81. private:
  82. TiledInputFile* file;
  83. // for internal use - allow TiledOutputFile access to file for copyPixels
  84. friend class TiledOutputFile;
  85. };
  86. OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
  87. #endif /* IMFTILEDINPUTPART_H_ */