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