| 79 | } |
| 80 | |
| 81 | BOOL LASwaveform13reader::open(const char* file_name, I64 start_of_waveform_data_packet_record, const LASvlr_wave_packet_descr * const * wave_packet_descr) |
| 82 | { |
| 83 | if (file_name == 0) |
| 84 | { |
| 85 | laserror("file name pointer is zero"); |
| 86 | return FALSE; |
| 87 | } |
| 88 | |
| 89 | // we need wave packet descriptors |
| 90 | |
| 91 | if (wave_packet_descr == 0) |
| 92 | { |
| 93 | laserror("wave packet descriptor pointer is zero"); |
| 94 | return FALSE; |
| 95 | } |
| 96 | |
| 97 | // only array positions 1 through 255 should have a wave packet descriptor |
| 98 | |
| 99 | if (wave_packet_descr[0] != 0) |
| 100 | { |
| 101 | laserror("wave_packet_descr[0] with index 0 must be zero"); |
| 102 | return FALSE; |
| 103 | } |
| 104 | |
| 105 | // check if compressed or not |
| 106 | |
| 107 | I32 i; |
| 108 | compressed = FALSE; |
| 109 | |
| 110 | for (i = 1; i < 256; i++) |
| 111 | { |
| 112 | if (wave_packet_descr[i]) |
| 113 | { |
| 114 | compressed = compressed || (wave_packet_descr[i]->getCompressionType() > 0); |
| 115 | } |
| 116 | } |
| 117 | |
| 118 | // create file name and open file |
| 119 | |
| 120 | if (start_of_waveform_data_packet_record == 0) |
| 121 | { |
| 122 | if (!compressed && (strstr(".wdp", file_name) || strstr(".WDP", file_name))) |
| 123 | { |
| 124 | file = LASfopen(file_name, "rb"); |
| 125 | } |
| 126 | else if (compressed && (strstr(".wdz", file_name) || strstr(".WDZ", file_name))) |
| 127 | { |
| 128 | file = LASfopen(file_name, "rb"); |
| 129 | } |
| 130 | else |
| 131 | { |
| 132 | char* file_name_temp = LASCopyString(file_name); |
| 133 | I32 len = (I32)strlen(file_name_temp); |
| 134 | if ((file_name_temp[len-3] == 'L') || (file_name_temp[len-3] == 'W')) |
| 135 | { |
| 136 | file_name_temp[len-3] = 'W'; |
| 137 | file_name_temp[len-2] = 'D'; |
| 138 | file_name_temp[len-1] = (compressed ? 'Z' : 'P'); |
nothing calls this directly
no test coverage detected