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