| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- //
- // SPDX-License-Identifier: BSD-3-Clause
- // Copyright (c) Contributors to the OpenEXR Project.
- //
- #ifndef INCLUDED_IMF_IMAGE_LEVEL_H
- #define INCLUDED_IMF_IMAGE_LEVEL_H
- //----------------------------------------------------------------------------
- //
- // class ImageLevel
- //
- // For an explanation of images, levels and channels,
- // see the comments in header file Image.h.
- //
- //----------------------------------------------------------------------------
- #include "ImfUtilExport.h"
- #include "ImfImageChannel.h"
- #include "ImfImageChannelRenaming.h"
- #include <ImathBox.h>
- #include <string>
- OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
- class Image;
- class IMFUTIL_EXPORT_TYPE ImageLevel
- {
- public:
- //
- // Access to the image to which the level belongs.
- //
- Image & image () {return _image;}
- const Image & image () const {return _image;}
- //
- // Access to the level number and the data window of this level.
- //
- int xLevelNumber () const {return _xLevelNumber;}
- int yLevelNumber () const {return _yLevelNumber;}
- const IMATH_NAMESPACE::Box2i & dataWindow () const {return _dataWindow;}
- protected:
-
- friend class Image;
- IMFUTIL_EXPORT
- ImageLevel (Image& image,
- int xLevelNumber,
- int yLevelNumber);
- IMFUTIL_EXPORT
- virtual ~ImageLevel ();
- IMFUTIL_EXPORT
- virtual void resize (const IMATH_NAMESPACE::Box2i& dataWindow);
- IMFUTIL_EXPORT
- virtual void shiftPixels (int dx, int dy);
- virtual void insertChannel (const std::string& name,
- PixelType type,
- int xSampling,
- int ySampling,
- bool pLinear) = 0;
- virtual void eraseChannel (const std::string& name) = 0;
- virtual void clearChannels () = 0;
- virtual void renameChannel (const std::string &oldName,
- const std::string &newName) = 0;
- virtual void renameChannels (const RenamingMap &oldToNewNames) = 0;
- IMFUTIL_EXPORT
- void throwChannelExists(const std::string& name) const;
- IMFUTIL_EXPORT
- void throwBadChannelName(const std::string& name) const;
- IMFUTIL_EXPORT
- void throwBadChannelNameOrType (const std::string& name) const;
- private:
- ImageLevel (const ImageLevel &); // not implemented
- ImageLevel & operator = (const ImageLevel &); // not implemented
- Image & _image;
- int _xLevelNumber;
- int _yLevelNumber;
- IMATH_NAMESPACE::Box2i _dataWindow;
- };
- OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
- #endif
|