int main() { // test_particle_update(); // test_figtree(); // test_pr2_system(); test_camera(); // test_fk(); return 0; }
bool BlenderObjectCulling::test(Scene *scene, BL::Object& b_ob, Transform& tfm) { if(!use_camera_cull_ && !use_distance_cull_) { return false; } /* Compute world space bounding box corners. */ float3 bb[8]; BL::Array<float, 24> boundbox = b_ob.bound_box(); for(int i = 0; i < 8; ++i) { float3 p = make_float3(boundbox[3 * i + 0], boundbox[3 * i + 1], boundbox[3 * i + 2]); bb[i] = transform_point(&tfm, p); } bool camera_culled = use_camera_cull_ && test_camera(scene, bb); bool distance_culled = use_distance_cull_ && test_distance(scene, bb); return ((camera_culled && distance_culled) || (camera_culled && !use_distance_cull_) || (distance_culled && !use_camera_cull_)); }