Blender V5.0
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
Nodeget_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 NodeOwnerget_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 AnimDataadt
int flag
int totpoint
struct AttributeStorage attribute_storage
struct CustomData pdata_legacy
int attributes_active_index
int _pad4
struct Material ** mat
short totcol
short _pad3 [3]
PointCloudRuntimeHandleruntime
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< BVHbvh
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 NodeTypetype
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 Tget_socket_value (const Node *node, const SocketType &socket)
Protected Attributes inherited from Node
const NodeOwnerowner
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()

PointCloud::~PointCloud ( )
overridedefault

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.

◆ 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, and Geometry::clear().

◆ clear_non_sockets()

void PointCloud::clear_non_sockets ( )

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

References Geometry::clear().

◆ 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.

◆ resize()

void PointCloud::resize ( const int numpoints)

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

References Geometry::attributes.

Referenced by export_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 66 of file DNA_pointcloud_types.h.

◆ _pad4

int PointCloud::_pad4

Definition at line 61 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

◆ attributes_active_index

int PointCloud::attributes_active_index

Set to -1 when none is active.

Definition at line 60 of file DNA_pointcloud_types.h.

Referenced by BKE_attributes_active_index_p().

◆ batch_cache

◆ flag

int PointCloud::flag

◆ id

◆ mat

◆ pdata_legacy

◆ 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::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::extract_pointcloud_points(), blender::geometry::gather_realize_tasks_recursive(), blender::nodes::node_geo_points_to_vertices_cc::geometry_set_points_to_vertices(), blender::geometry::get_final_points_num(), blender::bke::get_pointcloud_accessor_functions(), blender::nodes::node_geo_proximity_cc::ProximityFunction::init_for_pointcloud(), pointcloud_blend_read_data(), blender::bke::pointcloud_convert_customdata_to_storage(), 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(), stats_object_edit(), and blender::ed::geometry::store_result_geometry().


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