Blender V5.0
BKE_pointcloud.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
11
12#include "BLI_bounds_types.hh"
13#include "BLI_kdopbvh.hh"
15#include "BLI_shared_cache.hh"
16#include "BLI_string_ref.hh"
17
19
20struct Depsgraph;
21struct Main;
22struct Object;
23struct PointCloud;
24struct Scene;
25namespace blender::bke::bake {
27}
28
29namespace blender::bke {
30
47
49
50} // namespace blender::bke
51
52PointCloud *BKE_pointcloud_add(Main *bmain, const char *name);
54void BKE_pointcloud_nomain_to_pointcloud(PointCloud *pointcloud_src, PointCloud *pointcloud_dst);
55
57
64
65/* Dependency Graph */
66
68
69void BKE_pointcloud_data_update(Depsgraph *depsgraph, Scene *scene, Object *object);
70
71/* Draw Cache */
72
73enum {
75};
76
77void BKE_pointcloud_batch_cache_dirty_tag(PointCloud *pointcloud, int mode);
79
80extern void (*BKE_pointcloud_batch_cache_dirty_tag_cb)(PointCloud *pointcloud, int mode);
81extern void (*BKE_pointcloud_batch_cache_free_cb)(PointCloud *pointcloud);
82
83namespace blender::bke {
86} // namespace blender::bke
PointCloud * BKE_pointcloud_add(Main *bmain, const char *name)
PointCloud * BKE_pointcloud_copy_for_eval(const PointCloud *pointcloud_src)
void BKE_pointcloud_nomain_to_pointcloud(PointCloud *pointcloud_src, PointCloud *pointcloud_dst)
bool BKE_pointcloud_attribute_required(const PointCloud *pointcloud, blender::StringRef name)
void BKE_pointcloud_batch_cache_dirty_tag(PointCloud *pointcloud, int mode)
void BKE_pointcloud_batch_cache_free(PointCloud *pointcloud)
@ BKE_POINTCLOUD_BATCH_DIRTY_ALL
PointCloud * BKE_pointcloud_new_nomain(int totpoint)
void BKE_pointcloud_data_update(Depsgraph *depsgraph, Scene *scene, Object *object)
void pointcloud_copy_parameters(const PointCloud &src, PointCloud &dst)
void(* BKE_pointcloud_batch_cache_free_cb)(PointCloud *pointcloud)
void(* BKE_pointcloud_batch_cache_dirty_tag_cb)(PointCloud *pointcloud, int mode)
BPy_StructRNA * depsgraph
const AttributeAccessorFunctions & pointcloud_attribute_accessor_functions()
PointCloud * pointcloud_new_no_attributes(int totpoint)
const char * name
SharedCache< Bounds< float3 > > bounds_with_radius_cache
SharedCache< std::unique_ptr< BVHTree, BVHTreeDeleter > > bvh_cache
MEM_CXX_CLASS_ALLOC_FUNCS("PointCloudRuntime")
std::unique_ptr< bake::BakeMaterialsList > bake_materials
SharedCache< Bounds< float3 > > bounds_cache