1 /////////////////////////////////////////////////////////////////////////////////// 2 /// OpenGL Mathematics (glm.g-truc.net) 3 /// 4 /// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) 5 /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 /// of this software and associated documentation files (the "Software"), to deal 7 /// in the Software without restriction, including without limitation the rights 8 /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 /// copies of the Software, and to permit persons to whom the Software is 10 /// furnished to do so, subject to the following conditions: 11 /// 12 /// The above copyright notice and this permission notice shall be included in 13 /// all copies or substantial portions of the Software. 14 /// 15 /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 /// THE SOFTWARE. 22 /// 23 /// @ref core 24 /// @file glm/glm.cpp 25 /// @date 2013-04-22 / 2013-04-22 26 /// @author Christophe Riccio 27 /////////////////////////////////////////////////////////////////////////////////// 28 29 #include <glm/glm.hpp> 30 #include <glm/gtc/quaternion.hpp> 31 #include <glm/gtx/dual_quaternion.hpp> 32 33 namespace glm{ 34 namespace detail 35 { 36 // tvec1 type explicit instantiation 37 /* 38 template struct tvec1<uint8, lowp>; 39 template struct tvec1<uint16, lowp>; 40 template struct tvec1<uint32, lowp>; 41 template struct tvec1<uint64, lowp>; 42 template struct tvec1<int8, lowp>; 43 template struct tvec1<int16, lowp>; 44 template struct tvec1<int32, lowp>; 45 template struct tvec1<int64, lowp>; 46 template struct tvec1<float16, lowp>; 47 template struct tvec1<float32, lowp>; 48 template struct tvec1<float64, lowp>; 49 50 template struct tvec1<uint8, mediump>; 51 template struct tvec1<uint16, mediump>; 52 template struct tvec1<uint32, mediump>; 53 template struct tvec1<uint64, mediump>; 54 template struct tvec1<int8, mediump>; 55 template struct tvec1<int16, mediump>; 56 template struct tvec1<int32, mediump>; 57 template struct tvec1<int64, mediump>; 58 template struct tvec1<float16, mediump>; 59 template struct tvec1<float32, mediump>; 60 template struct tvec1<float64, mediump>; 61 62 template struct tvec1<uint8, highp>; 63 template struct tvec1<uint16, highp>; 64 template struct tvec1<uint32, highp>; 65 template struct tvec1<uint64, highp>; 66 template struct tvec1<int8, highp>; 67 template struct tvec1<int16, highp>; 68 template struct tvec1<int32, highp>; 69 template struct tvec1<int64, highp>; 70 template struct tvec1<float16, highp>; 71 template struct tvec1<float32, highp>; 72 template struct tvec1<float64, highp>; 73 */ 74 // tvec2 type explicit instantiation 75 template struct tvec2<uint8, lowp>; 76 template struct tvec2<uint16, lowp>; 77 template struct tvec2<uint32, lowp>; 78 template struct tvec2<uint64, lowp>; 79 template struct tvec2<int8, lowp>; 80 template struct tvec2<int16, lowp>; 81 template struct tvec2<int32, lowp>; 82 template struct tvec2<int64, lowp>; 83 template struct tvec2<float32, lowp>; 84 template struct tvec2<float64, lowp>; 85 86 template struct tvec2<uint8, mediump>; 87 template struct tvec2<uint16, mediump>; 88 template struct tvec2<uint32, mediump>; 89 template struct tvec2<uint64, mediump>; 90 template struct tvec2<int8, mediump>; 91 template struct tvec2<int16, mediump>; 92 template struct tvec2<int32, mediump>; 93 template struct tvec2<int64, mediump>; 94 template struct tvec2<float32, mediump>; 95 template struct tvec2<float64, mediump>; 96 97 template struct tvec2<uint8, highp>; 98 template struct tvec2<uint16, highp>; 99 template struct tvec2<uint32, highp>; 100 template struct tvec2<uint64, highp>; 101 template struct tvec2<int8, highp>; 102 template struct tvec2<int16, highp>; 103 template struct tvec2<int32, highp>; 104 template struct tvec2<int64, highp>; 105 template struct tvec2<float32, highp>; 106 template struct tvec2<float64, highp>; 107 108 // tvec3 type explicit instantiation 109 template struct tvec3<uint8, lowp>; 110 template struct tvec3<uint16, lowp>; 111 template struct tvec3<uint32, lowp>; 112 template struct tvec3<uint64, lowp>; 113 template struct tvec3<int8, lowp>; 114 template struct tvec3<int16, lowp>; 115 template struct tvec3<int32, lowp>; 116 template struct tvec3<int64, lowp>; 117 template struct tvec3<float32, lowp>; 118 template struct tvec3<float64, lowp>; 119 120 template struct tvec3<uint8, mediump>; 121 template struct tvec3<uint16, mediump>; 122 template struct tvec3<uint32, mediump>; 123 template struct tvec3<uint64, mediump>; 124 template struct tvec3<int8, mediump>; 125 template struct tvec3<int16, mediump>; 126 template struct tvec3<int32, mediump>; 127 template struct tvec3<int64, mediump>; 128 template struct tvec3<float32, mediump>; 129 template struct tvec3<float64, mediump>; 130 131 template struct tvec3<uint8, highp>; 132 template struct tvec3<uint16, highp>; 133 template struct tvec3<uint32, highp>; 134 template struct tvec3<uint64, highp>; 135 template struct tvec3<int8, highp>; 136 template struct tvec3<int16, highp>; 137 template struct tvec3<int32, highp>; 138 template struct tvec3<int64, highp>; 139 template struct tvec3<float32, highp>; 140 template struct tvec3<float64, highp>; 141 142 // tvec4 type explicit instantiation 143 template struct tvec4<uint8, lowp>; 144 template struct tvec4<uint16, lowp>; 145 template struct tvec4<uint32, lowp>; 146 template struct tvec4<uint64, lowp>; 147 template struct tvec4<int8, lowp>; 148 template struct tvec4<int16, lowp>; 149 template struct tvec4<int32, lowp>; 150 template struct tvec4<int64, lowp>; 151 template struct tvec4<float32, lowp>; 152 template struct tvec4<float64, lowp>; 153 154 template struct tvec4<uint8, mediump>; 155 template struct tvec4<uint16, mediump>; 156 template struct tvec4<uint32, mediump>; 157 template struct tvec4<uint64, mediump>; 158 template struct tvec4<int8, mediump>; 159 template struct tvec4<int16, mediump>; 160 template struct tvec4<int32, mediump>; 161 template struct tvec4<int64, mediump>; 162 template struct tvec4<float32, mediump>; 163 template struct tvec4<float64, mediump>; 164 165 template struct tvec4<uint8, highp>; 166 template struct tvec4<uint16, highp>; 167 template struct tvec4<uint32, highp>; 168 template struct tvec4<uint64, highp>; 169 template struct tvec4<int8, highp>; 170 template struct tvec4<int16, highp>; 171 template struct tvec4<int32, highp>; 172 template struct tvec4<int64, highp>; 173 template struct tvec4<float32, highp>; 174 template struct tvec4<float64, highp>; 175 176 // tmat2x2 type explicit instantiation 177 template struct tmat2x2<float32, lowp>; 178 template struct tmat2x2<float64, lowp>; 179 180 template struct tmat2x2<float32, mediump>; 181 template struct tmat2x2<float64, mediump>; 182 183 template struct tmat2x2<float32, highp>; 184 template struct tmat2x2<float64, highp>; 185 186 // tmat2x3 type explicit instantiation 187 template struct tmat2x3<float32, lowp>; 188 template struct tmat2x3<float64, lowp>; 189 190 template struct tmat2x3<float32, mediump>; 191 template struct tmat2x3<float64, mediump>; 192 193 template struct tmat2x3<float32, highp>; 194 template struct tmat2x3<float64, highp>; 195 196 // tmat2x4 type explicit instantiation 197 template struct tmat2x4<float32, lowp>; 198 template struct tmat2x4<float64, lowp>; 199 200 template struct tmat2x4<float32, mediump>; 201 template struct tmat2x4<float64, mediump>; 202 203 template struct tmat2x4<float32, highp>; 204 template struct tmat2x4<float64, highp>; 205 206 // tmat3x2 type explicit instantiation 207 template struct tmat3x2<float32, lowp>; 208 template struct tmat3x2<float64, lowp>; 209 210 template struct tmat3x2<float32, mediump>; 211 template struct tmat3x2<float64, mediump>; 212 213 template struct tmat3x2<float32, highp>; 214 template struct tmat3x2<float64, highp>; 215 216 // tmat3x3 type explicit instantiation 217 template struct tmat3x3<float32, lowp>; 218 template struct tmat3x3<float64, lowp>; 219 220 template struct tmat3x3<float32, mediump>; 221 template struct tmat3x3<float64, mediump>; 222 223 template struct tmat3x3<float32, highp>; 224 template struct tmat3x3<float64, highp>; 225 226 // tmat3x4 type explicit instantiation 227 template struct tmat3x4<float32, lowp>; 228 template struct tmat3x4<float64, lowp>; 229 230 template struct tmat3x4<float32, mediump>; 231 template struct tmat3x4<float64, mediump>; 232 233 template struct tmat3x4<float32, highp>; 234 template struct tmat3x4<float64, highp>; 235 236 // tmat4x2 type explicit instantiation 237 template struct tmat4x2<float32, lowp>; 238 template struct tmat4x2<float64, lowp>; 239 240 template struct tmat4x2<float32, mediump>; 241 template struct tmat4x2<float64, mediump>; 242 243 template struct tmat4x2<float32, highp>; 244 template struct tmat4x2<float64, highp>; 245 246 // tmat4x3 type explicit instantiation 247 template struct tmat4x3<float32, lowp>; 248 template struct tmat4x3<float64, lowp>; 249 250 template struct tmat4x3<float32, mediump>; 251 template struct tmat4x3<float64, mediump>; 252 253 template struct tmat4x3<float32, highp>; 254 template struct tmat4x3<float64, highp>; 255 256 // tmat4x4 type explicit instantiation 257 template struct tmat4x4<float32, lowp>; 258 template struct tmat4x4<float64, lowp>; 259 260 template struct tmat4x4<float32, mediump>; 261 template struct tmat4x4<float64, mediump>; 262 263 template struct tmat4x4<float32, highp>; 264 template struct tmat4x4<float64, highp>; 265 266 // tquat type explicit instantiation 267 template struct tquat<float32, lowp>; 268 template struct tquat<float64, lowp>; 269 270 template struct tquat<float32, mediump>; 271 template struct tquat<float64, mediump>; 272 273 template struct tquat<float32, highp>; 274 template struct tquat<float64, highp>; 275 276 //tdualquat type explicit instantiation 277 template struct tdualquat<float32, lowp>; 278 template struct tdualquat<float64, lowp>; 279 280 template struct tdualquat<float32, mediump>; 281 template struct tdualquat<float64, mediump>; 282 283 template struct tdualquat<float32, highp>; 284 template struct tdualquat<float64, highp>; 285 286 }//namespace detail 287 }//namespace glm 288 289