Blender  V3.3
Public Member Functions | Public Attributes | List of all members
ParticleSystem Class Reference

#include <DNA_particle_types.h>

Inheritance diagram for ParticleSystem:
Node

Public Member Functions

NODE_DECLARE ParticleSystem ()
 
 ~ParticleSystem ()
 
void tag_update (Scene *scene)
 
- 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, int value)
 
void set (const SocketType &input, uint value)
 
void set (const SocketType &input, float value)
 
void set (const SocketType &input, float2 value)
 
void set (const SocketType &input, 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 , typename std::enable_if_t< std::is_enum_v< ValueType >> * = nullptr>
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
 
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 &input) const
 
void copy_value (const SocketType &input, const Node &other, const SocketType &other_input)
 
void set_value (const SocketType &input, const Node &other, const SocketType &other_input)
 
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

struct ParticleSystemnext
 
struct ParticleSystemprev
 
ParticleSettingspart
 
ParticleDataparticles
 
ChildParticlechild
 
struct PTCacheEditedit
 
void(* free_edit )(struct PTCacheEdit *edit)
 
struct ParticleCacheKey ** pathcache
 
struct ParticleCacheKey ** childcache
 
ListBase pathcachebufs
 
ListBase childcachebufs
 
struct ClothModifierDataclmd
 
struct Meshhair_in_mesh
 
struct Meshhair_out_mesh
 
struct Objecttarget_ob
 
struct LatticeDeformDatalattice_deform_data
 
struct Objectparent
 
struct ListBase targets
 
char name [64]
 
float imat [4][4]
 
float cfra
 
float tree_frame
 
float bvhtree_frame
 
int seed
 
int child_seed
 
int flag
 
int totpart
 
int totunexist
 
int totchild
 
int totcached
 
int totchildcache
 
int recalc
 
short target_psys
 
short totkeyed
 
short bakespace
 
char _pad1 [6]
 
char bb_uvname[3][64] DNA_DEPRECATED
 
short vgroup [13]
 
short vg_neg
 
short rt3
 
char _pad [6]
 
struct PointCachepointcache
 
struct ListBase ptcaches
 
struct ListBaseeffectors
 
ParticleSpringfluid_springs
 
int tot_fluidsprings
 
int alloc_fluidsprings
 
struct KDTree_3d * tree
 
struct BVHTreebvhtree
 
struct ParticleDrawDatapdd
 
float dt_frac
 
float lattice_strength
 
voidbatch_cache
 
struct ParticleSystemorig_psys
 
array< Particleparticles
 
- Public Attributes inherited from Node
ustring name
 
const NodeTypetype
 
InternalNode internal
 
LeafNode leaf
 

Additional Inherited Members

- 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 301 of file DNA_particle_types.h.

Constructor & Destructor Documentation

◆ ParticleSystem()

ParticleSystem::ParticleSystem ( )

Definition at line 26 of file scene/particles.cpp.

◆ ~ParticleSystem()

ParticleSystem::~ParticleSystem ( )

Definition at line 30 of file scene/particles.cpp.

Member Function Documentation

◆ tag_update()

void ParticleSystem::tag_update ( Scene scene)

Member Data Documentation

◆ _pad

char ParticleSystem::_pad[6]

Definition at line 367 of file DNA_particle_types.h.

◆ _pad1

char ParticleSystem::_pad1[6]

Definition at line 359 of file DNA_particle_types.h.

◆ alloc_fluidsprings

int ParticleSystem::alloc_fluidsprings

◆ bakespace

short ParticleSystem::bakespace

Definition at line 358 of file DNA_particle_types.h.

◆ batch_cache

void* ParticleSystem::batch_cache

◆ bvhtree

struct BVHTree* ParticleSystem::bvhtree

Used for interactions with self and other systems.

Definition at line 381 of file DNA_particle_types.h.

Referenced by BKE_object_copy_particlesystem(), BKE_particle_system_blend_read_data(), psys_free(), and psys_update_particle_bvhtree().

◆ bvhtree_frame

float ParticleSystem::bvhtree_frame

Definition at line 351 of file DNA_particle_types.h.

Referenced by psys_update_particle_bvhtree().

◆ cfra

float ParticleSystem::cfra

◆ child

ChildParticle* ParticleSystem::child

◆ child_seed

int ParticleSystem::child_seed

◆ childcache

struct ParticleCacheKey** ParticleSystem::childcache

◆ childcachebufs

ListBase ParticleSystem::childcachebufs

◆ clmd

struct ClothModifierData* ParticleSystem::clmd

◆ DNA_DEPRECATED

char bb_uvname [3][64] ParticleSystem::DNA_DEPRECATED

Billboard uv name, MAX_CUSTOMDATA_LAYER_NAME.

Definition at line 362 of file DNA_particle_types.h.

◆ dt_frac

float ParticleSystem::dt_frac

Current time step, as a fraction of a frame.

Definition at line 386 of file DNA_particle_types.h.

Referenced by sync_timestep(), system_step(), and update_timestep().

◆ edit

struct PTCacheEdit* ParticleSystem::edit

◆ effectors

struct ListBase* ParticleSystem::effectors

◆ flag

int ParticleSystem::flag

Definition at line 353 of file DNA_particle_types.h.

Referenced by BKE_object_copy_particlesystem(), BKE_object_handle_data_update(), BKE_particle_system_blend_read_data(), blo_do_versions_pre250(), brush_add(), brush_edit_apply(), brush_puff(), blender::deg::DepsgraphRelationBuilder::build_particle_systems(), clear_edited_exec(), connect_hair(), copy_particle_edit(), createTransParticleVerts(), disconnect_hair(), do_particle_interpolation(), do_path_effectors(), DRW_object_is_visible_psys_in_active_context(), drw_particle_update_ptcache_edit(), flushTransParticles(), foreach_mouse_hit_key_iter(), free_hair(), freeData(), hair_needs_recalc(), hair_step(), make_duplis_particle_system(), modifyMesh(), object_add_or_copy_particle_system(), particle_system_update(), particles_are_dynamic(), PE_apply_lengths(), PE_create_particle_edit(), pe_deflect_emitter(), pe_get_current(), PE_get_current_from_psys(), pe_iterate_lengths(), PE_lasso_select(), PE_mirror_x(), PE_start_edit(), pe_update_hair_particle_edit_pointers(), PE_update_object(), psys_apply_hair_lattice(), psys_cache_child_paths(), psys_cache_edit_paths_iter(), psys_cache_paths(), psys_changed_type(), psys_check_edited(), psys_check_enabled(), psys_count_keyed_targets(), psys_disable_all(), psys_enable_all(), psys_free(), psys_get_current(), psys_get_current_num(), psys_get_particle_on_path(), psys_get_particle_state(), psys_prepare_physics(), psys_reset(), psys_set_current_num(), psys_update_path_cache(), rekey_particle(), remove_doubles_exec(), reset_particle(), set_keyed_keys(), shape_cut_exec(), subdivide_particle(), blender::ed::curves::convert_to_particle_system::try_convert_single_object(), undoptcache_from_editcache(), undoptcache_to_editcache(), update_children(), and update_world_cos().

◆ fluid_springs

ParticleSpring* ParticleSystem::fluid_springs

◆ free_edit

void(* ParticleSystem::free_edit) (struct PTCacheEdit *edit)

◆ hair_in_mesh

struct Mesh* ParticleSystem::hair_in_mesh

Input/output for cloth simulation.

Definition at line 333 of file DNA_particle_types.h.

Referenced by BKE_object_copy_particlesystem(), BKE_particle_system_blend_read_data(), do_hair_dynamics(), and free_hair().

◆ hair_out_mesh

struct Mesh * ParticleSystem::hair_out_mesh

◆ imat

float ParticleSystem::imat[4][4]

Used for instancing.

Definition at line 350 of file DNA_particle_types.h.

Referenced by particle_system_update().

◆ lattice_deform_data

struct LatticeDeformData* ParticleSystem::lattice_deform_data

Run-time only lattice deformation data.

Definition at line 338 of file DNA_particle_types.h.

Referenced by psys_apply_hair_lattice(), psys_get_particle_on_path(), psys_get_particle_state(), psys_sim_data_free(), and psys_sim_data_init().

◆ lattice_strength

float ParticleSystem::lattice_strength

Influence of the lattice modifier.

Definition at line 388 of file DNA_particle_types.h.

Referenced by psys_apply_hair_lattice(), psys_get_particle_on_path(), psys_get_particle_state(), and psys_sim_data_init().

◆ name

char ParticleSystem::name[64]

◆ next

struct ParticleSystem* ParticleSystem::next

◆ orig_psys

struct ParticleSystem* ParticleSystem::orig_psys

◆ parent

struct Object* ParticleSystem::parent

Particles from global space -> parent space.

Definition at line 341 of file DNA_particle_types.h.

Referenced by BKE_particle_system_blend_read_lib(), and BKE_particlesystem_id_loop().

◆ part

ParticleSettings* ParticleSystem::part

Particle settings.

Definition at line 311 of file DNA_particle_types.h.

Referenced by alloc_child_particles(), animdata_filter_ds_particles(), basic_force_cb(), basic_integrate(), BKE_effectors_create(), BKE_object_copy_particlesystem(), BKE_object_handle_data_update(), BKE_particle_system_blend_read_lib(), BKE_particle_system_blend_write(), BKE_particlesystem_id_loop(), BKE_ptcache_bake(), BKE_ptcache_id_from_particles(), BKE_ptcache_object_reset(), blo_do_versions_pre250(), brush_add(), brush_add_count_iter(), brush_edit_apply(), brush_puff(), blender::deg::DepsgraphRelationBuilder::build_particle_systems(), buttons_context_id_path(), buttons_texture_users_from_context(), cached_step(), collision_check(), copy_particle_dupliob_exec(), count_particles(), count_particles_mod(), createFacepa(), createTransParticleVerts(), deflect_emitter_iter(), disconnect_hair(), distribute_grid(), do_child_modifiers(), do_hair_dynamics(), do_kink_spiral(), do_particle_interpolation(), do_path_effectors(), do_twist(), blender::io::alembic::ABCHairWriter::do_write(), DRW_object_is_visible_psys_in_active_context(), DRW_shgroup_hair_create_sub(), drw_uniform_attribute_lookup(), dupliob_move_down_exec(), dupliob_move_up_exec(), dupliob_refresh_exec(), dynamic_paint_paint_particle_cell_point_cb_ex(), dynamicPaint_doStep(), dynamicPaint_paintParticles(), dynamics_step(), dynamics_step_sph_classical_integrate_task_cb_ex(), dynamics_step_sph_ddr_task_cb_ex(), ED_object_modifier_convert_psys_to_mesh(), EEVEE_cryptomatte_particle_hair_cache_populate(), EEVEE_particle_hair_cache_populate(), ensure_seg_pt_count(), exec_distribute_parent(), external_cache_populate(), flushTransParticles(), foreach_mouse_hit_key_iter(), free_keyed_keys(), get_effector_tot(), hair_create_input_mesh(), hair_needs_recalc(), hair_step(), init_particle(), init_particle_texture(), initialize_all_particles(), make_duplis_particle_system(), make_local_exec(), mirror_poll(), modifyMesh(), new_particle_settings_exec(), object_add_or_copy_particle_system(), object_copy_modifier_particle_system_ensure(), object_remove_particle_system(), object_select_all_by_particle(), outliner_add_object_contents(), particle_batch_cache_ensure_pos(), particle_batch_cache_ensure_pos_and_seg(), particle_batch_cache_ensure_procedural_indices(), particle_batch_cache_ensure_procedural_pos(), particle_batch_cache_ensure_procedural_strand_data(), particle_batch_cache_fill_segments(), particle_batch_cache_fill_strands_data(), particle_calculate_parent_mcol(), particle_calculate_parent_uvs(), particle_interpolate_children_mcol(), particle_interpolate_children_uvs(), particle_skip(), particle_system_minmax(), particle_system_update(), particles_are_dynamic(), particles_ensure_procedural_data(), particles_fluid_step(), blender::ed::curves::convert_from_particle_system::particles_to_curves(), paste_mtex_exec(), pd_point_from_particle(), pe_get_current(), PE_get_current_from_psys(), PE_lasso_select(), PE_minmax(), PE_mirror_particle(), PE_mirror_x(), PE_update_mirror_cache(), PE_update_object(), pointdensity_cache_psys(), precalc_guides(), psys_apply_child_modifiers(), psys_apply_hair_lattice(), psys_cache_edit_paths_iter(), psys_cache_paths(), psys_calc_dmcache(), psys_changed_type(), psys_check_boid_data(), psys_check_edited(), psys_check_enabled(), psys_check_group_weights(), psys_count_keyed_targets(), psys_emitter_customdata_mask(), psys_find_group_weights(), psys_find_parents(), psys_free(), psys_free_particles(), psys_get_birth_coords(), psys_get_child_number(), psys_get_child_size(), psys_get_child_time(), psys_get_current_display_percentage(), psys_get_dupli_path_transform(), psys_get_particle_on_path(), psys_get_particle_state(), psys_get_pointcache_start_end(), psys_get_texture(), psys_get_timestep(), psys_particle_on_emitter(), psys_prepare_physics(), psys_sim_data_init(), psys_sph_density(), psys_sph_init(), psys_thread_context_init(), psys_thread_context_init_distribute(), psys_thread_context_init_path(), psys_thread_create_path(), psys_update_effectors(), psys_update_path_cache(), psys_uses_gravity(), ptcache_particle_extra_write(), ptcache_particle_interpolate(), ptcache_particle_read(), ptcache_particle_totwrite(), ptcache_particle_write(), realloc_particles(), remap_hair_emitter(), remove_doubles_exec(), remove_particle_dupliob_exec(), reset_particle(), rule_fight(), save_hair(), sph_evaluate_func(), sph_force_cb(), sph_integrate(), sph_particle_courant(), sph_springs_modify(), sphclassical_calc_dens(), sphclassical_density_accum_cb(), sphclassical_force_cb(), blender::eevee::SyncModule::sync_curves(), system_step(), tot_particles(), blender::ed::curves::convert_to_particle_system::try_convert_single_object(), twist_num_segments(), update_children(), update_timestep(), update_world_cos(), and workbench_cache_populate().

◆ particles [1/2]

array<Particle> ParticleSystem::particles

Definition at line 41 of file particles.h.

◆ particles [2/2]

ParticleData* ParticleSystem::particles

(parent) particles.

Definition at line 314 of file DNA_particle_types.h.

Referenced by basic_integrate(), BKE_brush_weight_get(), BKE_particle_system_blend_read_data(), BKE_particle_system_blend_write(), BKE_particlesystem_id_loop(), brush_add(), brush_puff(), collision_check(), copy_particle_edit(), createFacepa(), createTransParticleVerts(), deflect_emitter_iter(), deformVerts(), ParticleSystemManager::device_update_particles(), ObjectManager::device_update_transforms(), disconnect_hair(), distribute_grid(), do_path_effectors(), blender::io::alembic::ABCPointsWriter::do_write(), dynamic_paint_paint_particle_cell_point_cb_ex(), dynamicPaint_paintParticles(), dynamics_step_sph_classical_basic_integrate_task_cb_ex(), dynamics_step_sph_classical_calc_density_task_cb_ex(), dynamics_step_sph_classical_integrate_task_cb_ex(), dynamics_step_sph_ddr_task_cb_ex(), exec_distribute_parent(), explodeMesh(), flushTransParticles(), foreach_mouse_hit_key_iter(), free_keyed_keys(), free_unexisting_particles(), get_child_modifier_parameters(), get_effector_data(), hair_step(), init_particle(), init_particle_interpolation(), make_duplis_particle_system(), modifyMesh(), particle_batch_cache_ensure_edit_pos_and_seg(), particle_batch_cache_ensure_pos(), particle_calculate_parent_mcol(), particle_calculate_parent_uvs(), particle_skip(), particle_system_minmax(), particles_fluid_step(), pd_point_from_particle(), PE_apply_mirror(), PE_create_particle_edit(), PE_lasso_select(), PE_minmax(), PE_mirror_particle(), PE_mirror_x(), pe_update_hair_particle_edit_pointers(), PE_update_selection(), pointdensity_cache_psys(), psys_apply_hair_lattice(), psys_cache_edit_paths(), psys_check_boid_data(), psys_copy_particles(), psys_find_parents(), psys_free_particles(), psys_get_birth_coords(), psys_get_child_size(), psys_get_child_time(), psys_get_dupli_path_transform(), psys_get_dupli_texture(), psys_get_particle_on_path(), psys_get_particle_state(), psys_get_texture(), psys_thread_context_init_distribute(), psys_thread_create_path(), ptcache_particle_interpolate(), ptcache_particle_read(), ptcache_particle_totwrite(), ptcache_particle_write(), realloc_particles(), rekey_particle(), rekey_particle_to_time(), remap_hair_emitter(), remove_doubles_exec(), remove_tagged_keys(), remove_tagged_particles(), reset_all_particles(), reset_particle(), rule_avoid_collision(), rule_fight(), rule_flock(), rule_follow_leader(), rule_separate(), set_keyed_keys(), sph_density_accum_cb(), sph_force_cb(), sph_particle_courant(), sph_springs_modify(), sphclassical_density_accum_cb(), sphclassical_force_cb(), sphclassical_neighbor_accum_cb(), subdivide_particle(), blender::ed::curves::convert_to_particle_system::try_convert_single_object(), undoptcache_from_editcache(), undoptcache_to_editcache(), update_world_cos(), and weight_set_exec().

◆ pathcache

struct ParticleCacheKey** ParticleSystem::pathcache

◆ pathcachebufs

ListBase ParticleSystem::pathcachebufs

Buffers for the above.

Definition at line 328 of file DNA_particle_types.h.

Referenced by BKE_object_copy_particlesystem(), BKE_particle_system_blend_read_data(), and psys_free_path_cache().

◆ pdd

struct ParticleDrawData* ParticleSystem::pdd

◆ pointcache

struct PointCache* ParticleSystem::pointcache

◆ prev

struct ParticleSystem * ParticleSystem::prev

Definition at line 308 of file DNA_particle_types.h.

◆ ptcaches

struct ListBase ParticleSystem::ptcaches

◆ recalc

int ParticleSystem::recalc

◆ rt3

short ParticleSystem::rt3

Definition at line 366 of file DNA_particle_types.h.

◆ seed

int ParticleSystem::seed

◆ target_ob

struct Object* ParticleSystem::target_ob

◆ target_psys

short ParticleSystem::target_psys

Definition at line 358 of file DNA_particle_types.h.

◆ targets

struct ListBase ParticleSystem::targets

◆ tot_fluidsprings

int ParticleSystem::tot_fluidsprings

◆ totcached

int ParticleSystem::totcached

◆ totchild

int ParticleSystem::totchild

◆ totchildcache

int ParticleSystem::totchildcache

◆ totkeyed

short ParticleSystem::totkeyed

Definition at line 358 of file DNA_particle_types.h.

Referenced by psys_count_keyed_targets(), psys_reset(), and set_keyed_keys().

◆ totpart

int ParticleSystem::totpart

Definition at line 353 of file DNA_particle_types.h.

Referenced by BKE_particle_system_blend_read_data(), BKE_particle_system_blend_write(), blo_do_versions_pre250(), brush_add(), createFacepa(), distribute_particles_on_dm(), distribute_simple_children(), blender::io::alembic::ABCPointsWriter::do_write(), blender::io::usd::USDHairWriter::do_write(), dynamicPaint_paintParticles(), dynamics_step(), emit_particles(), ensure_seg_pt_count(), explodeMesh(), free_unexisting_particles(), get_effector_tot(), init_particle(), make_duplis_particle_system(), modifyMesh(), object_add_or_copy_particle_system(), particle_batch_cache_ensure_pos(), particle_batch_cache_ensure_pos_and_seg(), particle_batch_cache_ensure_procedural_indices(), particle_batch_cache_ensure_procedural_pos(), particle_batch_cache_ensure_procedural_strand_data(), particle_batch_cache_fill_segments(), particle_batch_cache_fill_strands_data(), particle_skip(), particle_system_minmax(), particle_system_update(), particles_fluid_step(), PE_create_particle_edit(), PE_mirror_x(), PE_update_mirror_cache(), pointdensity_cache_psys(), precalc_guides(), psys_apply_hair_lattice(), psys_check_boid_data(), psys_copy_particles(), psys_find_parents(), psys_free_particles(), psys_get_particle_on_path(), psys_get_particle_state(), psys_get_texture(), psys_get_tot_child(), psys_reset(), psys_thread_context_init_distribute(), psys_update_particle_tree(), psys_update_path_cache(), ptcache_particle_interpolate(), ptcache_particle_read(), ptcache_particle_totpoint(), ptcache_particle_totwrite(), realloc_particles(), remove_doubles_exec(), remove_tagged_particles(), reset_all_particles(), rule_follow_leader(), save_hair(), set_keyed_keys(), system_step(), blender::ed::curves::convert_to_particle_system::try_convert_single_object(), and undoptcache_to_editcache().

◆ totunexist

int ParticleSystem::totunexist

◆ tree

struct KDTree_3d* ParticleSystem::tree

◆ tree_frame

float ParticleSystem::tree_frame

Definition at line 351 of file DNA_particle_types.h.

Referenced by psys_update_particle_tree().

◆ vg_neg

short ParticleSystem::vg_neg

Definition at line 366 of file DNA_particle_types.h.

Referenced by psys_cache_vgroup().

◆ vgroup

short ParticleSystem::vgroup[13]

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