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
|
|
|
|
|
|
|
|
#ifndef __BLENDER_OBJECT_CULL_H__
|
|
|
|
|
#define __BLENDER_OBJECT_CULL_H__
|
|
|
|
|
|
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:
|
|
|
|
|
bool test_camera(Scene *scene, float3 bb[8]);
|
|
|
|
|
bool test_distance(Scene *scene, 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
|
|
|
|
|
|
|
|
|
|
#endif /* __BLENDER_OBJECT_CULL_H__ */
|