00001
00002
00004
00005
00006
00007
00009
00024 #ifndef glm_glm
00025 #define glm_glm
00026
00027 #ifdef max
00028 #undef max
00029 #endif
00030
00031 #ifdef min
00032 #undef min
00033 #endif
00034
00035 #define GLMvalType typename genType::value_type
00036 #define GLMcolType typename genType::col_type
00037 #define GLMrowType typename genType::row_type
00038
00039 #define GLMsizeType typename genType::size_type
00040 #define GLMrowSize typename genType::row_size
00041 #define GLMcolSize typename genType::col_size
00042
00043 #include <cmath>
00044 #include <climits>
00045 #include "./setup.hpp"
00046
00048 namespace glm
00049 {
00050 namespace test
00051 {
00052 bool main_bug();
00053 bool main_core();
00054 }
00055
00057 namespace core
00058 {
00063 namespace type
00064 {
00067 namespace scalar
00068 {
00071 namespace precision{}
00072 }
00073
00076 namespace vector
00077 {
00080 namespace precision{}
00081 }
00082
00085 namespace matrix
00086 {
00089 namespace precision{}
00090 }
00091 }
00094 namespace function{}
00095 }
00096
00097
00098 using namespace core::type::scalar;
00099 using namespace core::type::scalar::precision;
00100 using namespace core::type::vector;
00101 using namespace core::type::vector::precision;
00102 using namespace core::type::matrix;
00103 using namespace core::type::matrix::precision;
00104
00106 namespace gtx{}
00107
00109 namespace gtc{}
00110
00112 namespace img{}
00113
00115 namespace img{}
00116
00117 }
00118
00119 #include "./core/_detail.hpp"
00120 #include "./core/type.hpp"
00121 #include "./core/type_half.hpp"
00122
00123 #include "./core/func_common.hpp"
00124 #include "./core/func_exponential.hpp"
00125 #include "./core/func_geometric.hpp"
00126 #include "./core/func_matrix.hpp"
00127 #include "./core/func_trigonometric.hpp"
00128 #include "./core/func_vector_relational.hpp"
00129 #include "./core/func_noise.hpp"
00130 #include "./core/_swizzle.hpp"
00131
00132
00133
00134
00135 #if(defined(GLM_MESSAGE) && (GLM_MESSAGE & (GLM_MESSAGE_CORE | GLM_MESSAGE_NOTIFICATION)))
00136 # pragma message("GLM message: Core library included")
00137 #endif//GLM_MESSAGE
00138
00139 #if(defined(GLM_COMPILER) && (GLM_COMPILER & GLM_COMPILER_VC))
00140
00141 #define GLM_DEPRECATED __declspec(deprecated)
00142 #define GLM_RESTRICT __restrict
00143 #define GLM_ALIGN(x) __declspec(align(x))
00144
00145
00146
00147 #else
00148
00149 #define GLM_DEPRECATED
00150 #define GLM_RESTRICT
00151 #define GLM_ALIGN(x)
00152
00153 #endif//GLM_COMPILER
00154
00156
00157 #ifndef GLM_STATIC_ASSERT_NULL
00158 GLM_STATIC_ASSERT(sizeof(glm::detail::int8)==1);
00159 GLM_STATIC_ASSERT(sizeof(glm::detail::int16)==2);
00160 GLM_STATIC_ASSERT(sizeof(glm::detail::int32)==4);
00161 GLM_STATIC_ASSERT(sizeof(glm::detail::int64)==8);
00162
00163 GLM_STATIC_ASSERT(sizeof(glm::detail::uint8)==1);
00164 GLM_STATIC_ASSERT(sizeof(glm::detail::uint16)==2);
00165 GLM_STATIC_ASSERT(sizeof(glm::detail::uint32)==4);
00166 GLM_STATIC_ASSERT(sizeof(glm::detail::uint64)==8);
00167
00168 GLM_STATIC_ASSERT(sizeof(glm::detail::float16)==2);
00169 GLM_STATIC_ASSERT(sizeof(glm::detail::float32)==4);
00170 GLM_STATIC_ASSERT(sizeof(glm::detail::float64)==8);
00171 #endif//GLM_STATIC_ASSERT_NULL
00172
00173 #endif //glm_glm