drawGrid method
void
drawGrid()
Draw a grid and add it to the scene
Implementation
void drawGrid() {
if (scene != null) {
const color = 0x888888;
const multiplier = 3;
double? size;
double? divisions;
double maxLength;
double tick;
if (camera is OrthographicCamera) {
final width = camera.right - camera.left;
final height = camera.bottom - camera.top;
maxLength = math.max(width, height);
tick = maxLength / 20;
size = maxLength / camera.zoom * multiplier;
divisions = size / tick * camera.zoom;
}
else if (camera is PerspectiveCamera) {
final distance = camera.position.distanceTo(_gizmos.position);
final halfFovV = MathUtils.deg2rad * camera.fov * 0.5;
final halfFovH = math.atan((camera.aspect) * math.tan(halfFovV));
maxLength = math.tan(math.max(halfFovV, halfFovH)) * distance * 2;
tick = maxLength / 20;
size = maxLength * multiplier;
divisions = size / tick;
}
if (_grid == null && size != null && divisions != null) {
_grid = GridHelper(size, divisions.toInt(), color, color);
_grid!.position.setFrom(_gizmos.position);
_gridPosition.setFrom(_grid!.position);
_grid!.quaternion.setFrom(camera.quaternion);
_grid!.rotateX(math.pi * 0.5);
scene!.add(_grid);
}
}
}