34 #ifndef LAS_QUADTREE_HPP 35 #define LAS_QUADTREE_HPP 140 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);
141 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);
void get_cell_bounding_box(const I32 cell_index, F32 *min, F32 *max) const
U32 get_level(U32 cell_index) const
BOOL get_intersected_cells()
U32 get_max_level_index() const
U32 intersect_rectangle(const F64 r_min_x, const F64 r_min_y, const F64 r_max_x, const F64 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)
BOOL subtiling_setup(F32 min_x, F32 max_x, F32 min_y, F32 max_y, U32 sub_level, U32 sub_level_index, U32 levels)
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)
BOOL inside(const F64 x, const F64 y) const
BOOL manage_cell(const U32 cell_index, const BOOL finalize=FALSE)
U32 intersect_circle(const F64 center_x, const F64 center_y, const F64 radius)
U32 get_max_cell_index() const
U32 get_level_index(const F64 x, const F64 y, U32 level) const
BOOL setup(F64 bb_min_x, F64 bb_max_x, F64 bb_min_y, F64 bb_max_y, F32 cell_size=1000.0f)
BOOL read(ByteStreamIn *stream)
BOOL coarsen(const I32 cell_index, I32 *coarser_cell_index, U32 *num_cell_indices, I32 **cell_indices) const
BOOL write(ByteStreamOut *stream) const
U32 intersect_tile(const F32 ll_x, const F32 ll_y, const F32 size)
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)
U32 get_cell_index(const F64 x, const F64 y) const
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)
U32 * raster_occupancy(BOOL(*does_cell_exist)(I32), U32 level) const
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 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)