From 208d57323e2c1db5432aceebab7216f545410d74 Mon Sep 17 00:00:00 2001 From: Andre Susano Pinto Date: Thu, 8 Oct 2009 11:24:06 +0000 Subject: Fixed #19571 (was crashing when building a raytree from a scene withouth any geometry) --- .../blender/render/intern/raytrace/rayobject.cpp | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'source/blender/render/intern/raytrace') diff --git a/source/blender/render/intern/raytrace/rayobject.cpp b/source/blender/render/intern/raytrace/rayobject.cpp index 95387cf1ee4..621fd3f794e 100644 --- a/source/blender/render/intern/raytrace/rayobject.cpp +++ b/source/blender/render/intern/raytrace/rayobject.cpp @@ -535,3 +535,43 @@ int RE_rayobjectcontrol_test_break(RayObjectControl *control) return 0; } + + +/* + * Empty raytree + */ +static int RE_rayobject_empty_intersect(RayObject *o, Isect *is) +{ + return 0; +} + +static void RE_rayobject_empty_free(RayObject *o) +{ +} + +static void RE_rayobject_empty_bb(RayObject *o, float *min, float *max) +{ + return; +} + +static float RE_rayobject_empty_cost(RayObject *o) +{ + return 0.0; +} + +static RayObjectAPI empty_api = +{ + RE_rayobject_empty_intersect, + NULL, //static void RE_rayobject_instance_add(RayObject *o, RayObject *ob); + NULL, //static void RE_rayobject_instance_done(RayObject *o); + RE_rayobject_empty_free, + RE_rayobject_empty_bb, + RE_rayobject_empty_cost +}; + +static RayObject empty_raytree = { &empty_api, {0, 0} }; + +RayObject *RE_rayobject_empty_create() +{ + return RE_rayobject_unalignRayAPI( &empty_raytree ); +} -- cgit v1.2.3