Permalink
Browse files

Add the GLM math library (which is just a bunch of header files).

  • Loading branch information...
1 parent d69f336 commit fb6194e9cb828023ea1c5fc8dd35ed576d4de9aa @perim perim committed Feb 18, 2013
Showing with 51,655 additions and 0 deletions.
  1. +475 −0 3rdparty/glm/core/_detail.hpp
  2. +55 −0 3rdparty/glm/core/_fixes.hpp
  3. +836 −0 3rdparty/glm/core/_swizzle.hpp
  4. +787 −0 3rdparty/glm/core/_swizzle_func.hpp
  5. +159 −0 3rdparty/glm/core/_vectorize.hpp
  6. +40 −0 3rdparty/glm/core/dummy.cpp
  7. +430 −0 3rdparty/glm/core/func_common.hpp
  8. +1,197 −0 3rdparty/glm/core/func_common.inl
  9. +123 −0 3rdparty/glm/core/func_exponential.hpp
  10. +155 −0 3rdparty/glm/core/func_exponential.inl
  11. +138 −0 3rdparty/glm/core/func_geometric.hpp
  12. +322 −0 3rdparty/glm/core/func_geometric.inl
  13. +201 −0 3rdparty/glm/core/func_integer.hpp
  14. +646 −0 3rdparty/glm/core/func_integer.inl
  15. +150 −0 3rdparty/glm/core/func_matrix.hpp
  16. +582 −0 3rdparty/glm/core/func_matrix.inl
  17. +87 −0 3rdparty/glm/core/func_noise.hpp
  18. +364 −0 3rdparty/glm/core/func_noise.inl
  19. +193 −0 3rdparty/glm/core/func_packing.hpp
  20. +178 −0 3rdparty/glm/core/func_packing.inl
  21. +203 −0 3rdparty/glm/core/func_trigonometric.hpp
  22. +244 −0 3rdparty/glm/core/func_trigonometric.inl
  23. +138 −0 3rdparty/glm/core/func_vector_relational.hpp
  24. +178 −0 3rdparty/glm/core/func_vector_relational.inl
  25. +40 −0 3rdparty/glm/core/hint.hpp
  26. +89 −0 3rdparty/glm/core/intrinsic_common.hpp
  27. +313 −0 3rdparty/glm/core/intrinsic_common.inl
  28. +79 −0 3rdparty/glm/core/intrinsic_exponential.hpp
  29. +27 −0 3rdparty/glm/core/intrinsic_exponential.inl
  30. +76 −0 3rdparty/glm/core/intrinsic_geometric.hpp
  31. +146 −0 3rdparty/glm/core/intrinsic_geometric.inl
  32. +69 −0 3rdparty/glm/core/intrinsic_matrix.hpp
  33. +1,070 −0 3rdparty/glm/core/intrinsic_matrix.inl
  34. +48 −0 3rdparty/glm/core/intrinsic_trigonometric.hpp
  35. +27 −0 3rdparty/glm/core/intrinsic_trigonometric.inl
  36. +48 −0 3rdparty/glm/core/intrinsic_vector_relational.hpp
  37. +366 −0 3rdparty/glm/core/intrinsic_vector_relational.inl
  38. +696 −0 3rdparty/glm/core/setup.hpp
  39. +341 −0 3rdparty/glm/core/type.hpp
  40. +84 −0 3rdparty/glm/core/type_float.hpp
  41. +169 −0 3rdparty/glm/core/type_gentype.hpp
  42. +366 −0 3rdparty/glm/core/type_gentype.inl
  43. +118 −0 3rdparty/glm/core/type_half.hpp
  44. +421 −0 3rdparty/glm/core/type_half.inl
  45. +136 −0 3rdparty/glm/core/type_int.hpp
  46. +75 −0 3rdparty/glm/core/type_mat.hpp
  47. +27 −0 3rdparty/glm/core/type_mat.inl
  48. +314 −0 3rdparty/glm/core/type_mat2x2.hpp
  49. +700 −0 3rdparty/glm/core/type_mat2x2.inl
  50. +258 −0 3rdparty/glm/core/type_mat2x3.hpp
  51. +645 −0 3rdparty/glm/core/type_mat2x3.inl
  52. +260 −0 3rdparty/glm/core/type_mat2x4.hpp
  53. +664 −0 3rdparty/glm/core/type_mat2x4.inl
  54. +265 −0 3rdparty/glm/core/type_mat3x2.hpp
  55. +682 −0 3rdparty/glm/core/type_mat3x2.inl
  56. +318 −0 3rdparty/glm/core/type_mat3x3.hpp
  57. +812 −0 3rdparty/glm/core/type_mat3x3.inl
  58. +266 −0 3rdparty/glm/core/type_mat3x4.hpp
  59. +712 −0 3rdparty/glm/core/type_mat3x4.inl
  60. +270 −0 3rdparty/glm/core/type_mat4x2.hpp
  61. +728 −0 3rdparty/glm/core/type_mat4x2.inl
  62. +268 −0 3rdparty/glm/core/type_mat4x3.hpp
  63. +737 −0 3rdparty/glm/core/type_mat4x3.inl
  64. +320 −0 3rdparty/glm/core/type_mat4x4.hpp
  65. +905 −0 3rdparty/glm/core/type_mat4x4.inl
  66. +43 −0 3rdparty/glm/core/type_size.hpp
  67. +41 −0 3rdparty/glm/core/type_vec.hpp
  68. +27 −0 3rdparty/glm/core/type_vec.inl
  69. +212 −0 3rdparty/glm/core/type_vec1.hpp
  70. +928 −0 3rdparty/glm/core/type_vec1.inl
  71. +317 −0 3rdparty/glm/core/type_vec2.hpp
  72. +1,028 −0 3rdparty/glm/core/type_vec2.inl
  73. +342 −0 3rdparty/glm/core/type_vec3.hpp
  74. +1,152 −0 3rdparty/glm/core/type_vec3.inl
  75. +399 −0 3rdparty/glm/core/type_vec4.hpp
  76. +1,378 −0 3rdparty/glm/core/type_vec4.inl
  77. +145 −0 3rdparty/glm/ext.hpp
  78. +129 −0 3rdparty/glm/glm.hpp
  79. +186 −0 3rdparty/glm/gtc/constants.hpp
  80. +186 −0 3rdparty/glm/gtc/constants.inl
  81. +94 −0 3rdparty/glm/gtc/epsilon.hpp
  82. +286 −0 3rdparty/glm/gtc/epsilon.inl
  83. +440 −0 3rdparty/glm/gtc/half_float.hpp
  84. +1,039 −0 3rdparty/glm/gtc/half_float.inl
  85. +87 −0 3rdparty/glm/gtc/matrix_access.hpp
  86. +80 −0 3rdparty/glm/gtc/matrix_access.inl
  87. +506 −0 3rdparty/glm/gtc/matrix_integer.hpp
  88. +74 −0 3rdparty/glm/gtc/matrix_inverse.hpp
  89. +159 −0 3rdparty/glm/gtc/matrix_inverse.inl
  90. +291 −0 3rdparty/glm/gtc/matrix_transform.hpp
  91. +430 −0 3rdparty/glm/gtc/matrix_transform.inl
  92. +80 −0 3rdparty/glm/gtc/noise.hpp
  93. +867 −0 3rdparty/glm/gtc/noise.inl
  94. +381 −0 3rdparty/glm/gtc/quaternion.hpp
  95. +788 −0 3rdparty/glm/gtc/quaternion.inl
  96. +114 −0 3rdparty/glm/gtc/random.hpp
  97. +170 −0 3rdparty/glm/gtc/random.inl
  98. +133 −0 3rdparty/glm/gtc/reciprocal.hpp
  99. +199 −0 3rdparty/glm/gtc/reciprocal.inl
  100. +375 −0 3rdparty/glm/gtc/swizzle.hpp
  101. +116 −0 3rdparty/glm/gtc/swizzle.inl
  102. +669 −0 3rdparty/glm/gtc/type_precision.hpp
  103. +32 −0 3rdparty/glm/gtc/type_precision.inl
  104. +169 −0 3rdparty/glm/gtc/type_ptr.hpp
  105. +462 −0 3rdparty/glm/gtc/type_ptr.inl
  106. +90 −0 3rdparty/glm/gtc/ulp.hpp
  107. +314 −0 3rdparty/glm/gtc/ulp.inl
  108. +106 −0 3rdparty/glm/gtx/associated_min_max.hpp
  109. +912 −0 3rdparty/glm/gtx/associated_min_max.inl
  110. +140 −0 3rdparty/glm/gtx/bit.hpp
  111. +600 −0 3rdparty/glm/gtx/bit.inl
  112. +66 −0 3rdparty/glm/gtx/closest_point.hpp
  113. +36 −0 3rdparty/glm/gtx/closest_point.inl
  114. +124 −0 3rdparty/glm/gtx/color_cast.hpp
  115. +733 −0 3rdparty/glm/gtx/color_cast.inl
  116. +96 −0 3rdparty/glm/gtx/color_space.hpp
  117. +149 −0 3rdparty/glm/gtx/color_space.inl
  118. +84 −0 3rdparty/glm/gtx/color_space_YCoCg.hpp
  119. +64 −0 3rdparty/glm/gtx/color_space_YCoCg.inl
  120. +176 −0 3rdparty/glm/gtx/compatibility.hpp
  121. +60 −0 3rdparty/glm/gtx/compatibility.inl
  122. +82 −0 3rdparty/glm/gtx/component_wise.hpp
  123. +47 −0 3rdparty/glm/gtx/component_wise.inl
  124. +33 −0 3rdparty/glm/gtx/constants.hpp
  125. +29 −0 3rdparty/glm/gtx/epsilon.hpp
  126. +156 −0 3rdparty/glm/gtx/euler_angles.hpp
  127. +244 −0 3rdparty/glm/gtx/euler_angles.inl
  128. +66 −0 3rdparty/glm/gtx/extend.hpp
  129. +55 −0 3rdparty/glm/gtx/extend.inl
  130. +194 −0 3rdparty/glm/gtx/extented_min_max.hpp
  131. +178 −0 3rdparty/glm/gtx/extented_min_max.inl
  132. +99 −0 3rdparty/glm/gtx/fast_exponential.hpp
  133. +148 −0 3rdparty/glm/gtx/fast_exponential.inl
  134. +85 −0 3rdparty/glm/gtx/fast_square_root.hpp
  135. +136 −0 3rdparty/glm/gtx/fast_square_root.inl
  136. +100 −0 3rdparty/glm/gtx/fast_trigonometry.hpp
  137. +75 −0 3rdparty/glm/gtx/fast_trigonometry.inl
  138. +76 −0 3rdparty/glm/gtx/gradient_paint.hpp
  139. +43 −0 3rdparty/glm/gtx/gradient_paint.inl
  140. +74 −0 3rdparty/glm/gtx/handed_coordinate_space.hpp
  141. +33 −0 3rdparty/glm/gtx/handed_coordinate_space.inl
  142. +115 −0 3rdparty/glm/gtx/inertia.hpp
  143. +114 −0 3rdparty/glm/gtx/inertia.inl
  144. +64 −0 3rdparty/glm/gtx/int_10_10_10_2.hpp
  145. +19 −0 3rdparty/glm/gtx/int_10_10_10_2.inl
  146. +104 −0 3rdparty/glm/gtx/integer.hpp
  147. +203 −0 3rdparty/glm/gtx/integer.inl
  148. +102 −0 3rdparty/glm/gtx/intersect.hpp
  149. +196 −0 3rdparty/glm/gtx/intersect.inl
  150. +65 −0 3rdparty/glm/gtx/log_base.hpp
  151. +24 −0 3rdparty/glm/gtx/log_base.inl
  152. +71 −0 3rdparty/glm/gtx/matrix_cross_product.hpp
  153. +44 −0 3rdparty/glm/gtx/matrix_cross_product.inl
  154. +88 −0 3rdparty/glm/gtx/matrix_interpolation.hpp
  155. +130 −0 3rdparty/glm/gtx/matrix_interpolation.inl
  156. +143 −0 3rdparty/glm/gtx/matrix_major_storage.hpp
  157. +173 −0 3rdparty/glm/gtx/matrix_major_storage.inl
  158. +112 −0 3rdparty/glm/gtx/matrix_operation.hpp
  159. +124 −0 3rdparty/glm/gtx/matrix_operation.inl
  160. +117 −0 3rdparty/glm/gtx/matrix_query.hpp
  161. +154 −0 3rdparty/glm/gtx/matrix_query.inl
  162. +65 −0 3rdparty/glm/gtx/mixed_product.hpp
  163. +22 −0 3rdparty/glm/gtx/mixed_product.inl
  164. +73 −0 3rdparty/glm/gtx/multiple.hpp
  165. +118 −0 3rdparty/glm/gtx/multiple.inl
  166. +29 −0 3rdparty/glm/gtx/noise.hpp
  167. +133 −0 3rdparty/glm/gtx/norm.hpp
  168. +156 −0 3rdparty/glm/gtx/norm.inl
  169. +67 −0 3rdparty/glm/gtx/normal.hpp
  170. +22 −0 3rdparty/glm/gtx/normal.inl
  171. +76 −0 3rdparty/glm/gtx/normalize_dot.hpp
  172. +115 −0 3rdparty/glm/gtx/normalize_dot.inl
  173. +88 −0 3rdparty/glm/gtx/number_precision.hpp
  174. +13 −0 3rdparty/glm/gtx/number_precision.inl
  175. +132 −0 3rdparty/glm/gtx/ocl_type.hpp
  176. 0 3rdparty/glm/gtx/ocl_type.inl
  177. +91 −0 3rdparty/glm/gtx/optimum_pow.hpp
  178. +58 −0 3rdparty/glm/gtx/optimum_pow.inl
  179. +72 −0 3rdparty/glm/gtx/orthonormalize.hpp
  180. +43 −0 3rdparty/glm/gtx/orthonormalize.inl
  181. +67 −0 3rdparty/glm/gtx/perpendicular.hpp
  182. +21 −0 3rdparty/glm/gtx/perpendicular.inl
  183. +70 −0 3rdparty/glm/gtx/polar_coordinates.hpp
  184. +55 −0 3rdparty/glm/gtx/polar_coordinates.inl
  185. +65 −0 3rdparty/glm/gtx/projection.hpp
  186. +21 −0 3rdparty/glm/gtx/projection.inl
  187. +196 −0 3rdparty/glm/gtx/quaternion.hpp
  188. +209 −0 3rdparty/glm/gtx/quaternion.inl
  189. +29 −0 3rdparty/glm/gtx/random.hpp
  190. +75 −0 3rdparty/glm/gtx/raw_data.hpp
  191. +11 −0 3rdparty/glm/gtx/raw_data.inl
  192. +26 −0 3rdparty/glm/gtx/reciprocal.hpp
  193. +132 −0 3rdparty/glm/gtx/rotate_vector.hpp
  194. +211 −0 3rdparty/glm/gtx/rotate_vector.inl
  195. +206 −0 3rdparty/glm/gtx/simd_mat4.hpp
  196. +590 −0 3rdparty/glm/gtx/simd_mat4.inl
  197. +517 −0 3rdparty/glm/gtx/simd_vec4.hpp
  198. +727 −0 3rdparty/glm/gtx/simd_vec4.inl
  199. +90 −0 3rdparty/glm/gtx/spline.hpp
  200. +70 −0 3rdparty/glm/gtx/spline.inl
  201. +83 −0 3rdparty/glm/gtx/std_based_type.hpp
  202. +13 −0 3rdparty/glm/gtx/std_based_type.inl
  203. +70 −0 3rdparty/glm/gtx/string_cast.hpp
  204. +588 −0 3rdparty/glm/gtx/string_cast.inl
  205. +131 −0 3rdparty/glm/gtx/transform.hpp
  206. +90 −0 3rdparty/glm/gtx/transform.inl
  207. +135 −0 3rdparty/glm/gtx/transform2.hpp
  208. +154 −0 3rdparty/glm/gtx/transform2.inl
  209. +29 −0 3rdparty/glm/gtx/ulp.hpp
  210. +26 −0 3rdparty/glm/gtx/unsigned_int.hpp
  211. +13 −0 3rdparty/glm/gtx/unsigned_int.inl
  212. +137 −0 3rdparty/glm/gtx/vec1.hpp
  213. 0 3rdparty/glm/gtx/vec1.inl
  214. +85 −0 3rdparty/glm/gtx/vector_access.hpp
  215. +53 −0 3rdparty/glm/gtx/vector_access.inl
  216. +88 −0 3rdparty/glm/gtx/vector_angle.hpp
  217. +57 −0 3rdparty/glm/gtx/vector_angle.inl
  218. +112 −0 3rdparty/glm/gtx/vector_query.hpp
  219. +164 −0 3rdparty/glm/gtx/vector_query.inl
  220. +83 −0 3rdparty/glm/gtx/verbose_operator.hpp
  221. +124 −0 3rdparty/glm/gtx/verbose_operator.inl
  222. +73 −0 3rdparty/glm/gtx/wrap.hpp
  223. +165 −0 3rdparty/glm/gtx/wrap.inl
  224. +166 −0 3rdparty/glm/virtrev/xstream.hpp

Large diffs are not rendered by default.

Oops, something went wrong.
@@ -0,0 +1,55 @@
+///////////////////////////////////////////////////////////////////////////////////
+/// OpenGL Mathematics (glm.g-truc.net)
+///
+/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
+/// Permission is hereby granted, free of charge, to any person obtaining a copy
+/// of this software and associated documentation files (the "Software"), to deal
+/// in the Software without restriction, including without limitation the rights
+/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+/// copies of the Software, and to permit persons to whom the Software is
+/// furnished to do so, subject to the following conditions:
+///
+/// The above copyright notice and this permission notice shall be included in
+/// all copies or substantial portions of the Software.
+///
+/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+/// THE SOFTWARE.
+///
+/// @ref core
+/// @file glm/core/_fixes.hpp
+/// @date 2011-02-21 / 2011-11-22
+/// @author Christophe Riccio
+///////////////////////////////////////////////////////////////////////////////////
+
+#include <cmath>
+
+//! Workaround for compatibility with other libraries
+#ifdef max
+#undef max
+#endif
+
+//! Workaround for compatibility with other libraries
+#ifdef min
+#undef min
+#endif
+
+//! Workaround for Android
+#ifdef isnan
+#undef isnan
+#endif
+
+//! Workaround for Android
+#ifdef isinf
+#undef isinf
+#endif
+
+//! Workaround for Chrone Native Client
+#ifdef log2
+#undef log2
+#endif
+

Large diffs are not rendered by default.

Oops, something went wrong.

Large diffs are not rendered by default.

Oops, something went wrong.
@@ -0,0 +1,159 @@
+///////////////////////////////////////////////////////////////////////////////////
+/// OpenGL Mathematics (glm.g-truc.net)
+///
+/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
+/// Permission is hereby granted, free of charge, to any person obtaining a copy
+/// of this software and associated documentation files (the "Software"), to deal
+/// in the Software without restriction, including without limitation the rights
+/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+/// copies of the Software, and to permit persons to whom the Software is
+/// furnished to do so, subject to the following conditions:
+///
+/// The above copyright notice and this permission notice shall be included in
+/// all copies or substantial portions of the Software.
+///
+/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+/// THE SOFTWARE.
+///
+/// @ref core
+/// @file glm/core/_vectorize.hpp
+/// @date 2011-10-14 / 2011-10-14
+/// @author Christophe Riccio
+///////////////////////////////////////////////////////////////////////////////////
+
+#define VECTORIZE2_VEC(func) \
+ template <typename T> \
+ GLM_FUNC_QUALIFIER detail::tvec2<T> func( \
+ detail::tvec2<T> const & v) \
+ { \
+ return detail::tvec2<T>( \
+ func(v.x), \
+ func(v.y)); \
+ }
+
+#define VECTORIZE3_VEC(func) \
+ template <typename T> \
+ GLM_FUNC_QUALIFIER detail::tvec3<T> func( \
+ detail::tvec3<T> const & v) \
+ { \
+ return detail::tvec3<T>( \
+ func(v.x), \
+ func(v.y), \
+ func(v.z)); \
+ }
+
+#define VECTORIZE4_VEC(func) \
+ template <typename T> \
+ GLM_FUNC_QUALIFIER detail::tvec4<T> func( \
+ detail::tvec4<T> const & v) \
+ { \
+ return detail::tvec4<T>( \
+ func(v.x), \
+ func(v.y), \
+ func(v.z), \
+ func(v.w)); \
+ }
+
+#define VECTORIZE_VEC(func) \
+ VECTORIZE2_VEC(func) \
+ VECTORIZE3_VEC(func) \
+ VECTORIZE4_VEC(func)
+
+#define VECTORIZE2_VEC_SCA(func) \
+ template <typename T> \
+ GLM_FUNC_QUALIFIER detail::tvec2<T> func \
+ ( \
+ detail::tvec2<T> const & x, \
+ typename detail::tvec2<T>::value_type const & y \
+ ) \
+ { \
+ return detail::tvec2<T>( \
+ func(x.x, y), \
+ func(x.y, y)); \
+ }
+
+#define VECTORIZE3_VEC_SCA(func) \
+ template <typename T> \
+ GLM_FUNC_QUALIFIER detail::tvec3<T> func \
+ ( \
+ detail::tvec3<T> const & x, \
+ typename detail::tvec3<T>::value_type const & y \
+ ) \
+ { \
+ return detail::tvec3<T>( \
+ func(x.x, y), \
+ func(x.y, y), \
+ func(x.z, y)); \
+ }
+
+#define VECTORIZE4_VEC_SCA(func) \
+ template <typename T> \
+ GLM_FUNC_QUALIFIER detail::tvec4<T> func \
+ ( \
+ detail::tvec4<T> const & x, \
+ typename detail::tvec4<T>::value_type const & y \
+ ) \
+ { \
+ return detail::tvec4<T>( \
+ func(x.x, y), \
+ func(x.y, y), \
+ func(x.z, y), \
+ func(x.w, y)); \
+ }
+
+#define VECTORIZE_VEC_SCA(func) \
+ VECTORIZE2_VEC_SCA(func) \
+ VECTORIZE3_VEC_SCA(func) \
+ VECTORIZE4_VEC_SCA(func)
+
+#define VECTORIZE2_VEC_VEC(func) \
+ template <typename T> \
+ GLM_FUNC_QUALIFIER detail::tvec2<T> func \
+ ( \
+ detail::tvec2<T> const & x, \
+ detail::tvec2<T> const & y \
+ ) \
+ { \
+ return detail::tvec2<T>( \
+ func(x.x, y.x), \
+ func(x.y, y.y)); \
+ }
+
+#define VECTORIZE3_VEC_VEC(func) \
+ template <typename T> \
+ GLM_FUNC_QUALIFIER detail::tvec3<T> func \
+ ( \
+ detail::tvec3<T> const & x, \
+ detail::tvec3<T> const & y \
+ ) \
+ { \
+ return detail::tvec3<T>( \
+ func(x.x, y.x), \
+ func(x.y, y.y), \
+ func(x.z, y.z)); \
+ }
+
+#define VECTORIZE4_VEC_VEC(func) \
+ template <typename T> \
+ GLM_FUNC_QUALIFIER detail::tvec4<T> func \
+ ( \
+ detail::tvec4<T> const & x, \
+ detail::tvec4<T> const & y \
+ ) \
+ { \
+ return detail::tvec4<T>( \
+ func(x.x, y.x), \
+ func(x.y, y.y), \
+ func(x.z, y.z), \
+ func(x.w, y.w)); \
+ }
+
+#define VECTORIZE_VEC_VEC(func) \
+ VECTORIZE2_VEC_VEC(func) \
+ VECTORIZE3_VEC_VEC(func) \
+ VECTORIZE4_VEC_VEC(func)
@@ -0,0 +1,40 @@
+///////////////////////////////////////////////////////////////////////////////////
+/// OpenGL Mathematics (glm.g-truc.net)
+///
+/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
+/// Permission is hereby granted, free of charge, to any person obtaining a copy
+/// of this software and associated documentation files (the "Software"), to deal
+/// in the Software without restriction, including without limitation the rights
+/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+/// copies of the Software, and to permit persons to whom the Software is
+/// furnished to do so, subject to the following conditions:
+///
+/// The above copyright notice and this permission notice shall be included in
+/// all copies or substantial portions of the Software.
+///
+/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+/// THE SOFTWARE.
+///
+/// @ref core
+/// @file glm/core/dummy.cpp
+/// @date 2011-01-19 / 2011-06-15
+/// @author Christophe Riccio
+///
+/// GLM is a header only library. There is nothing to compile.
+/// dummy.cpp exist only a wordaround for CMake file.
+///////////////////////////////////////////////////////////////////////////////////
+
+#define GLM_MESSAGES
+#include "../glm.hpp"
+
+//#error "GLM is a header only library"
+
+int main()
+{
+
+}
Oops, something went wrong.

0 comments on commit fb6194e

Please sign in to comment.