1 /// @ref gtc_vec1
2 /// @file glm/gtc/vec1.hpp
3 ///
4 /// @see core (dependence)
5 ///
6 /// @defgroup gtc_vec1 GLM_GTC_vec1
7 /// @ingroup gtc
8 ///
9 /// @brief Add vec1, ivec1, uvec1 and bvec1 types.
10 /// <glm/gtc/vec1.hpp> need to be included to use these functionalities.
11 
12 #pragma once
13 
14 // Dependency:
15 #include "../glm.hpp"
16 #include "../detail/type_vec1.hpp"
17 
18 #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
19 #	pragma message("GLM: GLM_GTC_vec1 extension included")
20 #endif
21 
22 namespace glm
23 {
24 	/// 1 component vector of high precision floating-point numbers.
25 	/// There is no guarantee on the actual precision.
26 	/// @see gtc_vec1 extension.
27 	typedef highp_vec1_t			highp_vec1;
28 
29 	/// 1 component vector of medium precision floating-point numbers.
30 	/// There is no guarantee on the actual precision.
31 	/// @see gtc_vec1 extension.
32 	typedef mediump_vec1_t			mediump_vec1;
33 
34 	/// 1 component vector of low precision floating-point numbers.
35 	/// There is no guarantee on the actual precision.
36 	/// @see gtc_vec1 extension.
37 	typedef lowp_vec1_t				lowp_vec1;
38 
39 	/// 1 component vector of high precision floating-point numbers.
40 	/// There is no guarantee on the actual precision.
41 	/// @see gtc_vec1 extension.
42 	typedef highp_dvec1_t			highp_dvec1;
43 
44 	/// 1 component vector of medium precision floating-point numbers.
45 	/// There is no guarantee on the actual precision.
46 	/// @see gtc_vec1 extension.
47 	typedef mediump_dvec1_t			mediump_dvec1;
48 
49 	/// 1 component vector of low precision floating-point numbers.
50 	/// There is no guarantee on the actual precision.
51 	/// @see gtc_vec1 extension.
52 	typedef lowp_dvec1_t			lowp_dvec1;
53 
54 	/// 1 component vector of high precision signed integer numbers.
55 	/// There is no guarantee on the actual precision.
56 	/// @see gtc_vec1 extension.
57 	typedef highp_ivec1_t			highp_ivec1;
58 
59 	/// 1 component vector of medium precision signed integer numbers.
60 	/// There is no guarantee on the actual precision.
61 	/// @see gtc_vec1 extension.
62 	typedef mediump_ivec1_t			mediump_ivec1;
63 
64 	/// 1 component vector of low precision signed integer numbers.
65 	/// There is no guarantee on the actual precision.
66 	/// @see gtc_vec1 extension.
67 	typedef lowp_ivec1_t			lowp_ivec1;
68 
69 	/// 1 component vector of high precision unsigned integer numbers.
70 	/// There is no guarantee on the actual precision.
71 	/// @see gtc_vec1 extension.
72 	typedef highp_uvec1_t			highp_uvec1;
73 
74 	/// 1 component vector of medium precision unsigned integer numbers.
75 	/// There is no guarantee on the actual precision.
76 	/// @see gtc_vec1 extension.
77 	typedef mediump_uvec1_t			mediump_uvec1;
78 
79 	/// 1 component vector of low precision unsigned integer numbers.
80 	/// There is no guarantee on the actual precision.
81 	/// @see gtc_vec1 extension.
82 	typedef lowp_uvec1_t			lowp_uvec1;
83 
84 	/// 1 component vector of high precision boolean.
85 	/// There is no guarantee on the actual precision.
86 	/// @see gtc_vec1 extension.
87 	typedef highp_bvec1_t			highp_bvec1;
88 
89 	/// 1 component vector of medium precision boolean.
90 	/// There is no guarantee on the actual precision.
91 	/// @see gtc_vec1 extension.
92 	typedef mediump_bvec1_t			mediump_bvec1;
93 
94 	/// 1 component vector of low precision boolean.
95 	/// There is no guarantee on the actual precision.
96 	/// @see gtc_vec1 extension.
97 	typedef lowp_bvec1_t			lowp_bvec1;
98 
99 	//////////////////////////
100 	// vec1 definition
101 
102 #if(defined(GLM_PRECISION_HIGHP_BOOL))
103 	typedef highp_bvec1				bvec1;
104 #elif(defined(GLM_PRECISION_MEDIUMP_BOOL))
105 	typedef mediump_bvec1			bvec1;
106 #elif(defined(GLM_PRECISION_LOWP_BOOL))
107 	typedef lowp_bvec1				bvec1;
108 #else
109 	/// 1 component vector of boolean.
110 	/// @see gtc_vec1 extension.
111 	typedef highp_bvec1				bvec1;
112 #endif//GLM_PRECISION
113 
114 #if(defined(GLM_PRECISION_HIGHP_FLOAT))
115 	typedef highp_vec1				vec1;
116 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
117 	typedef mediump_vec1			vec1;
118 #elif(defined(GLM_PRECISION_LOWP_FLOAT))
119 	typedef lowp_vec1				vec1;
120 #else
121 	/// 1 component vector of floating-point numbers.
122 	/// @see gtc_vec1 extension.
123 	typedef highp_vec1				vec1;
124 #endif//GLM_PRECISION
125 
126 #if(defined(GLM_PRECISION_HIGHP_DOUBLE))
127 	typedef highp_dvec1				dvec1;
128 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
129 	typedef mediump_dvec1			dvec1;
130 #elif(defined(GLM_PRECISION_LOWP_DOUBLE))
131 	typedef lowp_dvec1				dvec1;
132 #else
133 	/// 1 component vector of floating-point numbers.
134 	/// @see gtc_vec1 extension.
135 	typedef highp_dvec1				dvec1;
136 #endif//GLM_PRECISION
137 
138 #if(defined(GLM_PRECISION_HIGHP_INT))
139 	typedef highp_ivec1			ivec1;
140 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
141 	typedef mediump_ivec1		ivec1;
142 #elif(defined(GLM_PRECISION_LOWP_INT))
143 	typedef lowp_ivec1			ivec1;
144 #else
145 	/// 1 component vector of signed integer numbers.
146 	/// @see gtc_vec1 extension.
147 	typedef highp_ivec1			ivec1;
148 #endif//GLM_PRECISION
149 
150 #if(defined(GLM_PRECISION_HIGHP_UINT))
151 	typedef highp_uvec1			uvec1;
152 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
153 	typedef mediump_uvec1		uvec1;
154 #elif(defined(GLM_PRECISION_LOWP_UINT))
155 	typedef lowp_uvec1			uvec1;
156 #else
157 	/// 1 component vector of unsigned integer numbers.
158 	/// @see gtc_vec1 extension.
159 	typedef highp_uvec1			uvec1;
160 #endif//GLM_PRECISION
161 
162 }// namespace glm
163 
164 #include "vec1.inl"
165