godot_voxel/voxel_raycast.h

17 lines
451 B
C
Raw Normal View History

2017-03-26 20:07:01 +02:00
#include "vector3i.h"
2017-08-13 01:19:39 +02:00
#include <vector3.h>
2017-03-26 20:07:01 +02:00
2017-08-13 01:19:39 +02:00
// TODO that could be a template function
2017-03-26 20:07:01 +02:00
// pos: voxel position
// context: arguments to carry (as a lamdbda capture)
2017-08-13 01:19:39 +02:00
typedef bool (*VoxelPredicate)(Vector3i pos, void *context);
2017-03-26 20:07:01 +02:00
bool voxel_raycast(
2017-08-13 01:19:39 +02:00
Vector3 ray_origin,
Vector3 ray_direction,
VoxelPredicate predicate,
void *predicate_context, // Handle that one with care
real_t max_distance,
Vector3i &out_hit_pos,
Vector3i &out_prev_pos);