Blender  V2.93
BKE_pointcloud.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  */
16 
17 #pragma once
18 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 struct BoundBox;
28 struct CustomDataLayer;
29 struct Depsgraph;
30 struct Main;
31 struct Object;
32 struct PointCloud;
33 struct Scene;
34 
35 /* PointCloud datablock */
36 extern const char *POINTCLOUD_ATTR_POSITION;
37 extern const char *POINTCLOUD_ATTR_RADIUS;
38 
39 void *BKE_pointcloud_add(struct Main *bmain, const char *name);
40 void *BKE_pointcloud_add_default(struct Main *bmain, const char *name);
42 
43 struct BoundBox *BKE_pointcloud_boundbox_get(struct Object *ob);
44 void BKE_pointcloud_minmax(const struct PointCloud *pointcloud, float r_min[3], float r_max[3]);
45 
48  struct CustomDataLayer *layer);
49 
50 /* Dependency Graph */
51 
52 struct PointCloud *BKE_pointcloud_new_for_eval(const struct PointCloud *pointcloud_src,
53  int totpoint);
54 struct PointCloud *BKE_pointcloud_copy_for_eval(struct PointCloud *pointcloud_src, bool reference);
55 
57  struct Scene *scene,
58  struct Object *object);
59 
60 /* Draw Cache */
61 
62 enum {
64 };
65 
66 void BKE_pointcloud_batch_cache_dirty_tag(struct PointCloud *pointcloud, int mode);
67 void BKE_pointcloud_batch_cache_free(struct PointCloud *pointcloud);
68 
69 extern void (*BKE_pointcloud_batch_cache_dirty_tag_cb)(struct PointCloud *pointcloud, int mode);
70 extern void (*BKE_pointcloud_batch_cache_free_cb)(struct PointCloud *pointcloud);
71 
72 #ifdef __cplusplus
73 }
74 #endif
struct PointCloud * BKE_pointcloud_copy_for_eval(struct PointCloud *pointcloud_src, bool reference)
Definition: pointcloud.cc:335
void(* BKE_pointcloud_batch_cache_free_cb)(struct PointCloud *pointcloud)
Definition: pointcloud.cc:422
const char * POINTCLOUD_ATTR_RADIUS
Definition: pointcloud.cc:59
bool BKE_pointcloud_customdata_required(struct PointCloud *pointcloud, struct CustomDataLayer *layer)
void * BKE_pointcloud_add(struct Main *bmain, const char *name)
Definition: pointcloud.cc:216
void BKE_pointcloud_data_update(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *object)
Definition: pointcloud.cc:396
void(* BKE_pointcloud_batch_cache_dirty_tag_cb)(struct PointCloud *pointcloud, int mode)
Definition: pointcloud.cc:421
struct BoundBox * BKE_pointcloud_boundbox_get(struct Object *ob)
Definition: pointcloud.cc:277
void BKE_pointcloud_minmax(const struct PointCloud *pointcloud, float r_min[3], float r_max[3])
Definition: pointcloud.cc:263
struct PointCloud * BKE_pointcloud_new_for_eval(const struct PointCloud *pointcloud_src, int totpoint)
void BKE_pointcloud_batch_cache_dirty_tag(struct PointCloud *pointcloud, int mode)
Definition: pointcloud.cc:424
@ BKE_POINTCLOUD_BATCH_DIRTY_ALL
void BKE_pointcloud_batch_cache_free(struct PointCloud *pointcloud)
Definition: pointcloud.cc:431
void BKE_pointcloud_update_customdata_pointers(struct PointCloud *pointcloud)
Definition: pointcloud.cc:303
struct PointCloud * BKE_pointcloud_new_nomain(const int totpoint)
Definition: pointcloud.cc:240
void * BKE_pointcloud_add_default(struct Main *bmain, const char *name)
Definition: pointcloud.cc:223
const char * POINTCLOUD_ATTR_POSITION
Definition: pointcloud.cc:58
struct Depsgraph Depsgraph
Definition: DEG_depsgraph.h:51
Scene scene
const Depsgraph * depsgraph
Definition: BKE_main.h:116
string name
Definition: scene.h:222