Blender V4.3
pointcloud.cc File Reference
#include <optional>
#include "MEM_guardedalloc.h"
#include "DNA_defaults.h"
#include "DNA_material_types.h"
#include "DNA_object_types.h"
#include "DNA_pointcloud_types.h"
#include "BLI_bounds.hh"
#include "BLI_index_range.hh"
#include "BLI_math_vector.hh"
#include "BLI_rand.h"
#include "BLI_span.hh"
#include "BLI_task.hh"
#include "BLI_utildefines.h"
#include "BLI_vector.hh"
#include "BKE_anim_data.hh"
#include "BKE_bake_data_block_id.hh"
#include "BKE_customdata.hh"
#include "BKE_geometry_set.hh"
#include "BKE_idtype.hh"
#include "BKE_lib_id.hh"
#include "BKE_lib_query.hh"
#include "BKE_modifier.hh"
#include "BKE_object.hh"
#include "BKE_object_types.hh"
#include "BKE_pointcloud.hh"
#include "BLT_translation.hh"
#include "DEG_depsgraph_query.hh"
#include "BLO_read_write.hh"

Go to the source code of this file.

Namespaces

namespace  blender
 
namespace  blender::bke
 

Functions

static void pointcloud_random (PointCloud *pointcloud)
 
static void pointcloud_init_data (ID *id)
 
static void pointcloud_copy_data (Main *, std::optional< Library * >, ID *id_dst, const ID *id_src, const int)
 
static void pointcloud_free_data (ID *id)
 
static void pointcloud_foreach_id (ID *id, LibraryForeachIDData *data)
 
static void pointcloud_blend_write (BlendWriter *writer, ID *id, const void *id_address)
 
static void pointcloud_blend_read_data (BlendDataReader *reader, ID *id)
 
void * BKE_pointcloud_add (Main *bmain, const char *name)
 
void * BKE_pointcloud_add_default (Main *bmain, const char *name)
 
PointCloudBKE_pointcloud_new_nomain (const int totpoint)
 
void BKE_pointcloud_nomain_to_pointcloud (PointCloud *pointcloud_src, PointCloud *pointcloud_dst)
 
bool BKE_pointcloud_attribute_required (const PointCloud *, const char *name)
 
PointCloudBKE_pointcloud_copy_for_eval (const PointCloud *pointcloud_src)
 
static void pointcloud_evaluate_modifiers (Depsgraph *depsgraph, Scene *scene, Object *object, blender::bke::GeometrySet &geometry_set)
 
static PointCloudtake_pointcloud_ownership_from_geometry_set (blender::bke::GeometrySet &geometry_set)
 
void BKE_pointcloud_data_update (Depsgraph *depsgraph, Scene *scene, Object *object)
 
void BKE_pointcloud_batch_cache_dirty_tag (PointCloud *pointcloud, int mode)
 
void BKE_pointcloud_batch_cache_free (PointCloud *pointcloud)
 
PointCloudblender::bke::pointcloud_new_no_attributes (int totpoint)
 

Variables

const char * POINTCLOUD_ATTR_POSITION = "position"
 
const char * POINTCLOUD_ATTR_RADIUS = "radius"
 
IDTypeInfo IDType_ID_PT
 
void(* BKE_pointcloud_batch_cache_dirty_tag_cb )(PointCloud *pointcloud, int mode) = nullptr
 
void(* BKE_pointcloud_batch_cache_free_cb )(PointCloud *pointcloud) = nullptr
 

Function Documentation

◆ BKE_pointcloud_add()

void * BKE_pointcloud_add ( Main * bmain,
const char * name )

◆ BKE_pointcloud_add_default()

void * BKE_pointcloud_add_default ( Main * bmain,
const char * name )

◆ BKE_pointcloud_attribute_required()

bool BKE_pointcloud_attribute_required ( const PointCloud * pointcloud,
const char * name )

Definition at line 287 of file pointcloud.cc.

References POINTCLOUD_ATTR_POSITION, and STREQ.

Referenced by BKE_attribute_required().

◆ BKE_pointcloud_batch_cache_dirty_tag()

void BKE_pointcloud_batch_cache_dirty_tag ( PointCloud * pointcloud,
int mode )

◆ BKE_pointcloud_batch_cache_free()

void BKE_pointcloud_batch_cache_free ( PointCloud * pointcloud)

Definition at line 400 of file pointcloud.cc.

References PointCloud::batch_cache, and BKE_pointcloud_batch_cache_free_cb.

Referenced by pointcloud_free_data().

◆ BKE_pointcloud_copy_for_eval()

◆ BKE_pointcloud_data_update()

◆ BKE_pointcloud_new_nomain()

◆ BKE_pointcloud_nomain_to_pointcloud()

◆ pointcloud_blend_read_data()

static void pointcloud_blend_read_data ( BlendDataReader * reader,
ID * id )
static

◆ pointcloud_blend_write()

◆ pointcloud_copy_data()

static void pointcloud_copy_data ( Main * ,
std::optional< Library * > ,
ID * id_dst,
const ID * id_src,
const int  )
static

◆ pointcloud_evaluate_modifiers()

◆ pointcloud_foreach_id()

static void pointcloud_foreach_id ( ID * id,
LibraryForeachIDData * data )
static

◆ pointcloud_free_data()

◆ pointcloud_init_data()

◆ pointcloud_random()

◆ take_pointcloud_ownership_from_geometry_set()

Variable Documentation

◆ BKE_pointcloud_batch_cache_dirty_tag_cb

void(* BKE_pointcloud_batch_cache_dirty_tag_cb) (PointCloud *pointcloud, int mode) ( PointCloud * pointcloud,
int mode ) = nullptr

Definition at line 390 of file pointcloud.cc.

Referenced by BKE_pointcloud_batch_cache_dirty_tag(), and DRW_engines_register().

◆ BKE_pointcloud_batch_cache_free_cb

void(* BKE_pointcloud_batch_cache_free_cb) (PointCloud *pointcloud) ( PointCloud * pointcloud) = nullptr

Definition at line 391 of file pointcloud.cc.

Referenced by BKE_pointcloud_batch_cache_free(), and DRW_engines_register().

◆ IDType_ID_PT

IDTypeInfo IDType_ID_PT
Initial value:
= {
sizeof(PointCloud),
"PointCloud",
N_("pointclouds"),
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
@ IDTYPE_FLAGS_APPEND_IS_REUSABLE
Definition BKE_idtype.hh:39
#define BLT_I18NCONTEXT_ID_POINTCLOUD
#define FILTER_ID_MA
Definition DNA_ID.h:1175
#define FILTER_ID_PT
Definition DNA_ID.h:1196
@ INDEX_ID_PT
Definition DNA_ID.h:1297
@ ID_PT
struct PointCloud PointCloud
static void pointcloud_init_data(ID *id)
Definition pointcloud.cc:58
static void pointcloud_free_data(ID *id)
Definition pointcloud.cc:96
static void pointcloud_foreach_id(ID *id, LibraryForeachIDData *data)
static void pointcloud_blend_write(BlendWriter *writer, ID *id, const void *id_address)
static void pointcloud_blend_read_data(BlendDataReader *reader, ID *id)
static void pointcloud_copy_data(Main *, std::optional< Library * >, ID *id_dst, const ID *id_src, const int)
Definition pointcloud.cc:72
#define N_(msgid)

Definition at line 149 of file pointcloud.cc.

◆ POINTCLOUD_ATTR_POSITION

const char* POINTCLOUD_ATTR_POSITION = "position"

Definition at line 55 of file pointcloud.cc.

Referenced by BKE_pointcloud_attribute_required().

◆ POINTCLOUD_ATTR_RADIUS

const char* POINTCLOUD_ATTR_RADIUS = "radius"

Definition at line 56 of file pointcloud.cc.

Referenced by pointcloud_random().