18namespace osc {
class BVH; }
19namespace osc {
class Camera; }
20namespace osc {
class Mesh; }
21namespace osc {
class Rect; }
22namespace osc {
class SceneCache; }
23namespace osc {
struct AABB; }
24namespace osc {
struct LineSegment; }
25namespace osc {
struct Ray; }
26namespace osc {
struct Transform; }
44 std::span<const AABB>,
100 std::span<const SceneDecoration>,
106 const BVH& scene_bvh,
108 std::span<const SceneDecoration>,
109 const Ray& world_space_ray,
115 const BVH& scene_bvh,
117 std::span<const SceneDecoration>,
118 const Ray& world_space_ray
124 const BVH& triangle_bvh,
126 const Ray& world_space_ray
134 const BVH& triangle_bvh,
135 const Rect& screen_render_rect,
144 float device_pixel_ratio
Definition anti_aliasing_level.h:11
Definition scene_cache.h:25
Definition custom_decoration_generator.h:5
void draw_aabbs(SceneCache &, std::span< const AABB >, const std::function< void(SceneDecoration &&)> &out)
void update_scene_bvh(std::span< const SceneDecoration >, BVH &)
SceneRendererParams calc_standard_dark_scene_render_params(const Camera &, AntiAliasingLevel, Vector2 dimensions, float device_pixel_ratio)
void draw_arrow(SceneCache &, const ArrowProperties &, const std::function< void(SceneDecoration &&)> &out)
void draw_xz_floor_lines(SceneCache &, const std::function< void(SceneDecoration &&)> &out, float scale=5.0f)
void draw_line_segment(SceneCache &, const LineSegment &, const Color &, float radius, const std::function< void(SceneDecoration &&)> &out)
void for_each_ray_collision_with_scene(const BVH &scene_bvh, SceneCache &, std::span< const SceneDecoration >, const Ray &world_space_ray, const std::function< void(SceneCollision &&)> &out)
void draw_bvh(SceneCache &, const BVH &, const std::function< void(SceneDecoration &&)> &out)
Vector3 recommended_light_direction(const Camera &camera)
BVH create_triangle_bvh(const Mesh &)
void draw_xz_grid(SceneCache &, const std::function< void(SceneDecoration &&)> &out)
std::optional< RayCollision > get_closest_world_space_ray_triangle_collision(const Mesh &, const BVH &triangle_bvh, const Transform &, const Ray &world_space_ray)
void draw_xy_grid(SceneCache &, const std::function< void(SceneDecoration &&)> &out)
void draw_bvh_leaf_nodes(SceneCache &, const BVH &, const std::function< void(SceneDecoration &&)> &out)
FrustumPlanes calc_frustum_planes(const Camera &camera, float aspect_ratio)
std::vector< SceneCollision > get_all_ray_collisions_with_scene(const BVH &scene_bvh, SceneCache &, std::span< const SceneDecoration >, const Ray &world_space_ray)
Matrix< T, 4, 4 > scale(const Matrix< T, 4, 4 > &m, const Vector< T, 3 > &v)
Definition matrix_functions.h:78
void draw_aabb(SceneCache &, const AABB &, const std::function< void(SceneDecoration &&)> &out)
void draw_yz_grid(SceneCache &, const std::function< void(SceneDecoration &&)> &out)
Definition scene_helpers.h:75
float neck_thickness
Definition scene_helpers.h:79
Vector3 start
Definition scene_helpers.h:76
float tip_length
Definition scene_helpers.h:78
Vector3 end
Definition scene_helpers.h:77
Color color
Definition scene_helpers.h:81
SceneDecorationFlags decoration_flags
Definition scene_helpers.h:82
float head_thickness
Definition scene_helpers.h:80
Definition frustum_planes.h:10
Definition line_segment.h:13
static constexpr Rgba black()
Definition rgba.h:38
Definition scene_collision.h:12
Definition scene_decoration.h:15
Definition scene_renderer_params.h:13