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