1 ///////////////////////////////////////////////////////////////////////////
2 //
3 // Copyright (c) 2011, Industrial Light & Magic, a division of Lucas
4 // Digital Ltd. LLC
5 //
6 // All rights reserved.
7 //
8 // Redistribution and use in source and binary forms, with or without
9 // modification, are permitted provided that the following conditions are
10 // met:
11 // * Redistributions of source code must retain the above copyright
12 // notice, this list of conditions and the following disclaimer.
13 // * Redistributions in binary form must reproduce the above
14 // copyright notice, this list of conditions and the following disclaimer
15 // in the documentation and/or other materials provided with the
16 // distribution.
17 // * Neither the name of Industrial Light & Magic nor the names of
18 // its contributors may be used to endorse or promote products derived
19 // from this software without specific prior written permission.
20 //
21 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 //
33 ///////////////////////////////////////////////////////////////////////////
34
35 #include "ImfTiledInputPart.h"
36 #include "ImfNamespace.h"
37
38 OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
39
TiledInputPart(MultiPartInputFile & multiPartFile,int partNumber)40 TiledInputPart::TiledInputPart(MultiPartInputFile& multiPartFile, int partNumber)
41 {
42 file = multiPartFile.getInputPart<TiledInputFile>(partNumber);
43 }
44
45 const char *
fileName() const46 TiledInputPart::fileName () const
47 {
48 return file->fileName();
49 }
50
51 const Header &
header() const52 TiledInputPart::header () const
53 {
54 return file->header();
55 }
56
57 int
version() const58 TiledInputPart::version () const
59 {
60 return file->version();
61 }
62
63 void
setFrameBuffer(const FrameBuffer & frameBuffer)64 TiledInputPart::setFrameBuffer (const FrameBuffer &frameBuffer)
65 {
66 file->setFrameBuffer(frameBuffer);
67 }
68
69 const FrameBuffer &
frameBuffer() const70 TiledInputPart::frameBuffer () const
71 {
72 return file->frameBuffer();
73 }
74
75 bool
isComplete() const76 TiledInputPart::isComplete () const
77 {
78 return file->isComplete();
79 }
80
81 unsigned int
tileXSize() const82 TiledInputPart::tileXSize () const
83 {
84 return file->tileXSize();
85 }
86
87 unsigned int
tileYSize() const88 TiledInputPart::tileYSize () const
89 {
90 return file->tileYSize();
91 }
92
93 LevelMode
levelMode() const94 TiledInputPart::levelMode () const
95 {
96 return file->levelMode();
97 }
98
99 LevelRoundingMode
levelRoundingMode() const100 TiledInputPart::levelRoundingMode () const
101 {
102 return file->levelRoundingMode();
103 }
104
105 int
numLevels() const106 TiledInputPart::numLevels () const
107 {
108 return file->numLevels();
109 }
110
111 int
numXLevels() const112 TiledInputPart::numXLevels () const
113 {
114 return file->numXLevels();
115 }
116
117 int
numYLevels() const118 TiledInputPart::numYLevels () const
119 {
120 return file->numYLevels();
121 }
122
123 bool
isValidLevel(int lx,int ly) const124 TiledInputPart::isValidLevel (int lx, int ly) const
125 {
126 return file->isValidLevel(lx, ly);
127 }
128
129 int
levelWidth(int lx) const130 TiledInputPart::levelWidth (int lx) const
131 {
132 return file->levelWidth(lx);
133 }
134
135 int
levelHeight(int ly) const136 TiledInputPart::levelHeight (int ly) const
137 {
138 return file->levelHeight(ly);
139 }
140
141 int
numXTiles(int lx) const142 TiledInputPart::numXTiles (int lx) const
143 {
144 return file->numXTiles(lx);
145 }
146
147 int
numYTiles(int ly) const148 TiledInputPart::numYTiles (int ly) const
149 {
150 return file->numYTiles(ly);
151 }
152
153 IMATH_NAMESPACE::Box2i
dataWindowForLevel(int l) const154 TiledInputPart::dataWindowForLevel (int l) const
155 {
156 return file->dataWindowForLevel(l);
157 }
158
159 IMATH_NAMESPACE::Box2i
dataWindowForLevel(int lx,int ly) const160 TiledInputPart::dataWindowForLevel (int lx, int ly) const
161 {
162 return file->dataWindowForLevel(lx, ly);
163 }
164
165 IMATH_NAMESPACE::Box2i
dataWindowForTile(int dx,int dy,int l) const166 TiledInputPart::dataWindowForTile (int dx, int dy, int l) const
167 {
168 return file->dataWindowForTile(dx, dy, l);
169 }
170
171 IMATH_NAMESPACE::Box2i
dataWindowForTile(int dx,int dy,int lx,int ly) const172 TiledInputPart::dataWindowForTile (int dx, int dy, int lx, int ly) const
173 {
174 return file->dataWindowForTile(dx, dy, lx, ly);
175 }
176
177 void
readTile(int dx,int dy,int l)178 TiledInputPart::readTile (int dx, int dy, int l)
179 {
180 file->readTile(dx, dy, l);
181 }
182
183 void
readTile(int dx,int dy,int lx,int ly)184 TiledInputPart::readTile (int dx, int dy, int lx, int ly)
185 {
186 file->readTile(dx, dy, lx, ly);
187 }
188
189 void
readTiles(int dx1,int dx2,int dy1,int dy2,int lx,int ly)190 TiledInputPart::readTiles (int dx1, int dx2, int dy1, int dy2, int lx, int ly)
191 {
192 file->readTiles(dx1, dx2, dy1, dy2, lx, ly);
193 }
194
195 void
readTiles(int dx1,int dx2,int dy1,int dy2,int l)196 TiledInputPart::readTiles (int dx1, int dx2, int dy1, int dy2, int l)
197 {
198 file->readTiles(dx1, dx2, dy1, dy2, l);
199 }
200
201 void
rawTileData(int & dx,int & dy,int & lx,int & ly,const char * & pixelData,int & pixelDataSize)202 TiledInputPart::rawTileData (int &dx, int &dy, int &lx, int &ly,
203 const char *&pixelData, int &pixelDataSize)
204 {
205 file->rawTileData(dx, dy, lx, ly, pixelData, pixelDataSize);
206 }
207
208 OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EXIT
209