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