MCPcopy Create free account
hub / github.com/LAStools/LAStools / open

Method open

LASlib/src/laswaveform13reader.cpp:81–266  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

79}
80
81BOOL 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');

Callers

nothing calls this directly

Calls 8

laserrorFunction · 0.85
LASfopenFunction · 0.85
LASMessageFunction · 0.85
seekMethod · 0.45
getBytesMethod · 0.45
get16bitsLEMethod · 0.45
get32bitsLEMethod · 0.45
tellMethod · 0.45

Tested by

no test coverage detected