📄 lightweight_proximity_grid.cpp
字号:
#include "../framework.h"
#include "lightweight_proximity_grid.h"
#include <math.h>
Lightweight_Proximity_Grid::~Lightweight_Proximity_Grid() {
if (grid_squares) delete [] grid_squares;
}
void Lightweight_Proximity_Grid::init(Vector3 _corner, Vector3 _extents,
float _grid_square_width) {
corner = _corner;
extents = _extents;
float w = _grid_square_width;
float iw = 0;
if (w == 0) {
num_squares_x = 1;
num_squares_y = 1;
num_squares_z = 1;
} else {
iw = 1.0f / w;
num_squares_x = (int)ceil(extents.x * iw);
num_squares_y = (int)ceil(extents.y * iw);
num_squares_z = (int)ceil(extents.z * iw);
}
square_dimensions.set(w, w, w);
inverse_square_dimensions.set(iw, iw, iw);
if (num_squares_x < 1) num_squares_x = 1;
if (num_squares_y < 1) num_squares_y = 1;
if (num_squares_z < 1) num_squares_z = 1;
grid_squares = new Lightweight_Proximity_Grid_Square[num_squares_x * num_squares_y * num_squares_z];
num_items = 0;
}
void Lightweight_Proximity_Grid::sanity_check() {
int num_squares = num_squares_x * num_squares_y * num_squares_z;
assert(num_squares > 0);
int sum = 0;
int i;
for (i = 0; i < num_squares; i++) {
Lightweight_Proximity_Grid_Square *square = &grid_squares[i];
sum += square->vertices.live_items;
}
assert(sum == num_items);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -