Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
LASquadtree Class Reference

#include <lasquadtree.hpp>

Inheritance diagram for LASquadtree:
Inheritance graph
[legend]

Public Member Functions

BOOL coarsen (const I32 cell_index, I32 *coarser_cell_index, U32 *num_cell_indices, I32 **cell_indices) const
 
BOOL get_all_cells ()
 
void get_cell_bounding_box (const I32 cell_index, F32 *min, F32 *max) const
 
void get_cell_bounding_box (const F64 x, const F64 y, F32 *min, F32 *max) const
 
void get_cell_bounding_box (const F64 x, const F64 y, U32 level, F32 *min, F32 *max) const
 
void get_cell_bounding_box (U32 level_index, U32 level, F32 *min, F32 *max) const
 
void get_cell_bounding_box (U32 level_index, F32 *min, F32 *max) const
 
U32 get_cell_index (const F64 x, const F64 y) const
 
U32 get_cell_index (const F64 x, const F64 y, U32 level) const
 
U32 get_cell_index (U32 level_index, U32 level) const
 
U32 get_cell_index (U32 level_index) const
 
BOOL get_intersected_cells ()
 
U32 get_level (U32 cell_index) const
 
U32 get_level_index (const F64 x, const F64 y, U32 level) const
 
U32 get_level_index (const F64 x, const F64 y) const
 
U32 get_level_index (const F64 x, const F64 y, U32 level, F32 *min, F32 *max) const
 
U32 get_level_index (const F64 x, const F64 y, F32 *min, F32 *max) const
 
U32 get_level_index (U32 cell_index, U32 level) const
 
U32 get_level_index (U32 cell_index) const
 
U32 get_max_cell_index (U32 level) const
 
U32 get_max_cell_index () const
 
U32 get_max_level_index (U32 level) const
 
U32 get_max_level_index () const
 
F64 get_max_x () const
 
F64 get_max_y () const
 
F64 get_min_x () const
 
F64 get_min_y () const
 
BOOL has_more_cells ()
 
BOOL inside (const F64 x, const F64 y) const
 
U32 intersect_circle (const F64 center_x, const F64 center_y, const F64 radius)
 
U32 intersect_circle (const F64 center_x, const F64 center_y, const F64 radius, U32 level)
 
U32 intersect_rectangle (const F64 r_min_x, const F64 r_min_y, const F64 r_max_x, const F64 r_max_y)
 
U32 intersect_rectangle (const F64 r_min_x, const F64 r_min_y, const F64 r_max_x, const F64 r_max_y, U32 level)
 
U32 intersect_tile (const F32 ll_x, const F32 ll_y, const F32 size)
 
U32 intersect_tile (const F32 ll_x, const F32 ll_y, const F32 size, U32 level)
 
 LASquadtree ()
 
BOOL manage_cell (const U32 cell_index, const BOOL finalize=FALSE)
 
U32raster_occupancy (BOOL(*does_cell_exist)(I32), U32 level) const
 
U32raster_occupancy (BOOL(*does_cell_exist)(I32)) const
 
BOOL read (ByteStreamIn *stream)
 
BOOL setup (F64 bb_min_x, F64 bb_max_x, F64 bb_min_y, F64 bb_max_y, F32 cell_size=1000.0f)
 
BOOL subtiling_setup (F32 min_x, F32 max_x, F32 min_y, F32 max_y, U32 sub_level, U32 sub_level_index, U32 levels)
 
BOOL write (ByteStreamOut *stream) const
 
 ~LASquadtree ()
 
- Public Member Functions inherited from LASspatial
virtual ~LASspatial ()
 

Public Attributes

F32 cell_size
 
U32 cells_x
 
U32 cells_y
 
U32 levels
 
F32 max_x
 
F32 max_y
 
F32 min_x
 
F32 min_y
 
- Public Attributes inherited from LASspatial
I32 current_cell
 

Private Member Functions

void intersect_circle_with_cells (const F64 center_x, const F64 center_y, const F64 radius, const F64 r_min_x, const F64 r_min_y, const F64 r_max_x, const F64 r_max_y, const F32 cell_min_x, const F32 cell_max_x, const F32 cell_min_y, const F32 cell_max_y, U32 level, U32 level_index)
 
void intersect_circle_with_cells_adaptive (const F64 center_x, const F64 center_y, const F64 radius, const F64 r_min_x, const F64 r_min_y, const F64 r_max_x, const F64 r_max_y, const F32 cell_min_x, const F32 cell_max_x, const F32 cell_min_y, const F32 cell_max_y, U32 level, U32 level_index)
 
BOOL intersect_circle_with_rectangle (const F64 center_x, const F64 center_y, const F64 radius, const F32 r_min_x, const F32 r_max_x, const F32 r_min_y, const F32 r_max_y)
 
void intersect_rectangle_with_cells (const F64 r_min_x, const F64 r_min_y, const F64 r_max_x, const F64 r_max_y, const F32 cell_min_x, const F32 cell_max_x, const F32 cell_min_y, const F32 cell_max_y, U32 level, U32 level_index)
 
void intersect_rectangle_with_cells_adaptive (const F64 r_min_x, const F64 r_min_y, const F64 r_max_x, const F64 r_max_y, const F32 cell_min_x, const F32 cell_max_x, const F32 cell_min_y, const F32 cell_max_y, U32 level, U32 level_index)
 
void intersect_tile_with_cells (const F32 ll_x, const F32 ll_y, const F32 ur_x, const F32 ur_y, const F32 cell_min_x, const F32 cell_max_x, const F32 cell_min_y, const F32 cell_max_y, U32 level, U32 level_index)
 
void intersect_tile_with_cells_adaptive (const F32 ll_x, const F32 ll_y, const F32 ur_x, const F32 ur_y, const F32 cell_min_x, const F32 cell_max_x, const F32 cell_min_y, const F32 cell_max_y, U32 level, U32 level_index)
 
void raster_occupancy (BOOL(*does_cell_exist)(I32), U32 *data, U32 min_x, U32 min_y, U32 level_index, U32 level, U32 stop_level) const
 

Private Attributes

U32adaptive
 
U32 adaptive_alloc
 
U32 coarser_indices [4]
 
void * current_cells
 
U32 level_offset [24]
 
U32 next_cell_index
 
U32 sub_level
 
U32 sub_level_index
 

Detailed Description

Definition at line 39 of file lasquadtree.hpp.

Constructor & Destructor Documentation

◆ LASquadtree()

LASquadtree::LASquadtree ( )

Definition at line 1499 of file lasquadtree.cpp.

◆ ~LASquadtree()

LASquadtree::~LASquadtree ( )

Definition at line 1521 of file lasquadtree.cpp.

Member Function Documentation

◆ coarsen()

BOOL LASquadtree::coarsen ( const I32  cell_index,
I32 coarser_cell_index,
U32 num_cell_indices,
I32 **  cell_indices 
) const
virtual

Implements LASspatial.

Definition at line 349 of file lasquadtree.cpp.

◆ get_all_cells()

BOOL LASquadtree::get_all_cells ( )
virtual

Implements LASspatial.

Definition at line 1387 of file lasquadtree.cpp.

◆ get_cell_bounding_box() [1/5]

void LASquadtree::get_cell_bounding_box ( const I32  cell_index,
F32 min,
F32 max 
) const
virtual

Implements LASspatial.

Definition at line 209 of file lasquadtree.cpp.

◆ get_cell_bounding_box() [2/5]

void LASquadtree::get_cell_bounding_box ( const F64  x,
const F64  y,
F32 min,
F32 max 
) const
virtual

Implements LASspatial.

Definition at line 148 of file lasquadtree.cpp.

◆ get_cell_bounding_box() [3/5]

void LASquadtree::get_cell_bounding_box ( const F64  x,
const F64  y,
U32  level,
F32 min,
F32 max 
) const

Definition at line 101 of file lasquadtree.cpp.

◆ get_cell_bounding_box() [4/5]

void LASquadtree::get_cell_bounding_box ( U32  level_index,
U32  level,
F32 min,
F32 max 
) const

Definition at line 154 of file lasquadtree.cpp.

◆ get_cell_bounding_box() [5/5]

void LASquadtree::get_cell_bounding_box ( U32  level_index,
F32 min,
F32 max 
) const

Definition at line 203 of file lasquadtree.cpp.

◆ get_cell_index() [1/4]

U32 LASquadtree::get_cell_index ( const F64  x,
const F64  y 
) const
virtual

Implements LASspatial.

Definition at line 343 of file lasquadtree.cpp.

◆ get_cell_index() [2/4]

U32 LASquadtree::get_cell_index ( const F64  x,
const F64  y,
U32  level 
) const

Definition at line 330 of file lasquadtree.cpp.

◆ get_cell_index() [3/4]

U32 LASquadtree::get_cell_index ( U32  level_index,
U32  level 
) const

Definition at line 398 of file lasquadtree.cpp.

◆ get_cell_index() [4/4]

U32 LASquadtree::get_cell_index ( U32  level_index) const

Definition at line 411 of file lasquadtree.cpp.

◆ get_intersected_cells()

BOOL LASquadtree::get_intersected_cells ( )
virtual

Implements LASspatial.

Definition at line 1393 of file lasquadtree.cpp.

◆ get_level()

U32 LASquadtree::get_level ( U32  cell_index) const

Definition at line 390 of file lasquadtree.cpp.

◆ get_level_index() [1/6]

U32 LASquadtree::get_level_index ( const F64  x,
const F64  y,
U32  level 
) const

Definition at line 217 of file lasquadtree.cpp.

◆ get_level_index() [2/6]

U32 LASquadtree::get_level_index ( const F64  x,
const F64  y 
) const

Definition at line 263 of file lasquadtree.cpp.

◆ get_level_index() [3/6]

U32 LASquadtree::get_level_index ( const F64  x,
const F64  y,
U32  level,
F32 min,
F32 max 
) const

Definition at line 269 of file lasquadtree.cpp.

◆ get_level_index() [4/6]

U32 LASquadtree::get_level_index ( const F64  x,
const F64  y,
F32 min,
F32 max 
) const

Definition at line 324 of file lasquadtree.cpp.

◆ get_level_index() [5/6]

U32 LASquadtree::get_level_index ( U32  cell_index,
U32  level 
) const

Definition at line 371 of file lasquadtree.cpp.

◆ get_level_index() [6/6]

U32 LASquadtree::get_level_index ( U32  cell_index) const

Definition at line 384 of file lasquadtree.cpp.

◆ get_max_cell_index() [1/2]

U32 LASquadtree::get_max_cell_index ( U32  level) const

Definition at line 429 of file lasquadtree.cpp.

◆ get_max_cell_index() [2/2]

U32 LASquadtree::get_max_cell_index ( ) const

Definition at line 435 of file lasquadtree.cpp.

◆ get_max_level_index() [1/2]

U32 LASquadtree::get_max_level_index ( U32  level) const

Definition at line 417 of file lasquadtree.cpp.

◆ get_max_level_index() [2/2]

U32 LASquadtree::get_max_level_index ( ) const

Definition at line 423 of file lasquadtree.cpp.

◆ get_max_x()

F64 LASquadtree::get_max_x ( ) const
inlinevirtual

Implements LASspatial.

Definition at line 66 of file lasquadtree.hpp.

◆ get_max_y()

F64 LASquadtree::get_max_y ( ) const
inlinevirtual

Implements LASspatial.

Definition at line 67 of file lasquadtree.hpp.

◆ get_min_x()

F64 LASquadtree::get_min_x ( ) const
inlinevirtual

Implements LASspatial.

Definition at line 64 of file lasquadtree.hpp.

◆ get_min_y()

F64 LASquadtree::get_min_y ( ) const
inlinevirtual

Implements LASspatial.

Definition at line 65 of file lasquadtree.hpp.

◆ has_more_cells()

BOOL LASquadtree::has_more_cells ( )
virtual

Implements LASspatial.

Definition at line 1407 of file lasquadtree.cpp.

◆ inside()

BOOL LASquadtree::inside ( const F64  x,
const F64  y 
) const
virtual

Implements LASspatial.

Definition at line 696 of file lasquadtree.cpp.

◆ intersect_circle() [1/2]

U32 LASquadtree::intersect_circle ( const F64  center_x,
const F64  center_y,
const F64  radius 
)
virtual

Implements LASspatial.

Definition at line 810 of file lasquadtree.cpp.

◆ intersect_circle() [2/2]

U32 LASquadtree::intersect_circle ( const F64  center_x,
const F64  center_y,
const F64  radius,
U32  level 
)

Definition at line 777 of file lasquadtree.cpp.

◆ intersect_circle_with_cells()

void LASquadtree::intersect_circle_with_cells ( const F64  center_x,
const F64  center_y,
const F64  radius,
const F64  r_min_x,
const F64  r_min_y,
const F64  r_max_x,
const F64  r_max_y,
const F32  cell_min_x,
const F32  cell_max_x,
const F32  cell_min_y,
const F32  cell_max_y,
U32  level,
U32  level_index 
)
private

Definition at line 1153 of file lasquadtree.cpp.

◆ intersect_circle_with_cells_adaptive()

void LASquadtree::intersect_circle_with_cells_adaptive ( const F64  center_x,
const F64  center_y,
const F64  radius,
const F64  r_min_x,
const F64  r_min_y,
const F64  r_max_x,
const F64  r_max_y,
const F32  cell_min_x,
const F32  cell_max_x,
const F32  cell_min_y,
const F32  cell_max_y,
U32  level,
U32  level_index 
)
private

Definition at line 1239 of file lasquadtree.cpp.

◆ intersect_circle_with_rectangle()

BOOL LASquadtree::intersect_circle_with_rectangle ( const F64  center_x,
const F64  center_y,
const F64  radius,
const F32  r_min_x,
const F32  r_max_x,
const F32  r_min_y,
const F32  r_max_y 
)
private

Definition at line 1328 of file lasquadtree.cpp.

◆ intersect_rectangle() [1/2]

U32 LASquadtree::intersect_rectangle ( const F64  r_min_x,
const F64  r_min_y,
const F64  r_max_x,
const F64  r_max_y 
)
virtual

Implements LASspatial.

Definition at line 736 of file lasquadtree.cpp.

◆ intersect_rectangle() [2/2]

U32 LASquadtree::intersect_rectangle ( const F64  r_min_x,
const F64  r_min_y,
const F64  r_max_x,
const F64  r_max_y,
U32  level 
)

Definition at line 708 of file lasquadtree.cpp.

◆ intersect_rectangle_with_cells()

void LASquadtree::intersect_rectangle_with_cells ( const F64  r_min_x,
const F64  r_min_y,
const F64  r_max_x,
const F64  r_max_y,
const F32  cell_min_x,
const F32  cell_max_x,
const F32  cell_min_y,
const F32  cell_max_y,
U32  level,
U32  level_index 
)
private

Definition at line 815 of file lasquadtree.cpp.

◆ intersect_rectangle_with_cells_adaptive()

void LASquadtree::intersect_rectangle_with_cells_adaptive ( const F64  r_min_x,
const F64  r_min_y,
const F64  r_max_x,
const F64  r_max_y,
const F32  cell_min_x,
const F32  cell_max_x,
const F32  cell_min_y,
const F32  cell_max_y,
U32  level,
U32  level_index 
)
private

Definition at line 898 of file lasquadtree.cpp.

◆ intersect_tile() [1/2]

U32 LASquadtree::intersect_tile ( const F32  ll_x,
const F32  ll_y,
const F32  size 
)
virtual

Implements LASspatial.

Definition at line 772 of file lasquadtree.cpp.

◆ intersect_tile() [2/2]

U32 LASquadtree::intersect_tile ( const F32  ll_x,
const F32  ll_y,
const F32  size,
U32  level 
)

Definition at line 741 of file lasquadtree.cpp.

◆ intersect_tile_with_cells()

void LASquadtree::intersect_tile_with_cells ( const F32  ll_x,
const F32  ll_y,
const F32  ur_x,
const F32  ur_y,
const F32  cell_min_x,
const F32  cell_max_x,
const F32  cell_min_y,
const F32  cell_max_y,
U32  level,
U32  level_index 
)
private

Definition at line 984 of file lasquadtree.cpp.

◆ intersect_tile_with_cells_adaptive()

void LASquadtree::intersect_tile_with_cells_adaptive ( const F32  ll_x,
const F32  ll_y,
const F32  ur_x,
const F32  ur_y,
const F32  cell_min_x,
const F32  cell_max_x,
const F32  cell_min_y,
const F32  cell_max_y,
U32  level,
U32  level_index 
)
private

Definition at line 1067 of file lasquadtree.cpp.

◆ manage_cell()

BOOL LASquadtree::manage_cell ( const U32  cell_index,
const BOOL  finalize = FALSE 
)
virtual

Implements LASspatial.

Definition at line 659 of file lasquadtree.cpp.

◆ raster_occupancy() [1/3]

U32 * LASquadtree::raster_occupancy ( BOOL(*)(I32 does_cell_exist,
U32  level 
) const

Definition at line 498 of file lasquadtree.cpp.

◆ raster_occupancy() [2/3]

U32 * LASquadtree::raster_occupancy ( BOOL(*)(I32 does_cell_exist) const

Definition at line 512 of file lasquadtree.cpp.

◆ raster_occupancy() [3/3]

void LASquadtree::raster_occupancy ( BOOL(*)(I32 does_cell_exist,
U32 data,
U32  min_x,
U32  min_y,
U32  level_index,
U32  level,
U32  stop_level 
) const
private

Definition at line 441 of file lasquadtree.cpp.

◆ read()

BOOL LASquadtree::read ( ByteStreamIn stream)
virtual

Implements LASspatial.

Definition at line 518 of file lasquadtree.cpp.

◆ setup()

BOOL LASquadtree::setup ( F64  bb_min_x,
F64  bb_max_x,
F64  bb_min_y,
F64  bb_max_y,
F32  cell_size = 1000.0f 
)

Definition at line 1429 of file lasquadtree.cpp.

◆ subtiling_setup()

BOOL LASquadtree::subtiling_setup ( F32  min_x,
F32  max_x,
F32  min_y,
F32  max_y,
U32  sub_level,
U32  sub_level_index,
U32  levels 
)

Definition at line 1480 of file lasquadtree.cpp.

◆ write()

BOOL LASquadtree::write ( ByteStreamOut stream) const
virtual

Implements LASspatial.

Definition at line 591 of file lasquadtree.cpp.

Member Data Documentation

◆ adaptive

U32* LASquadtree::adaptive
private

Definition at line 134 of file lasquadtree.hpp.

◆ adaptive_alloc

U32 LASquadtree::adaptive_alloc
private

Definition at line 133 of file lasquadtree.hpp.

◆ cell_size

F32 LASquadtree::cell_size

Definition at line 115 of file lasquadtree.hpp.

◆ cells_x

U32 LASquadtree::cells_x

Definition at line 120 of file lasquadtree.hpp.

◆ cells_y

U32 LASquadtree::cells_y

Definition at line 121 of file lasquadtree.hpp.

◆ coarser_indices

U32 LASquadtree::coarser_indices[4]
private

Definition at line 132 of file lasquadtree.hpp.

◆ current_cells

void* LASquadtree::current_cells
private

Definition at line 144 of file lasquadtree.hpp.

◆ level_offset

U32 LASquadtree::level_offset[24]
private

Definition at line 131 of file lasquadtree.hpp.

◆ levels

U32 LASquadtree::levels

Definition at line 114 of file lasquadtree.hpp.

◆ max_x

F32 LASquadtree::max_x

Definition at line 117 of file lasquadtree.hpp.

◆ max_y

F32 LASquadtree::max_y

Definition at line 119 of file lasquadtree.hpp.

◆ min_x

F32 LASquadtree::min_x

Definition at line 116 of file lasquadtree.hpp.

◆ min_y

F32 LASquadtree::min_y

Definition at line 118 of file lasquadtree.hpp.

◆ next_cell_index

U32 LASquadtree::next_cell_index
private

Definition at line 145 of file lasquadtree.hpp.

◆ sub_level

U32 LASquadtree::sub_level
private

Definition at line 129 of file lasquadtree.hpp.

◆ sub_level_index

U32 LASquadtree::sub_level_index
private

Definition at line 130 of file lasquadtree.hpp.


The documentation for this class was generated from the following files:


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 Mon Feb 28 2022 22:46:10