Rev Author Line No. Line
23 ovan 1 ///////////////////////////////////////////////////////////////////////////////////
2 /// OpenGL Mathematics (glm.g-truc.net)
3 ///
4 /// Copyright (c) 2005 - 2015 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 /// Restrictions:
16 ///             By making use of the Software for military purposes, you choose to make
17 ///             a Bunny unhappy.
18 ///
19 /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 /// THE SOFTWARE.
26 ///
27 /// @ref gtc_vec1
28 /// @file glm/gtc/vec1.hpp
29 /// @date 2010-02-08 / 2011-06-07
30 /// @author Christophe Riccio
31 ///
32 /// @see core (dependence)
33 ///
34 /// @defgroup gtc_vec1 GLM_GTC_vec1
35 /// @ingroup gtc
36 ///
37 /// @brief Add vec1, ivec1, uvec1 and bvec1 types.
38 /// <glm/gtc/vec1.hpp> need to be included to use these functionalities.
39 ///////////////////////////////////////////////////////////////////////////////////
40  
41 #pragma once
42  
43 // Dependency:
44 #include "../glm.hpp"
45 #include "../detail/type_vec1.hpp"
46  
47 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED))
48 #       pragma message("GLM: GLM_GTC_vec1 extension included")
49 #endif
50  
51 namespace glm
52 {
53         /// 1 component vector of high precision floating-point numbers.
54         /// There is no guarantee on the actual precision.
55         /// @see gtc_vec1 extension.
56         typedef highp_vec1_t                    highp_vec1;
57  
58         /// 1 component vector of medium precision floating-point numbers.
59         /// There is no guarantee on the actual precision.
60         /// @see gtc_vec1 extension.
61         typedef mediump_vec1_t                  mediump_vec1;
62  
63         /// 1 component vector of low precision floating-point numbers.
64         /// There is no guarantee on the actual precision.
65         /// @see gtc_vec1 extension.
66         typedef lowp_vec1_t                             lowp_vec1;
67  
68         /// 1 component vector of high precision floating-point numbers.
69         /// There is no guarantee on the actual precision.
70         /// @see gtc_vec1 extension.
71         typedef highp_dvec1_t                   highp_dvec1;
72  
73         /// 1 component vector of medium precision floating-point numbers.
74         /// There is no guarantee on the actual precision.
75         /// @see gtc_vec1 extension.
76         typedef mediump_dvec1_t                 mediump_dvec1;
77  
78         /// 1 component vector of low precision floating-point numbers.
79         /// There is no guarantee on the actual precision.
80         /// @see gtc_vec1 extension.
81         typedef lowp_dvec1_t                    lowp_dvec1;
82  
83         /// 1 component vector of high precision signed integer numbers.
84         /// There is no guarantee on the actual precision.
85         /// @see gtc_vec1 extension.
86         typedef highp_ivec1_t                   highp_ivec1;
87  
88         /// 1 component vector of medium precision signed integer numbers.
89         /// There is no guarantee on the actual precision.
90         /// @see gtc_vec1 extension.
91         typedef mediump_ivec1_t                 mediump_ivec1;
92  
93         /// 1 component vector of low precision signed integer numbers.
94         /// There is no guarantee on the actual precision.
95         /// @see gtc_vec1 extension.
96         typedef lowp_ivec1_t                    lowp_ivec1;
97  
98         /// 1 component vector of high precision unsigned integer numbers.
99         /// There is no guarantee on the actual precision.
100         /// @see gtc_vec1 extension.
101         typedef highp_uvec1_t                   highp_uvec1;
102  
103         /// 1 component vector of medium precision unsigned integer numbers.
104         /// There is no guarantee on the actual precision.
105         /// @see gtc_vec1 extension.
106         typedef mediump_uvec1_t                 mediump_uvec1;
107  
108         /// 1 component vector of low precision unsigned integer numbers.
109         /// There is no guarantee on the actual precision.
110         /// @see gtc_vec1 extension.
111         typedef lowp_uvec1_t                    lowp_uvec1;
112  
113         /// 1 component vector of high precision boolean.
114         /// There is no guarantee on the actual precision.
115         /// @see gtc_vec1 extension.
116         typedef highp_bvec1_t                   highp_bvec1;
117  
118         /// 1 component vector of medium precision boolean.
119         /// There is no guarantee on the actual precision.
120         /// @see gtc_vec1 extension.
121         typedef mediump_bvec1_t                 mediump_bvec1;
122  
123         /// 1 component vector of low precision boolean.
124         /// There is no guarantee on the actual precision.
125         /// @see gtc_vec1 extension.
126         typedef lowp_bvec1_t                    lowp_bvec1;
127  
128         //////////////////////////
129         // vec1 definition
130  
131 #if(defined(GLM_PRECISION_HIGHP_BOOL))
132         typedef highp_bvec1                             bvec1;
133 #elif(defined(GLM_PRECISION_MEDIUMP_BOOL))
134         typedef mediump_bvec1                   bvec1;
135 #elif(defined(GLM_PRECISION_LOWP_BOOL))
136         typedef lowp_bvec1                              bvec1;
137 #else
138         /// 1 component vector of boolean.
139         /// @see gtc_vec1 extension.
140         typedef highp_bvec1                             bvec1;
141 #endif//GLM_PRECISION
142  
143 #if(defined(GLM_PRECISION_HIGHP_FLOAT))
144         typedef highp_vec1                              vec1;
145 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
146         typedef mediump_vec1                    vec1;
147 #elif(defined(GLM_PRECISION_LOWP_FLOAT))
148         typedef lowp_vec1                               vec1;
149 #else
150         /// 1 component vector of floating-point numbers.
151         /// @see gtc_vec1 extension.
152         typedef highp_vec1                              vec1;
153 #endif//GLM_PRECISION
154  
155 #if(defined(GLM_PRECISION_HIGHP_DOUBLE))
156         typedef highp_dvec1                             dvec1;
157 #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
158         typedef mediump_dvec1                   dvec1;
159 #elif(defined(GLM_PRECISION_LOWP_DOUBLE))
160         typedef lowp_dvec1                              dvec1;
161 #else
162         /// 1 component vector of floating-point numbers.
163         /// @see gtc_vec1 extension.
164         typedef highp_dvec1                             dvec1;
165 #endif//GLM_PRECISION
166  
167 #if(defined(GLM_PRECISION_HIGHP_INT))
168         typedef highp_ivec1                     ivec1;
169 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
170         typedef mediump_ivec1           ivec1;
171 #elif(defined(GLM_PRECISION_LOWP_INT))
172         typedef lowp_ivec1                      ivec1;
173 #else
174         /// 1 component vector of signed integer numbers.
175         /// @see gtc_vec1 extension.
176         typedef highp_ivec1                     ivec1;
177 #endif//GLM_PRECISION
178  
179 #if(defined(GLM_PRECISION_HIGHP_UINT))
180         typedef highp_uvec1                     uvec1;
181 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
182         typedef mediump_uvec1           uvec1;
183 #elif(defined(GLM_PRECISION_LOWP_UINT))
184         typedef lowp_uvec1                      uvec1;
185 #else
186         /// 1 component vector of unsigned integer numbers.
187         /// @see gtc_vec1 extension.
188         typedef highp_uvec1                     uvec1;
189 #endif//GLM_PRECISION
190  
191 }// namespace glm
192  
193 #include "vec1.inl"