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