1 ///////////////////////////////////////////////////////////////////////////
2 //
3 // Copyright (c) 2002, 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
36
37 //-----------------------------------------------------------------------------
38 //
39 // class M33fAttribute
40 // class M33dAttribute
41 // class M44fAttribute
42 // class M44dAttribute
43 //
44 //-----------------------------------------------------------------------------
45
46 #include <ImfMatrixAttribute.h>
47
48
49 OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
50
51
52 using namespace OPENEXR_IMF_INTERNAL_NAMESPACE;
53
54
55 template <>
56 const char *
staticTypeName()57 M33fAttribute::staticTypeName ()
58 {
59 return "m33f";
60 }
61
62
63 template <>
64 void
writeValueTo(OPENEXR_IMF_INTERNAL_NAMESPACE::OStream & os,int version) const65 M33fAttribute::writeValueTo (OPENEXR_IMF_INTERNAL_NAMESPACE::OStream &os, int version) const
66 {
67 Xdr::write <StreamIO> (os, _value[0][0]);
68 Xdr::write <StreamIO> (os, _value[0][1]);
69 Xdr::write <StreamIO> (os, _value[0][2]);
70
71 Xdr::write <StreamIO> (os, _value[1][0]);
72 Xdr::write <StreamIO> (os, _value[1][1]);
73 Xdr::write <StreamIO> (os, _value[1][2]);
74
75 Xdr::write <StreamIO> (os, _value[2][0]);
76 Xdr::write <StreamIO> (os, _value[2][1]);
77 Xdr::write <StreamIO> (os, _value[2][2]);
78 }
79
80
81 template <>
82 void
readValueFrom(OPENEXR_IMF_INTERNAL_NAMESPACE::IStream & is,int size,int version)83 M33fAttribute::readValueFrom (OPENEXR_IMF_INTERNAL_NAMESPACE::IStream &is, int size, int version)
84 {
85 Xdr::read <StreamIO> (is, _value[0][0]);
86 Xdr::read <StreamIO> (is, _value[0][1]);
87 Xdr::read <StreamIO> (is, _value[0][2]);
88
89 Xdr::read <StreamIO> (is, _value[1][0]);
90 Xdr::read <StreamIO> (is, _value[1][1]);
91 Xdr::read <StreamIO> (is, _value[1][2]);
92
93 Xdr::read <StreamIO> (is, _value[2][0]);
94 Xdr::read <StreamIO> (is, _value[2][1]);
95 Xdr::read <StreamIO> (is, _value[2][2]);
96 }
97
98
99 template <>
100 const char *
staticTypeName()101 M33dAttribute::staticTypeName ()
102 {
103 return "m33d";
104 }
105
106
107 template <>
108 void
writeValueTo(OPENEXR_IMF_INTERNAL_NAMESPACE::OStream & os,int version) const109 M33dAttribute::writeValueTo (OPENEXR_IMF_INTERNAL_NAMESPACE::OStream &os, int version) const
110 {
111 Xdr::write <StreamIO> (os, _value[0][0]);
112 Xdr::write <StreamIO> (os, _value[0][1]);
113 Xdr::write <StreamIO> (os, _value[0][2]);
114
115 Xdr::write <StreamIO> (os, _value[1][0]);
116 Xdr::write <StreamIO> (os, _value[1][1]);
117 Xdr::write <StreamIO> (os, _value[1][2]);
118
119 Xdr::write <StreamIO> (os, _value[2][0]);
120 Xdr::write <StreamIO> (os, _value[2][1]);
121 Xdr::write <StreamIO> (os, _value[2][2]);
122 }
123
124
125 template <>
126 void
readValueFrom(OPENEXR_IMF_INTERNAL_NAMESPACE::IStream & is,int size,int version)127 M33dAttribute::readValueFrom (OPENEXR_IMF_INTERNAL_NAMESPACE::IStream &is, int size, int version)
128 {
129 Xdr::read <StreamIO> (is, _value[0][0]);
130 Xdr::read <StreamIO> (is, _value[0][1]);
131 Xdr::read <StreamIO> (is, _value[0][2]);
132
133 Xdr::read <StreamIO> (is, _value[1][0]);
134 Xdr::read <StreamIO> (is, _value[1][1]);
135 Xdr::read <StreamIO> (is, _value[1][2]);
136
137 Xdr::read <StreamIO> (is, _value[2][0]);
138 Xdr::read <StreamIO> (is, _value[2][1]);
139 Xdr::read <StreamIO> (is, _value[2][2]);
140 }
141
142
143 template <>
144 const char *
staticTypeName()145 M44fAttribute::staticTypeName ()
146 {
147 return "m44f";
148 }
149
150
151 template <>
152 void
writeValueTo(OPENEXR_IMF_INTERNAL_NAMESPACE::OStream & os,int version) const153 M44fAttribute::writeValueTo (OPENEXR_IMF_INTERNAL_NAMESPACE::OStream &os, int version) const
154 {
155 Xdr::write <StreamIO> (os, _value[0][0]);
156 Xdr::write <StreamIO> (os, _value[0][1]);
157 Xdr::write <StreamIO> (os, _value[0][2]);
158 Xdr::write <StreamIO> (os, _value[0][3]);
159
160 Xdr::write <StreamIO> (os, _value[1][0]);
161 Xdr::write <StreamIO> (os, _value[1][1]);
162 Xdr::write <StreamIO> (os, _value[1][2]);
163 Xdr::write <StreamIO> (os, _value[1][3]);
164
165 Xdr::write <StreamIO> (os, _value[2][0]);
166 Xdr::write <StreamIO> (os, _value[2][1]);
167 Xdr::write <StreamIO> (os, _value[2][2]);
168 Xdr::write <StreamIO> (os, _value[2][3]);
169
170 Xdr::write <StreamIO> (os, _value[3][0]);
171 Xdr::write <StreamIO> (os, _value[3][1]);
172 Xdr::write <StreamIO> (os, _value[3][2]);
173 Xdr::write <StreamIO> (os, _value[3][3]);
174 }
175
176
177 template <>
178 void
readValueFrom(OPENEXR_IMF_INTERNAL_NAMESPACE::IStream & is,int size,int version)179 M44fAttribute::readValueFrom (OPENEXR_IMF_INTERNAL_NAMESPACE::IStream &is, int size, int version)
180 {
181 Xdr::read <StreamIO> (is, _value[0][0]);
182 Xdr::read <StreamIO> (is, _value[0][1]);
183 Xdr::read <StreamIO> (is, _value[0][2]);
184 Xdr::read <StreamIO> (is, _value[0][3]);
185
186 Xdr::read <StreamIO> (is, _value[1][0]);
187 Xdr::read <StreamIO> (is, _value[1][1]);
188 Xdr::read <StreamIO> (is, _value[1][2]);
189 Xdr::read <StreamIO> (is, _value[1][3]);
190
191 Xdr::read <StreamIO> (is, _value[2][0]);
192 Xdr::read <StreamIO> (is, _value[2][1]);
193 Xdr::read <StreamIO> (is, _value[2][2]);
194 Xdr::read <StreamIO> (is, _value[2][3]);
195
196 Xdr::read <StreamIO> (is, _value[3][0]);
197 Xdr::read <StreamIO> (is, _value[3][1]);
198 Xdr::read <StreamIO> (is, _value[3][2]);
199 Xdr::read <StreamIO> (is, _value[3][3]);
200 }
201
202
203 template <>
204 const char *
staticTypeName()205 M44dAttribute::staticTypeName ()
206 {
207 return "m44d";
208 }
209
210
211 template <>
212 void
writeValueTo(OPENEXR_IMF_INTERNAL_NAMESPACE::OStream & os,int version) const213 M44dAttribute::writeValueTo (OPENEXR_IMF_INTERNAL_NAMESPACE::OStream &os, int version) const
214 {
215 Xdr::write <StreamIO> (os, _value[0][0]);
216 Xdr::write <StreamIO> (os, _value[0][1]);
217 Xdr::write <StreamIO> (os, _value[0][2]);
218 Xdr::write <StreamIO> (os, _value[0][3]);
219
220 Xdr::write <StreamIO> (os, _value[1][0]);
221 Xdr::write <StreamIO> (os, _value[1][1]);
222 Xdr::write <StreamIO> (os, _value[1][2]);
223 Xdr::write <StreamIO> (os, _value[1][3]);
224
225 Xdr::write <StreamIO> (os, _value[2][0]);
226 Xdr::write <StreamIO> (os, _value[2][1]);
227 Xdr::write <StreamIO> (os, _value[2][2]);
228 Xdr::write <StreamIO> (os, _value[2][3]);
229
230 Xdr::write <StreamIO> (os, _value[3][0]);
231 Xdr::write <StreamIO> (os, _value[3][1]);
232 Xdr::write <StreamIO> (os, _value[3][2]);
233 Xdr::write <StreamIO> (os, _value[3][3]);
234 }
235
236
237 template <>
238 void
readValueFrom(OPENEXR_IMF_INTERNAL_NAMESPACE::IStream & is,int size,int version)239 M44dAttribute::readValueFrom (OPENEXR_IMF_INTERNAL_NAMESPACE::IStream &is, int size, int version)
240 {
241 Xdr::read <StreamIO> (is, _value[0][0]);
242 Xdr::read <StreamIO> (is, _value[0][1]);
243 Xdr::read <StreamIO> (is, _value[0][2]);
244 Xdr::read <StreamIO> (is, _value[0][3]);
245
246 Xdr::read <StreamIO> (is, _value[1][0]);
247 Xdr::read <StreamIO> (is, _value[1][1]);
248 Xdr::read <StreamIO> (is, _value[1][2]);
249 Xdr::read <StreamIO> (is, _value[1][3]);
250
251 Xdr::read <StreamIO> (is, _value[2][0]);
252 Xdr::read <StreamIO> (is, _value[2][1]);
253 Xdr::read <StreamIO> (is, _value[2][2]);
254 Xdr::read <StreamIO> (is, _value[2][3]);
255
256 Xdr::read <StreamIO> (is, _value[3][0]);
257 Xdr::read <StreamIO> (is, _value[3][1]);
258 Xdr::read <StreamIO> (is, _value[3][2]);
259 Xdr::read <StreamIO> (is, _value[3][3]);
260 }
261
262
263 OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EXIT
264