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

Method check

src/lascheck.cpp:153–1184  ·  view source on GitHub ↗

Run the lasheader and laspoint validation check

Source from the content-addressed store, hash-verified

151
152/// Run the lasheader and laspoint validation check
153void LAScheck::check(ValidationResult& results, std::string& crsdescription, BOOL no_CRS_fail, F64 tile_size) {
154 U32 i = 0;
155 U32 j = 0;
156
157 // check file signature
158
159 LASMessage(LAS_VERY_VERBOSE, "check file signature");
160
161 if ((lasheader->file_signature[0] != 'L') || (lasheader->file_signature[1] != 'A') || (lasheader->file_signature[2] != 'S') || (lasheader->file_signature[3] != 'F')) {
162 set_oss_content(note_oss, "should be 'LASF' and not '", lasheader->file_signature, "'");
163 results.add_fail("file signature", note_oss.str());
164 }
165
166 // check global encoding
167
168 LASMessage(LAS_VERY_VERBOSE, "check global encoding");
169
170 if ((lasheader->version_major == 1) && (lasheader->version_minor <= 1)) {
171 if (lasheader->global_encoding > 0) {
172 set_oss_content(note_oss, "should 0 for LAS ", static_cast<int>(lasheader->version_major), ".", static_cast<int>(lasheader->version_minor),
173 " but is ", lasheader->global_encoding);
174 results.add_fail("global encoding", note_oss.str());
175 }
176 } else if ((lasheader->version_major == 1) && (lasheader->version_minor <= 2)) {
177 if (lasheader->global_encoding > 1) {
178 set_oss_content(note_oss, "should be <= 1 for LAS ", static_cast<int>(lasheader->version_major), ".",
179 static_cast<int>(lasheader->version_minor), " but is ", lasheader->global_encoding);
180 results.add_fail("global encoding", note_oss.str());
181 }
182 } else if ((lasheader->version_major == 1) && (lasheader->version_minor <= 3)) {
183 if (lasheader->global_encoding > 15) {
184 set_oss_content(note_oss, "should be <= 15 for LAS ", static_cast<int>(lasheader->version_major), ".",
185 static_cast<int>(lasheader->version_minor), " but is ", lasheader->global_encoding);
186 results.add_fail("global encoding", note_oss.str());
187 }
188 } else if ((lasheader->version_major == 1) && (lasheader->version_minor <= 4)) {
189 if (lasheader->global_encoding > 31) {
190 set_oss_content(note_oss, "should be <= 31 for LAS ", static_cast<int>(lasheader->version_major), ".",
191 static_cast<int>(lasheader->version_minor), " but is ", lasheader->global_encoding);
192 results.add_fail("global encoding", note_oss.str());
193 }
194 } else if ((lasheader->version_major == 1) && (lasheader->version_minor <= 5)) {
195 if (lasheader->global_encoding > 127) {
196 set_oss_content(note_oss, "should be <= 127 for LAS ", static_cast<int>(lasheader->version_major), ".", static_cast<int>(lasheader->version_minor),
197 " but is ", lasheader->global_encoding);
198 results.add_fail("global encoding", note_oss.str());
199 }
200 }
201
202 if (lasheader->global_encoding & 64) {
203 if ((lasheader->version_major == 1) && (lasheader->version_minor <= 4)) {
204 set_oss_content(note_oss, "bit 6 not defined for LAS 1.", static_cast<int>(lasheader->version_minor));
205 results.add_fail("global encoding", note_oss.str());
206 }
207 }
208
209 if (lasheader->global_encoding & 32) {
210 if ((lasheader->version_major == 1) && (lasheader->version_minor <= 5)) {

Callers

nothing calls this directly

Calls 9

LASMessageFunction · 0.85
set_oss_contentFunction · 0.85
fp_equalFunction · 0.85
compress_indicesFunction · 0.85
add_failMethod · 0.80
add_warningMethod · 0.80
lidardouble2stringFunction · 0.70
activeMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected