Blender V4.5
PointCloud Class Reference

#include <DNA_pointcloud_types.h>

Inherits Geometry.

Classes

struct  Point

Public Member Functions

 PointCloud ()
 ~PointCloud () override
void clear_non_sockets ()
void clear (const bool preserve_shaders=false) override
void resize (const int numpoints)
void reserve (const int numpoints)
void add_point (const float3 co, const float radius, const int shader=0)
void copy_center_to_motion_step (const int motion_step)
void compute_bounds () override
void apply_transform (const Transform &tfm, const bool apply_to_motion) override
Point get_point (const int i) const
size_t num_points () const
size_t num_attributes () const
void get_uv_tiles (ustring map, unordered_set< int > &tiles) override
PrimitiveType primitive_type () const override
void pack (Scene *scene, float4 *packed_points, uint *packed_shader)
Public Member Functions inherited from Geometry
 Geometry (const NodeType *node_type, const Type type)
 ~Geometry () override
bool need_attribute (Scene *scene, AttributeStandard std)
bool need_attribute (Scene *scene, ustring name)
AttributeRequestSet needed_attributes ()
float motion_time (const int step) const
int motion_step (const float time) const
void compute_bvh (Device *device, DeviceScene *dscene, SceneParams *params, Progress *progress, const size_t n, size_t total)
bool need_build_bvh (BVHLayout layout) const
bool is_instanced () const
bool has_true_displacement () const
virtual bool has_motion_blur () const
bool has_voxel_attributes () const
bool is_mesh () const
bool is_hair () const
bool is_pointcloud () const
bool is_volume () const
bool is_light () const
void tag_update (Scene *scene, bool rebuild)
Public Member Functions inherited from Node
 Node (const NodeType *type, ustring name=ustring())
virtual ~Node ()=0
void set (const SocketType &input, bool value)
void set (const SocketType &input, const int value)
void set (const SocketType &input, const uint value)
void set (const SocketType &input, const uint64_t value)
void set (const SocketType &input, const float value)
void set (const SocketType &input, const float2 value)
void set (const SocketType &input, const float3 value)
void set (const SocketType &input, const char *value)
void set (const SocketType &input, ustring value)
void set (const SocketType &input, const Transform &value)
void set (const SocketType &input, Node *value)
template<class ValueType, std::enable_if_t< std::is_enum_v< ValueType >, bool > = true>
void set (const SocketType &input, const ValueType &value)
void set (const SocketType &input, array< bool > &value)
void set (const SocketType &input, array< int > &value)
void set (const SocketType &input, array< float > &value)
void set (const SocketType &input, array< float2 > &value)
void set (const SocketType &input, array< float3 > &value)
void set (const SocketType &input, array< ustring > &value)
void set (const SocketType &input, array< Transform > &value)
void set (const SocketType &input, array< Node * > &value)
bool get_bool (const SocketType &input) const
int get_int (const SocketType &input) const
uint get_uint (const SocketType &input) const
uint64_t get_uint64 (const SocketType &input) const
float get_float (const SocketType &input) const
float2 get_float2 (const SocketType &input) const
float3 get_float3 (const SocketType &input) const
ustring get_string (const SocketType &input) const
Transform get_transform (const SocketType &input) const
Node * get_node (const SocketType &input) const
const array< bool > & get_bool_array (const SocketType &input) const
const array< int > & get_int_array (const SocketType &input) const
const array< float > & get_float_array (const SocketType &input) const
const array< float2 > & get_float2_array (const SocketType &input) const
const array< float3 > & get_float3_array (const SocketType &input) const
const array< ustring > & get_string_array (const SocketType &input) const
const array< Transform > & get_transform_array (const SocketType &input) const
const array< Node * > & get_node_array (const SocketType &input) const
bool has_default_value (const SocketType &input) const
void set_default_value (const SocketType &input)
bool equals_value (const Node &other, const SocketType &socket) const
void copy_value (const SocketType &socket, const Node &other, const SocketType &other_socket)
void set_value (const SocketType &socket, const Node &other, const SocketType &other_socket)
bool equals (const Node &other) const
void hash (MD5Hash &md5)
size_t get_total_size_in_bytes () const
bool is_a (const NodeType *type)
bool socket_is_modified (const SocketType &input) const
bool is_modified () const
void tag_modified ()
void clear_modified ()
void print_modified_sockets () const
const NodeOwner * get_owner () const
void set_owner (const NodeOwner *owner_)
int reference_count () const
void reference ()
void dereference ()
void clear_reference_count ()

Public Attributes

ID id
struct AnimData * adt
int flag
int totpoint
struct AttributeStorage attribute_storage
struct CustomData pdata
int attributes_active_index
int _pad4
struct Material ** mat
short totcol
short _pad3 [3]
PointCloudRuntimeHandle * runtime
void * batch_cache
Public Attributes inherited from Geometry
Type geometry_type
AttributeSet attributes
BoundBox bounds
bool transform_applied
bool transform_negative_scaled
Transform transform_normal
unique_ptr< BVH > bvh
size_t attr_map_offset
size_t prim_offset
bool has_volume
bool has_surface_bssrdf
bool need_update_rebuild
bool need_update_bvh_for_offset
size_t index
Public Attributes inherited from Node
ustring name
const NodeType * type
InternalNode internal
LeafNode leaf

Friends

class BVH2
class BVHBuild
class BVHSpatialSplit
class DiagSplit
class EdgeDice
class GeometryManager
class ObjectManager

Additional Inherited Members

Public Types inherited from Geometry
enum  Type {
  MESH , HAIR , VOLUME , POINTCLOUD ,
  LIGHT
}
Static Public Attributes inherited from Geometry
static const uint MAX_MOTION_STEPS = 129
Protected Member Functions inherited from Node
template<typename T>
void set_if_different (const SocketType &input, T value)
void set_if_different (const SocketType &input, Node *value)
template<typename T>
void set_if_different (const SocketType &input, array< T > &value)
void set_if_different (const SocketType &input, array< Node * > &value)
void dereference_all_used_nodes ()
Static Protected Member Functions inherited from Node
template<typename T>
static T & get_socket_value (const Node *node, const SocketType &socket)
Protected Attributes inherited from Node
const NodeOwner * owner
int ref_count {0}
SocketModifiedFlags socket_modified

Detailed Description

Definition at line 40 of file DNA_pointcloud_types.h.

Constructor & Destructor Documentation

◆ PointCloud()

PointCloud::PointCloud ( )

Definition at line 92 of file scene/pointcloud.cpp.

References Geometry::Geometry(), and Geometry::POINTCLOUD.

◆ ~PointCloud()

Member Function Documentation

◆ add_point()

void PointCloud::add_point ( const float3 co,
const float radius,
const int shader = 0 )

Definition at line 135 of file scene/pointcloud.cpp.

Referenced by ~PointCloud().

◆ apply_transform()

void PointCloud::apply_transform ( const Transform & tfm,
const bool apply_to_motion )
overridevirtual

◆ clear()

void PointCloud::clear ( const bool preserve_shaders = false)
overridevirtual

Reimplemented from Geometry.

Definition at line 121 of file scene/pointcloud.cpp.

References Geometry::attributes, AttributeSet::clear(), and Geometry::clear().

Referenced by ~PointCloud().

◆ clear_non_sockets()

void PointCloud::clear_non_sockets ( )

Definition at line 116 of file scene/pointcloud.cpp.

References Geometry::clear().

Referenced by ~PointCloud().

◆ compute_bounds()

◆ copy_center_to_motion_step()

void PointCloud::copy_center_to_motion_step ( const int motion_step)

◆ get_point()

Point PointCloud::get_point ( const int i) const
inline

Definition at line 64 of file scene/pointcloud.h.

References i.

Referenced by BVHBuild::add_reference_points(), and BVH2::refit_primitives().

◆ get_uv_tiles()

void PointCloud::get_uv_tiles ( ustring map,
unordered_set< int > & tiles )
overridevirtual

◆ num_attributes()

size_t PointCloud::num_attributes ( ) const
inline

Definition at line 75 of file scene/pointcloud.h.

◆ num_points()

◆ pack()

void PointCloud::pack ( Scene * scene,
float4 * packed_points,
uint * packed_shader )

◆ primitive_type()

PrimitiveType PointCloud::primitive_type ( ) const
overridevirtual

Implements Geometry.

Definition at line 291 of file scene/pointcloud.cpp.

References Geometry::has_motion_blur(), PRIMITIVE_MOTION_POINT, and PRIMITIVE_POINT.

◆ reserve()

void PointCloud::reserve ( const int numpoints)

Definition at line 108 of file scene/pointcloud.cpp.

References Geometry::attributes, and AttributeSet::resize().

Referenced by ~PointCloud().

◆ resize()

void PointCloud::resize ( const int numpoints)

Definition at line 96 of file scene/pointcloud.cpp.

References Geometry::attributes, and AttributeSet::resize().

Referenced by export_pointcloud(), and ~PointCloud().

◆ BVH2

friend class BVH2
friend

Definition at line 89 of file scene/pointcloud.h.

References BVH2.

Referenced by BVH2.

◆ BVHBuild

friend class BVHBuild
friend

Definition at line 90 of file scene/pointcloud.h.

References BVHBuild.

Referenced by BVHBuild.

◆ BVHSpatialSplit

friend class BVHSpatialSplit
friend

Definition at line 91 of file scene/pointcloud.h.

References BVHSpatialSplit.

Referenced by BVHSpatialSplit.

◆ DiagSplit

friend class DiagSplit
friend

Definition at line 92 of file scene/pointcloud.h.

References DiagSplit.

Referenced by DiagSplit.

◆ EdgeDice

friend class EdgeDice
friend

Definition at line 93 of file scene/pointcloud.h.

References EdgeDice.

Referenced by EdgeDice.

◆ GeometryManager

friend class GeometryManager
friend

Definition at line 94 of file scene/pointcloud.h.

References GeometryManager.

Referenced by GeometryManager.

◆ ObjectManager

friend class ObjectManager
friend

Definition at line 95 of file scene/pointcloud.h.

References ObjectManager.

Referenced by ObjectManager.

Member Data Documentation

◆ _pad3

short PointCloud::_pad3[3]

Definition at line 69 of file DNA_pointcloud_types.h.

◆ _pad4

int PointCloud::_pad4

Definition at line 64 of file DNA_pointcloud_types.h.

◆ adt

struct AnimData* PointCloud::adt

Definition at line 47 of file DNA_pointcloud_types.h.

Referenced by acf_dspointcloud_setting_ptr(), and make_new_animlistelem().

◆ attribute_storage

struct AttributeStorage PointCloud::attribute_storage

Storage for generic attributes. Currently unused at runtime, but used for forward compatibility when reading files (see #122398).

Definition at line 58 of file DNA_pointcloud_types.h.

Referenced by pointcloud_blend_read_data(), pointcloud_blend_write(), blender::bke::pointcloud_convert_customdata_to_storage(), blender::bke::pointcloud_convert_storage_to_customdata(), pointcloud_copy_data(), pointcloud_free_data(), and pointcloud_init_data().

◆ attributes_active_index

int PointCloud::attributes_active_index

Set to -1 when none is active.

Definition at line 63 of file DNA_pointcloud_types.h.

Referenced by BKE_attributes_active_index_p().

◆ batch_cache

◆ flag

int PointCloud::flag

◆ id

◆ mat

◆ pdata

◆ runtime

◆ totcol

◆ totpoint

int PointCloud::totpoint

Definition at line 52 of file DNA_pointcloud_types.h.

Referenced by BKE_mesh_to_pointcloud(), BKE_pointcloud_new_nomain(), BKE_pointcloud_nomain_to_pointcloud(), blender::bke::bvhtree_from_pointcloud_get(), blender::ed::pointcloud::copy_selection(), blender::bke::create_attribute_providers_for_pointcloud(), blender::nodes::node_geo_points_to_curves_cc::curves_from_points(), blender::geometry::debug_randomize_point_order(), blender::nodes::node_geo_duplicate_elements_cc::duplicate_points_pointcloud(), blender::geometry::execute_realize_pointcloud_task(), blender::geometry::execute_realize_pointcloud_tasks(), blender::geometry::extract_pointcloud_points(), blender::geometry::gather_realize_tasks_recursive(), blender::nodes::node_geo_points_to_vertices_cc::geometry_set_points_to_vertices(), get_domains(), blender::geometry::get_final_points_num(), get_mutable_attribute(), blender::bke::get_pointcloud_accessor_functions(), get_span_attribute(), get_varray_attribute(), blender::nodes::node_geo_proximity_cc::ProximityFunction::init_for_pointcloud(), pointcloud_blend_read_data(), blender::bke::pointcloud_convert_customdata_to_storage(), pointcloud_copy_data(), blender::draw::pointcloud_extract_attribute(), blender::draw::pointcloud_extract_indices(), blender::nodes::node_geo_merge_by_distance_cc::pointcloud_merge_by_distance(), blender::bke::pointcloud_new_no_attributes(), blender::draw::pointcloud_sub_pass_setup_implementation(), blender::io::alembic::AbcPointsReader::read_geometry(), blender::io::usd::USDPointInstancerReader::read_geometry(), blender::io::usd::USDPointsReader::read_geometry(), blender::geometry::reorder_points(), blender::nodes::node_geo_sample_nearest_cc::SampleNearestFunction::SampleNearestFunction(), blender::geometry::seed_from_pointcloud(), blender::geometry::separate_pointcloud_selection(), blender::bke::bake::serialize_geometry_set(), and blender::ed::geometry::store_result_geometry().


The documentation for this class was generated from the following files: