| 654 | // WAVEPACKET13 always uses version 1 |
| 655 | |
| 656 | bool LASzip::request_version(const U16 requested_version) |
| 657 | { |
| 658 | if (num_items == 0) return return_error("call setup() before requesting version"); |
| 659 | if (compressor == LASZIP_COMPRESSOR_NONE) |
| 660 | { |
| 661 | if (requested_version > 0) return return_error("without compression version is always 0"); |
| 662 | } |
| 663 | else |
| 664 | { |
| 665 | if (requested_version < 1) return return_error("with compression version is at least 1"); |
| 666 | if (requested_version > 4) return return_error("version larger than 4 not supported"); |
| 667 | } |
| 668 | U16 i; |
| 669 | for (i = 0; i < num_items; i++) |
| 670 | { |
| 671 | switch (items[i].type) |
| 672 | { |
| 673 | case LASitem::POINT10: |
| 674 | case LASitem::GPSTIME11: |
| 675 | case LASitem::RGB12: |
| 676 | case LASitem::BYTE: |
| 677 | items[i].version = (std::min)((U16)2, requested_version); // no version 3 or 4 |
| 678 | break; |
| 679 | case LASitem::WAVEPACKET13: |
| 680 | items[i].version = 1; // no version 2, 3 or 4 |
| 681 | break; |
| 682 | case LASitem::POINT14: |
| 683 | case LASitem::RGB14: |
| 684 | case LASitem::RGBNIR14: |
| 685 | case LASitem::WAVEPACKET14: |
| 686 | case LASitem::BYTE14: |
| 687 | items[i].version = (std::max)((U16)3, requested_version); // no version 1 or 2 |
| 688 | break; |
| 689 | default: |
| 690 | return return_error("item type not supported"); |
| 691 | } |
| 692 | } |
| 693 | return true; |
| 694 | } |
| 695 | |
| 696 | bool LASzip::is_standard(U8* point_type, U16* record_length) |
| 697 | { |
no outgoing calls