Skip to content

Commit

Permalink
Merge pull request LAStools#178 from ottointhesky/lasmessage_concept
Browse files Browse the repository at this point in the history
LASMessage introduced to laszip
  • Loading branch information
BB-Heidelberg committed Feb 29, 2024
2 parents 67f4756 + e5cfaa3 commit 09735a0
Show file tree
Hide file tree
Showing 21 changed files with 138 additions and 257 deletions.
4 changes: 2 additions & 2 deletions LASlib/LASlib.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\LASzip\src\lascopc.cpp" />
<ClCompile Include="..\LASzip\src\lasmessage.cpp" />
<ClCompile Include="src\fopen_compressed.cpp" />
<ClCompile Include="src\lasfilter.cpp" />
<ClCompile Include="src\lasignore.cpp" />
<ClCompile Include="src\laskdtree.cpp" />
<ClCompile Include="src\lasmessage.cpp" />
<ClCompile Include="src\lasreader.cpp" />
<ClCompile Include="src\lasreaderbuffered.cpp" />
<ClCompile Include="src\lasreadermerged.cpp" />
Expand Down Expand Up @@ -58,11 +58,11 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\LASzip\src\lascopc.hpp" />
<ClInclude Include="..\LASzip\src\lasmessage.hpp" />
<ClInclude Include="inc\lasdefinitions.hpp" />
<ClInclude Include="inc\lasfilter.hpp" />
<ClInclude Include="inc\lasignore.hpp" />
<ClInclude Include="inc\laskdtree.hpp" />
<ClInclude Include="inc\lasmessage.hpp" />
<ClInclude Include="inc\lasreader.hpp" />
<ClInclude Include="inc\lasreaderbuffered.hpp" />
<ClInclude Include="inc\lasreadermerged.hpp" />
Expand Down
2 changes: 1 addition & 1 deletion LASlib/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ set(LAS_SRC
lastransform.cpp
laskdtree.cpp
fopen_compressed.cpp
lasmessage.cpp
)

set(LAZ_SRC
Expand All @@ -57,6 +56,7 @@ set(LAZ_SRC
lasinterval.cpp
laszip.cpp
mydefs.cpp
lasmessage.cpp
)

foreach(file ${LAZ_SRC})
Expand Down
1 change: 1 addition & 0 deletions LASzip/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ set(LASZIP_SOURCES
laszip.cpp
laszip_dll.cpp
mydefs.cpp
lasmessage.cpp
)

add_definitions(-DLASZIPDLL_EXPORTS)
Expand Down
77 changes: 9 additions & 68 deletions LASzip/src/demzip_dll.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
#include "lasreadpoint.hpp"
#include "lasquadtree.hpp"
#include "lasindex.hpp"
#include "lasmessage.hpp"

class demzip_dll_inventory
{
Expand Down Expand Up @@ -1831,11 +1832,7 @@ demzip_prepare_header_for_write(
{
if (demzip_dll->header.number_of_point_records != 0)
{
#ifdef _WIN32
sprintf(demzip_dll->error, "inconsistent number_of_point_records %u and extended_number_of_point_records %I64d", demzip_dll->header.number_of_point_records, demzip_dll->header.extended_number_of_point_records);
#else
sprintf(demzip_dll->error, "inconsistent number_of_point_records %u and extended_number_of_point_records %llu", demzip_dll->header.number_of_point_records, demzip_dll->header.extended_number_of_point_records);
#endif
return 1;
}
else if (demzip_dll->header.extended_number_of_point_records <= U32_MAX)
Expand All @@ -1849,11 +1846,7 @@ demzip_prepare_header_for_write(
{
if (demzip_dll->header.number_of_points_by_return[i] != 0)
{
#ifdef _WIN32
sprintf(demzip_dll->error, "inconsistent number_of_points_by_return[%u] %u and extended_number_of_points_by_return[%u] %I64d", i, demzip_dll->header.number_of_points_by_return[i], i, demzip_dll->header.extended_number_of_points_by_return[i]);
#else
sprintf(demzip_dll->error, "inconsistent number_of_points_by_return[%u] %u and extended_number_of_points_by_return[%u] %llu", i, demzip_dll->header.number_of_points_by_return[i], i, demzip_dll->header.extended_number_of_points_by_return[i]);
#endif
return 1;
}
else if (demzip_dll->header.extended_number_of_points_by_return[i] <= U32_MAX)
Expand Down Expand Up @@ -1898,11 +1891,7 @@ demzip_prepare_point_for_write(

if (demzip_dll->header.extended_number_of_point_records > U32_MAX)
{
#ifdef _WIN32
sprintf(demzip_dll->error, "extended_number_of_point_records of %I64d is too much for 32-bit counters of compatibility mode", demzip_dll->header.extended_number_of_point_records);
#else
sprintf(demzip_dll->error, "extended_number_of_point_records of %llu is too much for 32-bit counters of compatibility mode", demzip_dll->header.extended_number_of_point_records);
#endif
return 1;
}

Expand Down Expand Up @@ -1986,29 +1975,21 @@ demzip_prepare_point_for_write(
U64 start_of_waveform_data_packet_record = demzip_dll->header.start_of_waveform_data_packet_record;
if (start_of_waveform_data_packet_record != 0)
{
#ifdef _WIN32
fprintf(stderr,"WARNING: header->start_of_waveform_data_packet_record is %I64d. writing 0 instead.\n", start_of_waveform_data_packet_record);
#else
fprintf(stderr,"WARNING: header->start_of_waveform_data_packet_record is %llu. writing 0 instead.\n", start_of_waveform_data_packet_record);
#endif
LASMessage(LAS_WARNING, "header->start_of_waveform_data_packet_record is %llu. writing 0 instead.", start_of_waveform_data_packet_record);
start_of_waveform_data_packet_record = 0;
}
out->put64bitsLE((U8*)&start_of_waveform_data_packet_record);
U64 start_of_first_extended_variable_length_record = demzip_dll->header.start_of_first_extended_variable_length_record;
if (start_of_first_extended_variable_length_record != 0)
{
#ifdef _WIN32
fprintf(stderr,"WARNING: EVLRs not supported. header->start_of_first_extended_variable_length_record is %I64d. writing 0 instead.\n", start_of_first_extended_variable_length_record);
#else
fprintf(stderr,"WARNING: EVLRs not supported. header->start_of_first_extended_variable_length_record is %llu. writing 0 instead.\n", start_of_first_extended_variable_length_record);
#endif
LASMessage(LAS_WARNING, "EVLRs not supported. header->start_of_first_extended_variable_length_record is %llu. writing 0 instead.", start_of_first_extended_variable_length_record);
start_of_first_extended_variable_length_record = 0;
}
out->put64bitsLE((U8*)&start_of_first_extended_variable_length_record);
U32 number_of_extended_variable_length_records = demzip_dll->header.number_of_extended_variable_length_records;
if (number_of_extended_variable_length_records != 0)
{
fprintf(stderr,"WARNING: EVLRs not supported. header->number_of_extended_variable_length_records is %u. writing 0 instead.\n", number_of_extended_variable_length_records);
LASMessage(LAS_WARNING, "EVLRs not supported. header->number_of_extended_variable_length_records is %u. writing 0 instead.", number_of_extended_variable_length_records);
number_of_extended_variable_length_records = 0;
}
out->put32bitsLE((U8*)&number_of_extended_variable_length_records);
Expand Down Expand Up @@ -2571,11 +2552,7 @@ demzip_write_header(
{
if (demzip_dll->header.start_of_waveform_data_packet_record != 0)
{
#ifdef _WIN32
sprintf(demzip_dll->warning, "header.start_of_waveform_data_packet_record is %I64d. writing 0 instead.", demzip_dll->header.start_of_waveform_data_packet_record);
#else
sprintf(demzip_dll->warning, "header.start_of_waveform_data_packet_record is %llu. writing 0 instead.", demzip_dll->header.start_of_waveform_data_packet_record);
#endif
demzip_dll->header.start_of_waveform_data_packet_record = 0;
}
try { demzip_dll->streamout->put64bitsLE((const U8*)&(demzip_dll->header.start_of_waveform_data_packet_record)); } catch(...)
Expand Down Expand Up @@ -3111,11 +3088,7 @@ demzip_write_point(
// write the point
if (!demzip_dll->writer->write(demzip_dll->point_items))
{
#ifdef _WIN32
sprintf(demzip_dll->error, "writing point %I64d of %I64d total points", demzip_dll->p_count, demzip_dll->npoints);
#else
sprintf(demzip_dll->error, "writing point %lld of %lld total points", demzip_dll->p_count, demzip_dll->npoints);
#endif
return 1;
}

Expand Down Expand Up @@ -3145,11 +3118,7 @@ demzip_write_indexed_point(
// write the point
if (!demzip_dll->writer->write(demzip_dll->point_items))
{
#ifdef _WIN32
sprintf(demzip_dll->error, "writing point %I64d of %I64d total points", demzip_dll->p_count, demzip_dll->npoints);
#else
sprintf(demzip_dll->error, "writing point %lld of %lld total points", demzip_dll->p_count, demzip_dll->npoints);
#endif
return 1;
}
// index the point
Expand Down Expand Up @@ -4077,40 +4046,28 @@ demzip_read_header(
in->get64bitsLE((U8*)&start_of_waveform_data_packet_record);
if (start_of_waveform_data_packet_record != 0)
{
#ifdef _WIN32
fprintf(stderr,"WARNING: start_of_waveform_data_packet_record is %I64d. reading 0 instead.\n", start_of_waveform_data_packet_record);
#else
fprintf(stderr,"WARNING: start_of_waveform_data_packet_record is %llu. reading 0 instead.\n", start_of_waveform_data_packet_record);
#endif
LASMessage(LAS_WARNING, "start_of_waveform_data_packet_record is %llu. reading 0 instead.", start_of_waveform_data_packet_record);
}
demzip_dll->header.start_of_waveform_data_packet_record = 0;
U64 start_of_first_extended_variable_length_record;
in->get64bitsLE((U8*)&start_of_first_extended_variable_length_record);
if (start_of_first_extended_variable_length_record != 0)
{
#ifdef _WIN32
fprintf(stderr,"WARNING: EVLRs not supported. start_of_first_extended_variable_length_record is %I64d. reading 0 instead.\n", start_of_first_extended_variable_length_record);
#else
fprintf(stderr,"WARNING: EVLRs not supported. start_of_first_extended_variable_length_record is %llu. reading 0 instead.\n", start_of_first_extended_variable_length_record);
#endif
LASMessage(LAS_WARNING, "EVLRs not supported. start_of_first_extended_variable_length_record is %llu. reading 0 instead.", start_of_first_extended_variable_length_record);
}
demzip_dll->header.start_of_first_extended_variable_length_record = 0;
U32 number_of_extended_variable_length_records ;
in->get32bitsLE((U8*)&number_of_extended_variable_length_records);
if (number_of_extended_variable_length_records != 0)
{
fprintf(stderr,"WARNING: EVLRs not supported. number_of_extended_variable_length_records is %u. reading 0 instead.\n", number_of_extended_variable_length_records);
LASMessage(LAS_WARNING, "EVLRs not supported. number_of_extended_variable_length_records is %u. reading 0 instead.", number_of_extended_variable_length_records);
}
demzip_dll->header.number_of_extended_variable_length_records = 0;
U64 extended_number_of_point_records = 0;
in->get64bitsLE((U8*)&extended_number_of_point_records);
if (demzip_dll->header.number_of_point_records != 0 && ((U64)(demzip_dll->header.number_of_point_records)) != extended_number_of_point_records)
{
#ifdef _WIN32
fprintf(stderr,"WARNING: number_of_point_records is %u. but extended_number_of_point_records is %I64u.\n", demzip_dll->header.number_of_point_records, extended_number_of_point_records);
#else
fprintf(stderr,"WARNING: number_of_point_records is %u. but extended_number_of_point_records is %llu.\n", demzip_dll->header.number_of_point_records, extended_number_of_point_records);
#endif
LASMessage(LAS_WARNING, "number_of_point_records is %u. but extended_number_of_point_records is %llu.", demzip_dll->header.number_of_point_records, extended_number_of_point_records);
}
demzip_dll->header.extended_number_of_point_records = extended_number_of_point_records;
U64 extended_number_of_points_by_return;
Expand All @@ -4119,11 +4076,7 @@ demzip_read_header(
in->get64bitsLE((U8*)&extended_number_of_points_by_return);
if ((r < 5) && demzip_dll->header.number_of_points_by_return[r] != 0 && ((U64)(demzip_dll->header.number_of_points_by_return[r])) != extended_number_of_points_by_return)
{
#ifdef _WIN32
fprintf(stderr,"WARNING: number_of_points_by_return[%u] is %u. but extended_number_of_points_by_return[%u] is %I64u.\n", r, demzip_dll->header.number_of_points_by_return[r], r, extended_number_of_points_by_return);
#else
fprintf(stderr,"WARNING: number_of_points_by_return[%u] is %u. but extended_number_of_points_by_return[%u] is %llu.\n", r, demzip_dll->header.number_of_points_by_return[r], r, extended_number_of_points_by_return);
#endif
LASMessage(LAS_WARNING, "number_of_points_by_return[%u] is %u. but extended_number_of_points_by_return[%u] is %llu.", r, demzip_dll->header.number_of_points_by_return[r], r, extended_number_of_points_by_return);
}
demzip_dll->header.extended_number_of_points_by_return[r] = extended_number_of_points_by_return;
}
Expand Down Expand Up @@ -4517,11 +4470,7 @@ demzip_seek_point(
// seek to the point
if (!demzip_dll->reader->seek((U32)demzip_dll->p_count, (U32)index))
{
#ifdef _WIN32
sprintf(demzip_dll->error, "seeking from index %I64d to index %I64d for file with %I64d points", demzip_dll->p_count, index, demzip_dll->npoints);
#else
sprintf(demzip_dll->error, "seeking from index %lld to index %lld for file with %lld points", demzip_dll->p_count, index, demzip_dll->npoints);
#endif
return 1;
}
demzip_dll->p_count = index;
Expand Down Expand Up @@ -4550,11 +4499,7 @@ demzip_read_point(
// read the point
if (!demzip_dll->reader->read(demzip_dll->point_items))
{
#ifdef _WIN32
sprintf(demzip_dll->error, "reading point %I64d of %I64d total points", demzip_dll->p_count, demzip_dll->npoints);
#else
sprintf(demzip_dll->error, "reading point %lld of %lld total points", demzip_dll->p_count, demzip_dll->npoints);
#endif
return 1;
}

Expand Down Expand Up @@ -4660,11 +4605,7 @@ demzip_read_inside_point(
{
if (demzip_dll->p_count < demzip_dll->npoints)
{
#ifdef _WIN32
sprintf(demzip_dll->error, "reading point %I64d of %I64d total points", demzip_dll->p_count, demzip_dll->npoints);
#else
sprintf(demzip_dll->error, "reading point %lld of %lld total points", demzip_dll->p_count, demzip_dll->npoints);
#endif
return 1;
}
}
Expand Down
5 changes: 3 additions & 2 deletions LASzip/src/integercompressor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
===============================================================================
*/
#include "integercompressor.hpp"
#include "lasmessage.hpp"

#define COMPRESS_ONLY_K
#undef COMPRESS_ONLY_K
Expand Down Expand Up @@ -205,12 +206,12 @@ IntegerCompressor::~IntegerCompressor()
entropy -= log(prob)*prob/log(2.0);
}
}
fprintf(stderr, "k: %d number: %d different: %d entropy: %lg raw: %1.1f\n",k,number,different,entropy, (float)(k?k:1));
LASMessage(LAS_INFO, "k: %d number: %d different: %d entropy: %lg raw: %1.1f",k,number,different,entropy, (float)(k?k:1));
total_number += number;
total_entropy += (entropy*number);
total_raw += ((k?k:1)*number);
}
fprintf(stderr, "TOTAL: number: %d entropy: %lg raw: %lg\n",total_number,total_entropy/total_number,total_raw/total_number);
LASMessage(LAS_INFO, "TOTAL: number: %d entropy: %lg raw: %lg",total_number,total_entropy/total_number,total_raw/total_number);
}
#endif
}
Expand Down
3 changes: 2 additions & 1 deletion LASzip/src/lascopc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
#else
#include "lasreader.hpp"
#endif
#include "lasmessage.hpp"

#include <deque>
#include <cmath>
Expand Down Expand Up @@ -225,7 +226,7 @@ BOOL EPToctree::set_vlr_entries(const U8* data, const U64 offset_to_first_copc_e

if (sum != header.extended_number_of_point_records)
{
fprintf(stderr, "WARNING: COPC EPT hierarchy EVLR number of point does not match with the header.\n");
LASMessage(LAS_WARNING, "COPC EPT hierarchy EVLR number of point does not match with the header.");
return FALSE;
}

Expand Down
Loading

0 comments on commit 09735a0

Please sign in to comment.