1 /////////////////////////////////////////////////////////////////////////////////// 2 /// OpenGL Mathematics (glm.g-truc.net) 3 /// 4 /// Copyright (c) 2005 - 2014 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 /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 /// THE SOFTWARE. 22 /// 23 /// @ref gtc_type_precision 24 /// @file glm/gtc/type_precision.hpp 25 /// @date 2009-06-04 / 2011-12-07 26 /// @author Christophe Riccio 27 /// 28 /// @see core (dependence) 29 /// @see gtc_half_float (dependence) 30 /// @see gtc_quaternion (dependence) 31 /// 32 /// @defgroup gtc_type_precision GLM_GTC_type_precision 33 /// @ingroup gtc 34 /// 35 /// @brief Defines specific C++-based precision types. 36 /// 37 /// @ref core_precision defines types based on GLSL's precision qualifiers. This 38 /// extension defines types based on explicitly-sized C++ data types. 39 /// 40 /// <glm/gtc/type_precision.hpp> need to be included to use these functionalities. 41 /////////////////////////////////////////////////////////////////////////////////// 42 43 #ifndef GLM_GTC_type_precision 44 #define GLM_GTC_type_precision 45 46 // Dependency: 47 #include "../gtc/quaternion.hpp" 48 #include "../vec2.hpp" 49 #include "../vec3.hpp" 50 #include "../vec4.hpp" 51 #include "../mat2x2.hpp" 52 #include "../mat2x3.hpp" 53 #include "../mat2x4.hpp" 54 #include "../mat3x2.hpp" 55 #include "../mat3x3.hpp" 56 #include "../mat3x4.hpp" 57 #include "../mat4x2.hpp" 58 #include "../mat4x3.hpp" 59 #include "../mat4x4.hpp" 60 61 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) 62 # pragma message("GLM: GLM_GTC_type_precision extension included") 63 #endif 64 65 namespace glm 66 { 67 /////////////////////////// 68 // Signed int vector types 69 70 /// @addtogroup gtc_type_precision 71 /// @{ 72 73 /// Low precision 8 bit signed integer type. 74 /// @see gtc_type_precision 75 typedef detail::int8 lowp_int8; 76 77 /// Low precision 16 bit signed integer type. 78 /// @see gtc_type_precision 79 typedef detail::int16 lowp_int16; 80 81 /// Low precision 32 bit signed integer type. 82 /// @see gtc_type_precision 83 typedef detail::int32 lowp_int32; 84 85 /// Low precision 64 bit signed integer type. 86 /// @see gtc_type_precision 87 typedef detail::int64 lowp_int64; 88 89 /// Low precision 8 bit signed integer type. 90 /// @see gtc_type_precision 91 typedef detail::int8 lowp_int8_t; 92 93 /// Low precision 16 bit signed integer type. 94 /// @see gtc_type_precision 95 typedef detail::int16 lowp_int16_t; 96 97 /// Low precision 32 bit signed integer type. 98 /// @see gtc_type_precision 99 typedef detail::int32 lowp_int32_t; 100 101 /// Low precision 64 bit signed integer type. 102 /// @see gtc_type_precision 103 typedef detail::int64 lowp_int64_t; 104 105 /// Low precision 8 bit signed integer type. 106 /// @see gtc_type_precision 107 typedef detail::int8 lowp_i8; 108 109 /// Low precision 16 bit signed integer type. 110 /// @see gtc_type_precision 111 typedef detail::int16 lowp_i16; 112 113 /// Low precision 32 bit signed integer type. 114 /// @see gtc_type_precision 115 typedef detail::int32 lowp_i32; 116 117 /// Low precision 64 bit signed integer type. 118 /// @see gtc_type_precision 119 typedef detail::int64 lowp_i64; 120 121 /// Medium precision 8 bit signed integer type. 122 /// @see gtc_type_precision 123 typedef detail::int8 mediump_int8; 124 125 /// Medium precision 16 bit signed integer type. 126 /// @see gtc_type_precision 127 typedef detail::int16 mediump_int16; 128 129 /// Medium precision 32 bit signed integer type. 130 /// @see gtc_type_precision 131 typedef detail::int32 mediump_int32; 132 133 /// Medium precision 64 bit signed integer type. 134 /// @see gtc_type_precision 135 typedef detail::int64 mediump_int64; 136 137 /// Medium precision 8 bit signed integer type. 138 /// @see gtc_type_precision 139 typedef detail::int8 mediump_int8_t; 140 141 /// Medium precision 16 bit signed integer type. 142 /// @see gtc_type_precision 143 typedef detail::int16 mediump_int16_t; 144 145 /// Medium precision 32 bit signed integer type. 146 /// @see gtc_type_precision 147 typedef detail::int32 mediump_int32_t; 148 149 /// Medium precision 64 bit signed integer type. 150 /// @see gtc_type_precision 151 typedef detail::int64 mediump_int64_t; 152 153 /// Medium precision 8 bit signed integer type. 154 /// @see gtc_type_precision 155 typedef detail::int8 mediump_i8; 156 157 /// Medium precision 16 bit signed integer type. 158 /// @see gtc_type_precision 159 typedef detail::int16 mediump_i16; 160 161 /// Medium precision 32 bit signed integer type. 162 /// @see gtc_type_precision 163 typedef detail::int32 mediump_i32; 164 165 /// Medium precision 64 bit signed integer type. 166 /// @see gtc_type_precision 167 typedef detail::int64 mediump_i64; 168 169 /// High precision 8 bit signed integer type. 170 /// @see gtc_type_precision 171 typedef detail::int8 highp_int8; 172 173 /// High precision 16 bit signed integer type. 174 /// @see gtc_type_precision 175 typedef detail::int16 highp_int16; 176 177 /// High precision 32 bit signed integer type. 178 /// @see gtc_type_precision 179 typedef detail::int32 highp_int32; 180 181 /// High precision 64 bit signed integer type. 182 /// @see gtc_type_precision 183 typedef detail::int64 highp_int64; 184 185 /// High precision 8 bit signed integer type. 186 /// @see gtc_type_precision 187 typedef detail::int8 highp_int8_t; 188 189 /// High precision 16 bit signed integer type. 190 /// @see gtc_type_precision 191 typedef detail::int16 highp_int16_t; 192 193 /// 32 bit signed integer type. 194 /// @see gtc_type_precision 195 typedef detail::int32 highp_int32_t; 196 197 /// High precision 64 bit signed integer type. 198 /// @see gtc_type_precision 199 typedef detail::int64 highp_int64_t; 200 201 /// High precision 8 bit signed integer type. 202 /// @see gtc_type_precision 203 typedef detail::int8 highp_i8; 204 205 /// High precision 16 bit signed integer type. 206 /// @see gtc_type_precision 207 typedef detail::int16 highp_i16; 208 209 /// High precision 32 bit signed integer type. 210 /// @see gtc_type_precision 211 typedef detail::int32 highp_i32; 212 213 /// High precision 64 bit signed integer type. 214 /// @see gtc_type_precision 215 typedef detail::int64 highp_i64; 216 217 218 /// 8 bit signed integer type. 219 /// @see gtc_type_precision 220 typedef detail::int8 int8; 221 222 /// 16 bit signed integer type. 223 /// @see gtc_type_precision 224 typedef detail::int16 int16; 225 226 /// 32 bit signed integer type. 227 /// @see gtc_type_precision 228 typedef detail::int32 int32; 229 230 /// 64 bit signed integer type. 231 /// @see gtc_type_precision 232 typedef detail::int64 int64; 233 234 /// 8 bit signed integer type. 235 /// @see gtc_type_precision 236 typedef detail::int8 int8_t; 237 238 /// 16 bit signed integer type. 239 /// @see gtc_type_precision 240 typedef detail::int16 int16_t; 241 242 /// 32 bit signed integer type. 243 /// @see gtc_type_precision 244 typedef detail::int32 int32_t; 245 246 /// 64 bit signed integer type. 247 /// @see gtc_type_precision 248 typedef detail::int64 int64_t; 249 250 /// 8 bit signed integer type. 251 /// @see gtc_type_precision 252 typedef detail::int8 i8; 253 254 /// 16 bit signed integer type. 255 /// @see gtc_type_precision 256 typedef detail::int16 i16; 257 258 /// 32 bit signed integer type. 259 /// @see gtc_type_precision 260 typedef detail::int32 i32; 261 262 /// 64 bit signed integer type. 263 /// @see gtc_type_precision 264 typedef detail::int64 i64; 265 266 267 /// 8 bit signed integer scalar type. 268 /// @see gtc_type_precision 269 typedef detail::tvec1<i8, defaultp> i8vec1; 270 271 /// 8 bit signed integer vector of 2 components type. 272 /// @see gtc_type_precision 273 typedef detail::tvec2<i8, defaultp> i8vec2; 274 275 /// 8 bit signed integer vector of 3 components type. 276 /// @see gtc_type_precision 277 typedef detail::tvec3<i8, defaultp> i8vec3; 278 279 /// 8 bit signed integer vector of 4 components type. 280 /// @see gtc_type_precision 281 typedef detail::tvec4<i8, defaultp> i8vec4; 282 283 284 /// 16 bit signed integer scalar type. 285 /// @see gtc_type_precision 286 typedef detail::tvec1<i16, defaultp> i16vec1; 287 288 /// 16 bit signed integer vector of 2 components type. 289 /// @see gtc_type_precision 290 typedef detail::tvec2<i16, defaultp> i16vec2; 291 292 /// 16 bit signed integer vector of 3 components type. 293 /// @see gtc_type_precision 294 typedef detail::tvec3<i16, defaultp> i16vec3; 295 296 /// 16 bit signed integer vector of 4 components type. 297 /// @see gtc_type_precision 298 typedef detail::tvec4<i16, defaultp> i16vec4; 299 300 301 /// 32 bit signed integer scalar type. 302 /// @see gtc_type_precision 303 typedef detail::tvec1<i32, defaultp> i32vec1; 304 305 /// 32 bit signed integer vector of 2 components type. 306 /// @see gtc_type_precision 307 typedef detail::tvec2<i32, defaultp> i32vec2; 308 309 /// 32 bit signed integer vector of 3 components type. 310 /// @see gtc_type_precision 311 typedef detail::tvec3<i32, defaultp> i32vec3; 312 313 /// 32 bit signed integer vector of 4 components type. 314 /// @see gtc_type_precision 315 typedef detail::tvec4<i32, defaultp> i32vec4; 316 317 318 /// 64 bit signed integer scalar type. 319 /// @see gtc_type_precision 320 typedef detail::tvec1<i64, defaultp> i64vec1; 321 322 /// 64 bit signed integer vector of 2 components type. 323 /// @see gtc_type_precision 324 typedef detail::tvec2<i64, defaultp> i64vec2; 325 326 /// 64 bit signed integer vector of 3 components type. 327 /// @see gtc_type_precision 328 typedef detail::tvec3<i64, defaultp> i64vec3; 329 330 /// 64 bit signed integer vector of 4 components type. 331 /// @see gtc_type_precision 332 typedef detail::tvec4<i64, defaultp> i64vec4; 333 334 335 ///////////////////////////// 336 // Unsigned int vector types 337 338 /// Low precision 8 bit unsigned integer type. 339 /// @see gtc_type_precision 340 typedef detail::uint8 lowp_uint8; 341 342 /// Low precision 16 bit unsigned integer type. 343 /// @see gtc_type_precision 344 typedef detail::uint16 lowp_uint16; 345 346 /// Low precision 32 bit unsigned integer type. 347 /// @see gtc_type_precision 348 typedef detail::uint32 lowp_uint32; 349 350 /// Low precision 64 bit unsigned integer type. 351 /// @see gtc_type_precision 352 typedef detail::uint64 lowp_uint64; 353 354 /// Low precision 8 bit unsigned integer type. 355 /// @see gtc_type_precision 356 typedef detail::uint8 lowp_uint8_t; 357 358 /// Low precision 16 bit unsigned integer type. 359 /// @see gtc_type_precision 360 typedef detail::uint16 lowp_uint16_t; 361 362 /// Low precision 32 bit unsigned integer type. 363 /// @see gtc_type_precision 364 typedef detail::uint32 lowp_uint32_t; 365 366 /// Low precision 64 bit unsigned integer type. 367 /// @see gtc_type_precision 368 typedef detail::uint64 lowp_uint64_t; 369 370 /// Low precision 8 bit unsigned integer type. 371 /// @see gtc_type_precision 372 typedef detail::uint8 lowp_u8; 373 374 /// Low precision 16 bit unsigned integer type. 375 /// @see gtc_type_precision 376 typedef detail::uint16 lowp_u16; 377 378 /// Low precision 32 bit unsigned integer type. 379 /// @see gtc_type_precision 380 typedef detail::uint32 lowp_u32; 381 382 /// Low precision 64 bit unsigned integer type. 383 /// @see gtc_type_precision 384 typedef detail::uint64 lowp_u64; 385 386 /// Medium precision 8 bit unsigned integer type. 387 /// @see gtc_type_precision 388 typedef detail::uint8 mediump_uint8; 389 390 /// Medium precision 16 bit unsigned integer type. 391 /// @see gtc_type_precision 392 typedef detail::uint16 mediump_uint16; 393 394 /// Medium precision 32 bit unsigned integer type. 395 /// @see gtc_type_precision 396 typedef detail::uint32 mediump_uint32; 397 398 /// Medium precision 64 bit unsigned integer type. 399 /// @see gtc_type_precision 400 typedef detail::uint64 mediump_uint64; 401 402 /// Medium precision 8 bit unsigned integer type. 403 /// @see gtc_type_precision 404 typedef detail::uint8 mediump_uint8_t; 405 406 /// Medium precision 16 bit unsigned integer type. 407 /// @see gtc_type_precision 408 typedef detail::uint16 mediump_uint16_t; 409 410 /// Medium precision 32 bit unsigned integer type. 411 /// @see gtc_type_precision 412 typedef detail::uint32 mediump_uint32_t; 413 414 /// Medium precision 64 bit unsigned integer type. 415 /// @see gtc_type_precision 416 typedef detail::uint64 mediump_uint64_t; 417 418 /// Medium precision 8 bit unsigned integer type. 419 /// @see gtc_type_precision 420 typedef detail::uint8 mediump_u8; 421 422 /// Medium precision 16 bit unsigned integer type. 423 /// @see gtc_type_precision 424 typedef detail::uint16 mediump_u16; 425 426 /// Medium precision 32 bit unsigned integer type. 427 /// @see gtc_type_precision 428 typedef detail::uint32 mediump_u32; 429 430 /// Medium precision 64 bit unsigned integer type. 431 /// @see gtc_type_precision 432 typedef detail::uint64 mediump_u64; 433 434 /// High precision 8 bit unsigned integer type. 435 /// @see gtc_type_precision 436 typedef detail::uint8 highp_uint8; 437 438 /// High precision 16 bit unsigned integer type. 439 /// @see gtc_type_precision 440 typedef detail::uint16 highp_uint16; 441 442 /// High precision 32 bit unsigned integer type. 443 /// @see gtc_type_precision 444 typedef detail::uint32 highp_uint32; 445 446 /// High precision 64 bit unsigned integer type. 447 /// @see gtc_type_precision 448 typedef detail::uint64 highp_uint64; 449 450 /// High precision 8 bit unsigned integer type. 451 /// @see gtc_type_precision 452 typedef detail::uint8 highp_uint8_t; 453 454 /// High precision 16 bit unsigned integer type. 455 /// @see gtc_type_precision 456 typedef detail::uint16 highp_uint16_t; 457 458 /// High precision 32 bit unsigned integer type. 459 /// @see gtc_type_precision 460 typedef detail::uint32 highp_uint32_t; 461 462 /// High precision 64 bit unsigned integer type. 463 /// @see gtc_type_precision 464 typedef detail::uint64 highp_uint64_t; 465 466 /// High precision 8 bit unsigned integer type. 467 /// @see gtc_type_precision 468 typedef detail::uint8 highp_u8; 469 470 /// High precision 16 bit unsigned integer type. 471 /// @see gtc_type_precision 472 typedef detail::uint16 highp_u16; 473 474 /// High precision 32 bit unsigned integer type. 475 /// @see gtc_type_precision 476 typedef detail::uint32 highp_u32; 477 478 /// High precision 64 bit unsigned integer type. 479 /// @see gtc_type_precision 480 typedef detail::uint64 highp_u64; 481 482 /// Default precision 8 bit unsigned integer type. 483 /// @see gtc_type_precision 484 typedef detail::uint8 uint8; 485 486 /// Default precision 16 bit unsigned integer type. 487 /// @see gtc_type_precision 488 typedef detail::uint16 uint16; 489 490 /// Default precision 32 bit unsigned integer type. 491 /// @see gtc_type_precision 492 typedef detail::uint32 uint32; 493 494 /// Default precision 64 bit unsigned integer type. 495 /// @see gtc_type_precision 496 typedef detail::uint64 uint64; 497 498 /// Default precision 8 bit unsigned integer type. 499 /// @see gtc_type_precision 500 typedef detail::uint8 uint8_t; 501 502 /// Default precision 16 bit unsigned integer type. 503 /// @see gtc_type_precision 504 typedef detail::uint16 uint16_t; 505 506 /// Default precision 32 bit unsigned integer type. 507 /// @see gtc_type_precision 508 typedef detail::uint32 uint32_t; 509 510 /// Default precision 64 bit unsigned integer type. 511 /// @see gtc_type_precision 512 typedef detail::uint64 uint64_t; 513 514 /// Default precision 8 bit unsigned integer type. 515 /// @see gtc_type_precision 516 typedef detail::uint8 u8; 517 518 /// Default precision 16 bit unsigned integer type. 519 /// @see gtc_type_precision 520 typedef detail::uint16 u16; 521 522 /// Default precision 32 bit unsigned integer type. 523 /// @see gtc_type_precision 524 typedef detail::uint32 u32; 525 526 /// Default precision 64 bit unsigned integer type. 527 /// @see gtc_type_precision 528 typedef detail::uint64 u64; 529 530 531 532 /// Default precision 8 bit unsigned integer scalar type. 533 /// @see gtc_type_precision 534 typedef detail::tvec1<u8, defaultp> u8vec1; 535 536 /// Default precision 8 bit unsigned integer vector of 2 components type. 537 /// @see gtc_type_precision 538 typedef detail::tvec2<u8, defaultp> u8vec2; 539 540 /// Default precision 8 bit unsigned integer vector of 3 components type. 541 /// @see gtc_type_precision 542 typedef detail::tvec3<u8, defaultp> u8vec3; 543 544 /// Default precision 8 bit unsigned integer vector of 4 components type. 545 /// @see gtc_type_precision 546 typedef detail::tvec4<u8, defaultp> u8vec4; 547 548 549 /// Default precision 16 bit unsigned integer scalar type. 550 /// @see gtc_type_precision 551 typedef detail::tvec1<u16, defaultp> u16vec1; 552 553 /// Default precision 16 bit unsigned integer vector of 2 components type. 554 /// @see gtc_type_precision 555 typedef detail::tvec2<u16, defaultp> u16vec2; 556 557 /// Default precision 16 bit unsigned integer vector of 3 components type. 558 /// @see gtc_type_precision 559 typedef detail::tvec3<u16, defaultp> u16vec3; 560 561 /// Default precision 16 bit unsigned integer vector of 4 components type. 562 /// @see gtc_type_precision 563 typedef detail::tvec4<u16, defaultp> u16vec4; 564 565 566 /// Default precision 32 bit unsigned integer scalar type. 567 /// @see gtc_type_precision 568 typedef detail::tvec1<u32, defaultp> u32vec1; 569 570 /// Default precision 32 bit unsigned integer vector of 2 components type. 571 /// @see gtc_type_precision 572 typedef detail::tvec2<u32, defaultp> u32vec2; 573 574 /// Default precision 32 bit unsigned integer vector of 3 components type. 575 /// @see gtc_type_precision 576 typedef detail::tvec3<u32, defaultp> u32vec3; 577 578 /// Default precision 32 bit unsigned integer vector of 4 components type. 579 /// @see gtc_type_precision 580 typedef detail::tvec4<u32, defaultp> u32vec4; 581 582 583 /// Default precision 64 bit unsigned integer scalar type. 584 /// @see gtc_type_precision 585 typedef detail::tvec1<u64, defaultp> u64vec1; 586 587 /// Default precision 64 bit unsigned integer vector of 2 components type. 588 /// @see gtc_type_precision 589 typedef detail::tvec2<u64, defaultp> u64vec2; 590 591 /// Default precision 64 bit unsigned integer vector of 3 components type. 592 /// @see gtc_type_precision 593 typedef detail::tvec3<u64, defaultp> u64vec3; 594 595 /// Default precision 64 bit unsigned integer vector of 4 components type. 596 /// @see gtc_type_precision 597 typedef detail::tvec4<u64, defaultp> u64vec4; 598 599 600 ////////////////////// 601 // Float vector types 602 603 /// 32 bit single-precision floating-point scalar. 604 /// @see gtc_type_precision 605 typedef detail::float32 float32; 606 607 /// 64 bit double-precision floating-point scalar. 608 /// @see gtc_type_precision 609 typedef detail::float64 float64; 610 611 612 /// 32 bit single-precision floating-point scalar. 613 /// @see gtc_type_precision 614 typedef detail::float32 float32_t; 615 616 /// 64 bit double-precision floating-point scalar. 617 /// @see gtc_type_precision 618 typedef detail::float64 float64_t; 619 620 621 /// 32 bit single-precision floating-point scalar. 622 /// @see gtc_type_precision 623 typedef float32 f32; 624 625 /// 64 bit double-precision floating-point scalar. 626 /// @see gtc_type_precision 627 typedef float64 f64; 628 629 630 /// Single-precision floating-point vector of 1 component. 631 /// @see gtc_type_precision 632 typedef detail::tvec1<float, defaultp> fvec1; 633 634 /// Single-precision floating-point vector of 2 components. 635 /// @see gtc_type_precision 636 typedef detail::tvec2<float, defaultp> fvec2; 637 638 /// Single-precision floating-point vector of 3 components. 639 /// @see gtc_type_precision 640 typedef detail::tvec3<float, defaultp> fvec3; 641 642 /// Single-precision floating-point vector of 4 components. 643 /// @see gtc_type_precision 644 typedef detail::tvec4<float, defaultp> fvec4; 645 646 647 /// Single-precision floating-point vector of 1 component. 648 /// @see gtc_type_precision 649 typedef detail::tvec1<f32, defaultp> f32vec1; 650 651 /// Single-precision floating-point vector of 2 components. 652 /// @see gtc_type_precision 653 typedef detail::tvec2<f32, defaultp> f32vec2; 654 655 /// Single-precision floating-point vector of 3 components. 656 /// @see gtc_type_precision 657 typedef detail::tvec3<f32, defaultp> f32vec3; 658 659 /// Single-precision floating-point vector of 4 components. 660 /// @see gtc_type_precision 661 typedef detail::tvec4<f32, defaultp> f32vec4; 662 663 664 /// Double-precision floating-point vector of 1 component. 665 /// @see gtc_type_precision 666 typedef detail::tvec1<f64, defaultp> f64vec1; 667 668 /// Double-precision floating-point vector of 2 components. 669 /// @see gtc_type_precision 670 typedef detail::tvec2<f64, defaultp> f64vec2; 671 672 /// Double-precision floating-point vector of 3 components. 673 /// @see gtc_type_precision 674 typedef detail::tvec3<f64, defaultp> f64vec3; 675 676 /// Double-precision floating-point vector of 4 components. 677 /// @see gtc_type_precision 678 typedef detail::tvec4<f64, defaultp> f64vec4; 679 680 681 ////////////////////// 682 // Float matrix types 683 684 /// Single-precision floating-point 1x1 matrix. 685 /// @see gtc_type_precision 686 //typedef detail::tmat1x1<f32> fmat1; 687 688 /// Single-precision floating-point 2x2 matrix. 689 /// @see gtc_type_precision 690 typedef detail::tmat2x2<f32, defaultp> fmat2; 691 692 /// Single-precision floating-point 3x3 matrix. 693 /// @see gtc_type_precision 694 typedef detail::tmat3x3<f32, defaultp> fmat3; 695 696 /// Single-precision floating-point 4x4 matrix. 697 /// @see gtc_type_precision 698 typedef detail::tmat4x4<f32, defaultp> fmat4; 699 700 701 /// Single-precision floating-point 1x1 matrix. 702 /// @see gtc_type_precision 703 //typedef f32 fmat1x1; 704 705 /// Single-precision floating-point 2x2 matrix. 706 /// @see gtc_type_precision 707 typedef detail::tmat2x2<f32, defaultp> fmat2x2; 708 709 /// Single-precision floating-point 2x3 matrix. 710 /// @see gtc_type_precision 711 typedef detail::tmat2x3<f32, defaultp> fmat2x3; 712 713 /// Single-precision floating-point 2x4 matrix. 714 /// @see gtc_type_precision 715 typedef detail::tmat2x4<f32, defaultp> fmat2x4; 716 717 /// Single-precision floating-point 3x2 matrix. 718 /// @see gtc_type_precision 719 typedef detail::tmat3x2<f32, defaultp> fmat3x2; 720 721 /// Single-precision floating-point 3x3 matrix. 722 /// @see gtc_type_precision 723 typedef detail::tmat3x3<f32, defaultp> fmat3x3; 724 725 /// Single-precision floating-point 3x4 matrix. 726 /// @see gtc_type_precision 727 typedef detail::tmat3x4<f32, defaultp> fmat3x4; 728 729 /// Single-precision floating-point 4x2 matrix. 730 /// @see gtc_type_precision 731 typedef detail::tmat4x2<f32, defaultp> fmat4x2; 732 733 /// Single-precision floating-point 4x3 matrix. 734 /// @see gtc_type_precision 735 typedef detail::tmat4x3<f32, defaultp> fmat4x3; 736 737 /// Single-precision floating-point 4x4 matrix. 738 /// @see gtc_type_precision 739 typedef detail::tmat4x4<f32, defaultp> fmat4x4; 740 741 742 /// Single-precision floating-point 1x1 matrix. 743 /// @see gtc_type_precision 744 //typedef detail::tmat1x1<f32, defaultp> f32mat1; 745 746 /// Single-precision floating-point 2x2 matrix. 747 /// @see gtc_type_precision 748 typedef detail::tmat2x2<f32, defaultp> f32mat2; 749 750 /// Single-precision floating-point 3x3 matrix. 751 /// @see gtc_type_precision 752 typedef detail::tmat3x3<f32, defaultp> f32mat3; 753 754 /// Single-precision floating-point 4x4 matrix. 755 /// @see gtc_type_precision 756 typedef detail::tmat4x4<f32, defaultp> f32mat4; 757 758 759 /// Single-precision floating-point 1x1 matrix. 760 /// @see gtc_type_precision 761 //typedef f32 f32mat1x1; 762 763 /// Single-precision floating-point 2x2 matrix. 764 /// @see gtc_type_precision 765 typedef detail::tmat2x2<f32, defaultp> f32mat2x2; 766 767 /// Single-precision floating-point 2x3 matrix. 768 /// @see gtc_type_precision 769 typedef detail::tmat2x3<f32, defaultp> f32mat2x3; 770 771 /// Single-precision floating-point 2x4 matrix. 772 /// @see gtc_type_precision 773 typedef detail::tmat2x4<f32, defaultp> f32mat2x4; 774 775 /// Single-precision floating-point 3x2 matrix. 776 /// @see gtc_type_precision 777 typedef detail::tmat3x2<f32, defaultp> f32mat3x2; 778 779 /// Single-precision floating-point 3x3 matrix. 780 /// @see gtc_type_precision 781 typedef detail::tmat3x3<f32, defaultp> f32mat3x3; 782 783 /// Single-precision floating-point 3x4 matrix. 784 /// @see gtc_type_precision 785 typedef detail::tmat3x4<f32, defaultp> f32mat3x4; 786 787 /// Single-precision floating-point 4x2 matrix. 788 /// @see gtc_type_precision 789 typedef detail::tmat4x2<f32, defaultp> f32mat4x2; 790 791 /// Single-precision floating-point 4x3 matrix. 792 /// @see gtc_type_precision 793 typedef detail::tmat4x3<f32, defaultp> f32mat4x3; 794 795 /// Single-precision floating-point 4x4 matrix. 796 /// @see gtc_type_precision 797 typedef detail::tmat4x4<f32, defaultp> f32mat4x4; 798 799 800 /// Double-precision floating-point 1x1 matrix. 801 /// @see gtc_type_precision 802 //typedef detail::tmat1x1<f64, defaultp> f64mat1; 803 804 /// Double-precision floating-point 2x2 matrix. 805 /// @see gtc_type_precision 806 typedef detail::tmat2x2<f64, defaultp> f64mat2; 807 808 /// Double-precision floating-point 3x3 matrix. 809 /// @see gtc_type_precision 810 typedef detail::tmat3x3<f64, defaultp> f64mat3; 811 812 /// Double-precision floating-point 4x4 matrix. 813 /// @see gtc_type_precision 814 typedef detail::tmat4x4<f64, defaultp> f64mat4; 815 816 817 /// Double-precision floating-point 1x1 matrix. 818 /// @see gtc_type_precision 819 //typedef f64 f64mat1x1; 820 821 /// Double-precision floating-point 2x2 matrix. 822 /// @see gtc_type_precision 823 typedef detail::tmat2x2<f64, defaultp> f64mat2x2; 824 825 /// Double-precision floating-point 2x3 matrix. 826 /// @see gtc_type_precision 827 typedef detail::tmat2x3<f64, defaultp> f64mat2x3; 828 829 /// Double-precision floating-point 2x4 matrix. 830 /// @see gtc_type_precision 831 typedef detail::tmat2x4<f64, defaultp> f64mat2x4; 832 833 /// Double-precision floating-point 3x2 matrix. 834 /// @see gtc_type_precision 835 typedef detail::tmat3x2<f64, defaultp> f64mat3x2; 836 837 /// Double-precision floating-point 3x3 matrix. 838 /// @see gtc_type_precision 839 typedef detail::tmat3x3<f64, defaultp> f64mat3x3; 840 841 /// Double-precision floating-point 3x4 matrix. 842 /// @see gtc_type_precision 843 typedef detail::tmat3x4<f64, defaultp> f64mat3x4; 844 845 /// Double-precision floating-point 4x2 matrix. 846 /// @see gtc_type_precision 847 typedef detail::tmat4x2<f64, defaultp> f64mat4x2; 848 849 /// Double-precision floating-point 4x3 matrix. 850 /// @see gtc_type_precision 851 typedef detail::tmat4x3<f64, defaultp> f64mat4x3; 852 853 /// Double-precision floating-point 4x4 matrix. 854 /// @see gtc_type_precision 855 typedef detail::tmat4x4<f64, defaultp> f64mat4x4; 856 857 858 ////////////////////////// 859 // Quaternion types 860 861 /// Single-precision floating-point quaternion. 862 /// @see gtc_type_precision 863 typedef detail::tquat<f32, defaultp> f32quat; 864 865 /// Double-precision floating-point quaternion. 866 /// @see gtc_type_precision 867 typedef detail::tquat<f64, defaultp> f64quat; 868 869 /// @} 870 }//namespace glm 871 872 #include "type_precision.inl" 873 874 #endif//GLM_GTC_type_precision 875