2023-06-14 16:52:36 +10:00
|
|
|
/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation
|
|
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: Apache-2.0 */
|
2016-12-14 13:01:33 +01:00
|
|
|
|
2024-12-26 17:53:56 +01:00
|
|
|
#pragma once
|
2016-12-14 13:01:33 +01:00
|
|
|
|
2021-10-24 14:19:19 +02:00
|
|
|
#include "blender/sync.h"
|
|
|
|
|
#include "util/types.h"
|
2016-12-14 13:01:33 +01:00
|
|
|
|
|
|
|
|
CCL_NAMESPACE_BEGIN
|
|
|
|
|
|
|
|
|
|
class Scene;
|
|
|
|
|
|
|
|
|
|
class BlenderObjectCulling {
|
|
|
|
|
public:
|
|
|
|
|
BlenderObjectCulling(Scene *scene, BL::Scene &b_scene);
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2016-12-14 13:01:33 +01:00
|
|
|
void init_object(Scene *scene, BL::Object &b_ob);
|
|
|
|
|
bool test(Scene *scene, BL::Object &b_ob, Transform &tfm);
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2016-12-14 13:01:33 +01:00
|
|
|
private:
|
2025-01-01 18:15:54 +01:00
|
|
|
bool test_camera(Scene *scene, const float3 bb[8]);
|
|
|
|
|
bool test_distance(Scene *scene, const float3 bb[8]);
|
2019-04-17 06:17:24 +02:00
|
|
|
|
2016-12-14 13:01:33 +01:00
|
|
|
bool use_scene_camera_cull_;
|
|
|
|
|
bool use_camera_cull_;
|
|
|
|
|
float camera_cull_margin_;
|
|
|
|
|
bool use_scene_distance_cull_;
|
|
|
|
|
bool use_distance_cull_;
|
|
|
|
|
float distance_cull_margin_;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
CCL_NAMESPACE_END
|