MCPcopy Create free account
hub / github.com/LASzip/LASzip / intersect_tile_with_cells

Method intersect_tile_with_cells

src/lasquadtree.cpp:1073–1154  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1071}
1072
1073void 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)
1074{
1075 volatile float cell_mid_x;
1076 volatile float cell_mid_y;
1077 if (level)
1078 {
1079 level--;
1080 level_index <<= 2;
1081
1082 cell_mid_x = (cell_min_x + cell_max_x)/2;
1083 cell_mid_y = (cell_min_y + cell_max_y)/2;
1084
1085 if (ur_x <= cell_mid_x)
1086 {
1087 // cell_max_x = cell_mid_x;
1088 if (ur_y <= cell_mid_y)
1089 {
1090 // cell_max_y = cell_mid_y;
1091 intersect_tile_with_cells(ll_x, ll_y, ur_x, ur_y, cell_min_x, cell_mid_x, cell_min_y, cell_mid_y, level, level_index);
1092 }
1093 else if (!(ll_y < cell_mid_y))
1094 {
1095 // cell_min_y = cell_mid_y;
1096 // level_index |= 1;
1097 intersect_tile_with_cells(ll_x, ll_y, ur_x, ur_y, cell_min_x, cell_mid_x, cell_mid_y, cell_max_y, level, level_index | 2);
1098 }
1099 else
1100 {
1101 intersect_tile_with_cells(ll_x, ll_y, ur_x, ur_y, cell_min_x, cell_mid_x, cell_min_y, cell_mid_y, level, level_index);
1102 intersect_tile_with_cells(ll_x, ll_y, ur_x, ur_y, cell_min_x, cell_mid_x, cell_mid_y, cell_max_y, level, level_index | 2);
1103 }
1104 }
1105 else if (!(ll_x < cell_mid_x))
1106 {
1107 // cell_min_x = cell_mid_x;
1108 // level_index |= 1;
1109 if (ur_y <= cell_mid_y)
1110 {
1111 // cell_max_y = cell_mid_y;
1112 intersect_tile_with_cells(ll_x, ll_y, ur_x, ur_y, cell_mid_x, cell_max_x, cell_min_y, cell_mid_y, level, level_index | 1);
1113 }
1114 else if (!(ll_y < cell_mid_y))
1115 {
1116 // cell_min_y = cell_mid_y;
1117 // level_index |= 1;
1118 intersect_tile_with_cells(ll_x, ll_y, ur_x, ur_y, cell_mid_x, cell_max_x, cell_mid_y, cell_max_y, level, level_index | 3);
1119 }
1120 else
1121 {
1122 intersect_tile_with_cells(ll_x, ll_y, ur_x, ur_y, cell_mid_x, cell_max_x, cell_min_y, cell_mid_y, level, level_index | 1);
1123 intersect_tile_with_cells(ll_x, ll_y, ur_x, ur_y, cell_mid_x, cell_max_x, cell_mid_y, cell_max_y, level, level_index | 3);
1124 }
1125 }
1126 else
1127 {
1128 if (ur_y <= cell_mid_y)
1129 {
1130 // cell_max_y = cell_mid_y;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected