Go to the documentation of this file.
229 I32 new_size = bin + 1024;
251 I32 new_size = bin + 1024;
286 I32 new_size = bin + 1024;
311 I32 new_size = bin + 1024;
331 fprintf(
file,
"%s histogram of %s averages with bin size %g\012", name, name_avg, 1.0f/
one_over_step);
333 fprintf(
file,
"%s histogram of averages with bin size %g\012", name, 1.0f/
one_over_step);
344 bin = -(i+1) +
anker;
444 for (i = 1; i <
argc; i++)
446 if (
argv[i][0] ==
'\0')
450 else if (strcmp(
argv[i],
"-h") == 0 || strcmp(
argv[i],
"-help") == 0)
454 else if (strcmp(
argv[i],
"-histo") == 0)
458 fprintf(stderr,
"ERROR: '%s' needs 2 arguments: name step\n",
argv[i]);
464 else if (strcmp(
argv[i],
"-histo_avg") == 0)
468 fprintf(stderr,
"ERROR: '%s' needs 3 arguments: name step name_avg\n",
argv[i]);
480 if (strcmp(name,
"x") == 0)
482 else if (strcmp(name,
"y") == 0)
484 else if (strcmp(name,
"z") == 0)
486 else if (strcmp(name,
"intensity") == 0)
488 else if (strcmp(name,
"classification") == 0)
490 else if (strstr(name,
"scan_angle") != 0)
492 else if (strstr(name,
"point_source") != 0)
494 else if (strstr(name,
"gps_time") != 0)
496 else if (strstr(name,
"wavepacket_index") != 0)
498 else if (strstr(name,
"wavepacket_offset") != 0)
500 else if (strstr(name,
"wavepacket_size") != 0)
502 else if (strstr(name,
"wavepacket_location") != 0)
506 fprintf(stderr,
"ERROR: histogram of '%s' not implemented\n", name);
515 if (strcmp(name,
"classification") == 0)
517 if (strcmp(name_avg,
"intensity") == 0)
519 else if (strstr(name_avg,
"scan_angle") != 0)
523 fprintf(stderr,
"ERROR: histogram of '%s' with '%s' averages not implemented\n", name, name_avg);
527 else if (strcmp(name,
"scan_angle") == 0)
529 if (strcmp(name_avg,
"z") == 0)
531 else if (strcmp(name_avg,
"number_of_returns") == 0)
533 else if (strcmp(name_avg,
"intensity") == 0)
537 fprintf(stderr,
"ERROR: histogram of '%s' with '%s' averages not implemented\n", name, name_avg);
541 else if (strcmp(name,
"return_map") == 0)
543 if (strcmp(name_avg,
"intensity") == 0)
547 fprintf(stderr,
"ERROR: histogram of '%s' with '%s' averages not implemented\n", name, name_avg);
553 fprintf(stderr,
"ERROR: histogram of '%s' not implemented\n", name);
654 pos_y = pos_y -
anker;
718 if ((
U32)pos_y >= *array_size)
720 U32 array_size_new = ((pos_y/1024)+1)*1024;
724 *array = (
U32**)realloc(*array, array_size_new*
sizeof(
U32*));
725 *array_sizes = (
U16*)realloc(*array_sizes, array_size_new*
sizeof(
U16));
730 *array = (
U32**)malloc(array_size_new*
sizeof(
U32*));
731 *array_sizes = (
U16*)malloc(array_size_new*
sizeof(
U16));
733 for (
U32 i = *array_size; i < array_size_new; i++)
736 (*array_sizes)[i] = 0;
738 *array_size = array_size_new;
743 (*ankers)[pos_y] = pos_x;
747 U32 pos_x_pos = pos_x/32;
748 if (pos_x_pos >= (*array_sizes)[pos_y])
750 U32 array_sizes_new = ((pos_x_pos/256)+1)*256;
751 if ((*array_sizes)[pos_y])
753 (*array)[pos_y] = (
U32*)realloc((*array)[pos_y], array_sizes_new*
sizeof(
U32));
757 (*array)[pos_y] = (
U32*)malloc(array_sizes_new*
sizeof(
U32));
759 for (
U16 i = (*array_sizes)[pos_y]; i < array_sizes_new; i++)
761 (*array)[pos_y][i] = 0;
763 (*array_sizes)[pos_y] = array_sizes_new;
765 U32 pos_x_bit = 1 << (pos_x%32);
766 if ((*array)[pos_y][pos_x_pos] & pos_x_bit)
return FALSE;
767 (*array)[pos_y][pos_x_pos] |= pos_x_bit;
785 pos_y = pos_y -
anker;
788 const U32*
const * array;
789 const U16* array_sizes;
842 if ((
U32)pos_y >= array_size)
847 U32 pos_x_pos = pos_x/32;
848 if (pos_x_pos >= array_sizes[pos_y])
852 U32 pos_x_bit = 1 << (pos_x%32);
853 if (array[pos_y][pos_x_pos] & pos_x_bit)
return TRUE;
912 FILE*
file = fopen(file_name,
"w");
919 fprintf(
file,
"NODATA_value %d\012", 0);
920 fprintf(
file,
"\012");
935 fprintf(
file,
"\012");
U32 number_of_returns_of_given_pulse[8]
LASbin * classification_bin_intensity
LASbin * scan_angle_bin_z
void setOffset(U64 offset)
LASbin * return_map_bin_intensity
LASbin * scan_angle_bin_intensity
BOOL occupied(const LASpoint *point) const
BOOL write_asc_grid(const char *file_name) const
BOOL add(const LASpoint *point)
LASbin * point_source_id_bin
U32 number_of_point_records
LASbin * wavepacket_index_bin
BOOL histo(const char *name, F32 step)
LASbin * wavepacket_offset_bin
LASbin * classification_bin_scan_angle
BOOL histo_avg(const char *name, F32 step, const char *name_avg)
void add(const LASpoint *point)
BOOL add_internal(I32 pos_x, I32 pos_y)
U32 classification_keypoint
U32 classification_withheld
void report(FILE *file, const char *name=0, const char *name_avg=0) const
LASbin * wavepacket_size_bin
void setLocation(F32 location)
LASbin * wavepacket_location_bin
LASoccupancyGrid(F32 grid_spacing)
BOOL add(const LASpoint *point)
U8 number_of_returns_of_given_pulse
LASbin * scan_angle_bin_number_of_returns
U32 classification_synthetic
U32 number_of_point_records
BOOL add(const LASpoint *point)
void report(FILE *file) const
U32 number_of_points_by_return[8]
BOOL parse(int argc, char *argv[])
LASbin * classification_bin
U32 number_of_points_by_return[8]
lvr2
Author(s): Thomas Wiemann
, Sebastian Pütz , Alexander Mock , Lars Kiesow , Lukas Kalbertodt , Tristan Igelbrink , Johan M. von Behren , Dominik Feldschnieders , Alexander Löhr
autogenerated on Wed Mar 2 2022 00:37:23