Browse Source

Wrap tvec4's static constants in GLM_STATIC_CONST_MEMBERS

- Fix the indentation, too
Jesse Talavera-Greenberg 10 years ago
parent
commit
5df08dfc78
3 changed files with 54 additions and 48 deletions
  1. 3 0
      glm/detail/type_vec4.hpp
  2. 50 48
      glm/detail/type_vec4.inl
  3. 1 0
      test/core/core_type_vec4.cpp

+ 3 - 0
glm/detail/type_vec4.hpp

@@ -112,6 +112,7 @@ namespace detail
 			static GLM_RELAXED_CONSTEXPR precision prec = P;
 #		endif//GLM_META_PROG_HELPERS
 
+#		ifdef GLM_STATIC_CONST_MEMBERS
 		static const type ZERO;
 		static const type X;
 		static const type Y;
@@ -128,6 +129,8 @@ namespace detail
 		static const type XZW;
 		static const type YZW;
 		static const type XYZW;
+#		endif
+
 		// -- Data --
 
 #		if GLM_HAS_ANONYMOUS_UNION && GLM_NOT_BUGGY_VC32BITS

+ 50 - 48
glm/detail/type_vec4.inl

@@ -32,70 +32,72 @@
 
 namespace glm
 {
-template <typename T, precision P>
-const tvec4<T, P> tvec4<T, P>::ZERO =
-		tvec4<T, P>(static_cast<T>(0), static_cast<T>(0), static_cast<T>(0), static_cast<T>(0));
 
-template <typename T, precision P>
-const tvec4<T, P> tvec4<T, P>::X =
-		tvec4<T, P>(static_cast<T>(1), static_cast<T>(0), static_cast<T>(0), static_cast<T>(0));
+#	ifdef GLM_STATIC_CONST_MEMBERS
+	template <typename T, precision P>
+	const tvec4<T, P> tvec4<T, P>::ZERO =
+			tvec4<T, P>(static_cast<T>(0), static_cast<T>(0), static_cast<T>(0), static_cast<T>(0));
 
-template <typename T, precision P>
-const tvec4<T, P> tvec4<T, P>::Y =
-		tvec4<T, P>(static_cast<T>(0), static_cast<T>(1), static_cast<T>(0), static_cast<T>(0));
+	template <typename T, precision P>
+	const tvec4<T, P> tvec4<T, P>::X =
+			tvec4<T, P>(static_cast<T>(1), static_cast<T>(0), static_cast<T>(0), static_cast<T>(0));
 
-template <typename T, precision P>
-const tvec4<T, P> tvec4<T, P>::Z =
-		tvec4<T, P>(static_cast<T>(0), static_cast<T>(0), static_cast<T>(1), static_cast<T>(0));
+	template <typename T, precision P>
+	const tvec4<T, P> tvec4<T, P>::Y =
+			tvec4<T, P>(static_cast<T>(0), static_cast<T>(1), static_cast<T>(0), static_cast<T>(0));
 
-template <typename T, precision P>
-const tvec4<T, P> tvec4<T, P>::W =
-		tvec4<T, P>(static_cast<T>(0), static_cast<T>(0), static_cast<T>(0), static_cast<T>(1));
+	template <typename T, precision P>
+	const tvec4<T, P> tvec4<T, P>::Z =
+			tvec4<T, P>(static_cast<T>(0), static_cast<T>(0), static_cast<T>(1), static_cast<T>(0));
 
-template <typename T, precision P>
-const tvec4<T, P> tvec4<T, P>::XY =
-		tvec4<T, P>(static_cast<T>(1), static_cast<T>(1), static_cast<T>(0), static_cast<T>(0));
+	template <typename T, precision P>
+	const tvec4<T, P> tvec4<T, P>::W =
+			tvec4<T, P>(static_cast<T>(0), static_cast<T>(0), static_cast<T>(0), static_cast<T>(1));
 
-template <typename T, precision P>
-const tvec4<T, P> tvec4<T, P>::XZ =
-		tvec4<T, P>(static_cast<T>(1), static_cast<T>(0), static_cast<T>(1), static_cast<T>(0));
+	template <typename T, precision P>
+	const tvec4<T, P> tvec4<T, P>::XY =
+			tvec4<T, P>(static_cast<T>(1), static_cast<T>(1), static_cast<T>(0), static_cast<T>(0));
 
-template <typename T, precision P>
-const tvec4<T, P> tvec4<T, P>::XW =
-		tvec4<T, P>(static_cast<T>(1), static_cast<T>(0), static_cast<T>(0), static_cast<T>(1));
+	template <typename T, precision P>
+	const tvec4<T, P> tvec4<T, P>::XZ =
+			tvec4<T, P>(static_cast<T>(1), static_cast<T>(0), static_cast<T>(1), static_cast<T>(0));
 
-template <typename T, precision P>
-const tvec4<T, P> tvec4<T, P>::YZ =
-		tvec4<T, P>(static_cast<T>(0), static_cast<T>(1), static_cast<T>(1), static_cast<T>(0));
+	template <typename T, precision P>
+	const tvec4<T, P> tvec4<T, P>::XW =
+			tvec4<T, P>(static_cast<T>(1), static_cast<T>(0), static_cast<T>(0), static_cast<T>(1));
 
-template <typename T, precision P>
-const tvec4<T, P> tvec4<T, P>::YW =
-		tvec4<T, P>(static_cast<T>(0), static_cast<T>(1), static_cast<T>(0), static_cast<T>(1));
+	template <typename T, precision P>
+	const tvec4<T, P> tvec4<T, P>::YZ =
+			tvec4<T, P>(static_cast<T>(0), static_cast<T>(1), static_cast<T>(1), static_cast<T>(0));
 
-template <typename T, precision P>
-const tvec4<T, P> tvec4<T, P>::ZW =
-		tvec4<T, P>(static_cast<T>(0), static_cast<T>(0), static_cast<T>(1), static_cast<T>(1));
+	template <typename T, precision P>
+	const tvec4<T, P> tvec4<T, P>::YW =
+			tvec4<T, P>(static_cast<T>(0), static_cast<T>(1), static_cast<T>(0), static_cast<T>(1));
 
-template <typename T, precision P>
-const tvec4<T, P> tvec4<T, P>::XYZ =
-		tvec4<T, P>(static_cast<T>(1), static_cast<T>(1), static_cast<T>(1), static_cast<T>(0));
+	template <typename T, precision P>
+	const tvec4<T, P> tvec4<T, P>::ZW =
+			tvec4<T, P>(static_cast<T>(0), static_cast<T>(0), static_cast<T>(1), static_cast<T>(1));
 
-template <typename T, precision P>
-const tvec4<T, P> tvec4<T, P>::XYW =
-		tvec4<T, P>(static_cast<T>(1), static_cast<T>(1), static_cast<T>(0), static_cast<T>(1));
+	template <typename T, precision P>
+	const tvec4<T, P> tvec4<T, P>::XYZ =
+			tvec4<T, P>(static_cast<T>(1), static_cast<T>(1), static_cast<T>(1), static_cast<T>(0));
 
-template <typename T, precision P>
-const tvec4<T, P> tvec4<T, P>::XZW =
-		tvec4<T, P>(static_cast<T>(1), static_cast<T>(0), static_cast<T>(1), static_cast<T>(1));
+	template <typename T, precision P>
+	const tvec4<T, P> tvec4<T, P>::XYW =
+			tvec4<T, P>(static_cast<T>(1), static_cast<T>(1), static_cast<T>(0), static_cast<T>(1));
 
-template <typename T, precision P>
-const tvec4<T, P> tvec4<T, P>::YZW =
-		tvec4<T, P>(static_cast<T>(0), static_cast<T>(1), static_cast<T>(1), static_cast<T>(1));
+	template <typename T, precision P>
+	const tvec4<T, P> tvec4<T, P>::XZW =
+			tvec4<T, P>(static_cast<T>(1), static_cast<T>(0), static_cast<T>(1), static_cast<T>(1));
 
-template <typename T, precision P>
-const tvec4<T, P> tvec4<T, P>::XYZW =
-		tvec4<T, P>(static_cast<T>(1), static_cast<T>(1), static_cast<T>(1), static_cast<T>(1));
+	template <typename T, precision P>
+	const tvec4<T, P> tvec4<T, P>::YZW =
+			tvec4<T, P>(static_cast<T>(0), static_cast<T>(1), static_cast<T>(1), static_cast<T>(1));
 
+	template <typename T, precision P>
+	const tvec4<T, P> tvec4<T, P>::XYZW =
+			tvec4<T, P>(static_cast<T>(1), static_cast<T>(1), static_cast<T>(1), static_cast<T>(1));
+#	endif
 	// -- Implicit basic constructors --
 
 #	if !GLM_HAS_DEFAULTED_FUNCTIONS || !defined(GLM_FORCE_NO_CTOR_INIT)

+ 1 - 0
test/core/core_type_vec4.cpp

@@ -33,6 +33,7 @@
 #	define GLM_META_PROG_HELPERS
 #endif
 #define GLM_SWIZZLE
+#define GLM_STATIC_CONST_MEMBERS
 #include <glm/vector_relational.hpp>
 #include <glm/vec2.hpp>
 #include <glm/vec3.hpp>