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 M44fAttribute 41// 42//----------------------------------------------------------------------------- 43 44#include <ImfMatrixAttribute.h> 45 46 47namespace Imf { 48 49 50template <> 51const char * 52M33fAttribute::staticTypeName () 53{ 54 return "m33f"; 55} 56 57 58template <> 59void 60M33fAttribute::writeValueTo (OStream &os, int version) const 61{ 62 Xdr::write <StreamIO> (os, _value[0][0]); 63 Xdr::write <StreamIO> (os, _value[0][1]); 64 Xdr::write <StreamIO> (os, _value[0][2]); 65 66 Xdr::write <StreamIO> (os, _value[1][0]); 67 Xdr::write <StreamIO> (os, _value[1][1]); 68 Xdr::write <StreamIO> (os, _value[1][2]); 69 70 Xdr::write <StreamIO> (os, _value[2][0]); 71 Xdr::write <StreamIO> (os, _value[2][1]); 72 Xdr::write <StreamIO> (os, _value[2][2]); 73} 74 75 76template <> 77void 78M33fAttribute::readValueFrom (IStream &is, int size, int version) 79{ 80 Xdr::read <StreamIO> (is, _value[0][0]); 81 Xdr::read <StreamIO> (is, _value[0][1]); 82 Xdr::read <StreamIO> (is, _value[0][2]); 83 84 Xdr::read <StreamIO> (is, _value[1][0]); 85 Xdr::read <StreamIO> (is, _value[1][1]); 86 Xdr::read <StreamIO> (is, _value[1][2]); 87 88 Xdr::read <StreamIO> (is, _value[2][0]); 89 Xdr::read <StreamIO> (is, _value[2][1]); 90 Xdr::read <StreamIO> (is, _value[2][2]); 91} 92 93 94template <> 95const char * 96M44fAttribute::staticTypeName () 97{ 98 return "m44f"; 99} 100 101 102template <> 103void 104M44fAttribute::writeValueTo (OStream &os, int version) const 105{ 106 Xdr::write <StreamIO> (os, _value[0][0]); 107 Xdr::write <StreamIO> (os, _value[0][1]); 108 Xdr::write <StreamIO> (os, _value[0][2]); 109 Xdr::write <StreamIO> (os, _value[0][3]); 110 111 Xdr::write <StreamIO> (os, _value[1][0]); 112 Xdr::write <StreamIO> (os, _value[1][1]); 113 Xdr::write <StreamIO> (os, _value[1][2]); 114 Xdr::write <StreamIO> (os, _value[1][3]); 115 116 Xdr::write <StreamIO> (os, _value[2][0]); 117 Xdr::write <StreamIO> (os, _value[2][1]); 118 Xdr::write <StreamIO> (os, _value[2][2]); 119 Xdr::write <StreamIO> (os, _value[2][3]); 120 121 Xdr::write <StreamIO> (os, _value[3][0]); 122 Xdr::write <StreamIO> (os, _value[3][1]); 123 Xdr::write <StreamIO> (os, _value[3][2]); 124 Xdr::write <StreamIO> (os, _value[3][3]); 125} 126 127 128template <> 129void 130M44fAttribute::readValueFrom (IStream &is, int size, int version) 131{ 132 Xdr::read <StreamIO> (is, _value[0][0]); 133 Xdr::read <StreamIO> (is, _value[0][1]); 134 Xdr::read <StreamIO> (is, _value[0][2]); 135 Xdr::read <StreamIO> (is, _value[0][3]); 136 137 Xdr::read <StreamIO> (is, _value[1][0]); 138 Xdr::read <StreamIO> (is, _value[1][1]); 139 Xdr::read <StreamIO> (is, _value[1][2]); 140 Xdr::read <StreamIO> (is, _value[1][3]); 141 142 Xdr::read <StreamIO> (is, _value[2][0]); 143 Xdr::read <StreamIO> (is, _value[2][1]); 144 Xdr::read <StreamIO> (is, _value[2][2]); 145 Xdr::read <StreamIO> (is, _value[2][3]); 146 147 Xdr::read <StreamIO> (is, _value[3][0]); 148 Xdr::read <StreamIO> (is, _value[3][1]); 149 Xdr::read <StreamIO> (is, _value[3][2]); 150 Xdr::read <StreamIO> (is, _value[3][3]); 151} 152 153 154} // namespace Imf 155