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

Method add_to_bin

LASlib/src/lasutility.cpp:494–568  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

492}
493
494void LASbin::add_to_bin(I32 bin)
495{
496#pragma warning(push)
497#pragma warning(disable : 6011)
498 if (first)
499 {
500 anker = bin;
501 first = FALSE;
502 }
503 bin = bin - anker;
504 if (bin >= 0)
505 {
506 if (bin >= size_pos)
507 {
508 I32 i;
509 if (size_pos == 0)
510 {
511 size_pos = bin + 1024;
512 bins_pos = (U32*)malloc_las(sizeof(U32) * size_pos);
513 if (bins_pos == 0)
514 {
515 laserror("allocating %u pos bins", size_pos);
516 byebye();
517 }
518 for (i = 0; i < size_pos; i++) bins_pos[i] = 0;
519 }
520 else
521 {
522 I32 new_size = bin + 1024;
523 bins_pos = (U32*)realloc_las(bins_pos, sizeof(U32)*new_size);
524 if (bins_pos == 0)
525 {
526 laserror("reallocating %u pos bins", new_size);
527 byebye();
528 }
529 for (i = size_pos; i < new_size; i++) bins_pos[i] = 0;
530 size_pos = new_size;
531 }
532 }
533 bins_pos[bin]++;
534 }
535 else
536 {
537 bin = -(bin+1);
538 if (bin >= size_neg)
539 {
540 I32 i;
541 if (size_neg == 0)
542 {
543 size_neg = bin + 1024;
544 bins_neg = (U32*)malloc_las(sizeof(U32) * size_neg);
545 if (bins_neg == 0)
546 {
547 laserror("allocating %u neg bins", size_neg);
548 byebye();
549 }
550 for (i = 0; i < size_neg; i++) bins_neg[i] = 0;
551 }

Callers

nothing calls this directly

Calls 4

malloc_lasFunction · 0.85
laserrorFunction · 0.85
realloc_lasFunction · 0.85
byebyeFunction · 0.50

Tested by

no test coverage detected