Blender V5.0
MOD_particleinstance.cc File Reference
#include "MEM_guardedalloc.h"
#include "BLI_color.hh"
#include "BLI_listbase.h"
#include "BLI_math_matrix.h"
#include "BLI_math_rotation.h"
#include "BLI_math_vector.h"
#include "BLI_rand.h"
#include "BLI_utildefines.h"
#include "BLT_translation.hh"
#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_screen_types.h"
#include "BKE_customdata.hh"
#include "BKE_lib_query.hh"
#include "BKE_mesh.hh"
#include "BKE_modifier.hh"
#include "BKE_particle.h"
#include "BKE_pointcache.h"
#include "UI_interface_layout.hh"
#include "UI_resources.hh"
#include "RNA_access.hh"
#include "RNA_prototypes.hh"
#include "DEG_depsgraph_build.hh"
#include "DEG_depsgraph_query.hh"
#include "MOD_ui_common.hh"

Go to the source code of this file.

Functions

static void init_data (ModifierData *md)
static void required_data_mask (ModifierData *md, CustomData_MeshMasks *r_cddata_masks)
static bool is_disabled (const Scene *scene, ModifierData *md, bool use_render_params)
static void update_depsgraph (ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
static void foreach_ID_link (ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
static bool particle_skip (ParticleInstanceModifierData *pimd, ParticleSystem *psys, int p)
static void store_float_in_vcol (blender::ColorGeometry4b *vcol, float float_value)
static Meshmodify_mesh (ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh)
static void panel_draw (const bContext *, Panel *panel)
static void path_panel_draw_header (const bContext *, Panel *panel)
static void path_panel_draw (const bContext *, Panel *panel)
static void layers_panel_draw (const bContext *, Panel *panel)
static void panel_register (ARegionType *region_type)

Variables

ModifierTypeInfo modifierType_ParticleInstance

Function Documentation

◆ foreach_ID_link()

void foreach_ID_link ( ModifierData * md,
Object * ob,
IDWalkFunc walk,
void * user_data )
static

Definition at line 120 of file MOD_particleinstance.cc.

References IDWALK_CB_NOP, and ParticleInstanceModifierData::ob.

◆ init_data()

void init_data ( ModifierData * md)
static

◆ is_disabled()

◆ layers_panel_draw()

void layers_panel_draw ( const bContext * ,
Panel * panel )
static

◆ modify_mesh()

Mesh * modify_mesh ( ModifierData * md,
const ModifierEvalContext * ctx,
Mesh * mesh )
static

Definition at line 188 of file MOD_particleinstance.cc.

References add_v3_v3(), angle(), ParticleInstanceModifierData::axis, axis_angle_to_quat(), BKE_mesh_new_nomain_from_template(), BLI_assert, BLI_findlink(), BLI_hash_frand(), bounds(), ParticleSystem::child, ParticleSettings::childtype, copy_m3_m4(), copy_qt_qt(), copy_v3_v3(), blender::bke::Corner, Mesh::corner_data, Mesh::corners_num, cross, cross_v3_v3v3(), CustomData_copy_data(), DEG_get_evaluated_scene(), ModifierEvalContext::depsgraph, ParticleSimulationData::depsgraph, Mesh::edge_data, Mesh::edges_num, eParticleInstanceFlag_Children, eParticleInstanceFlag_KeepShape, eParticleInstanceFlag_Parents, eParticleInstanceFlag_Path, eParticleInstanceFlag_UseSize, eParticleInstanceSpace_Local, eParticleInstanceSpace_World, eul_to_quat(), Mesh::face_data, Mesh::faces_num, blender::bke::SpanAttributeWriter< T >::finish(), ParticleInstanceModifierData::flag, ParticleSystem::flag, PointCache::flag, ParticleSettings::from, ParticleInstanceModifierData::index_layer_name, invert_m4_m4(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), M_PI, mat3_to_quat(), MEM_calloc_arrayN(), MEM_freeN(), MEM_SAFE_FREE, ParticleSystemModifierData::mesh_final, mul_m4_v3(), mul_qt_qtqt(), mul_qt_v3(), mul_v3_fl(), normalize_v3(), ParticleInstanceModifierData::ob, ParticleSimulationData::ob, ModifierEvalContext::object, ChildParticle::pa, ChildParticle::parent, ParticleSystem::part, PART_CHILD_FACES, particle_skip(), ParticleSystem::particles, Object::particlesystem, ParticleSystem::pointcache, ParticleInstanceModifierData::position, ParticleSimulationData::psmd, ParticleInstanceModifierData::psys, ParticleSimulationData::psys, psys_frand(), psys_get_child_size(), psys_get_modifier(), psys_get_particle_on_path(), psys_get_particle_state(), PSYS_HAIR_DONE, PSYS_KEYED, psys_mat_hair_to_global(), psys_sim_data_free(), psys_sim_data_init(), PTCACHE_BAKED, ParticleInstanceModifierData::random_position, ParticleInstanceModifierData::random_rotation, result, rot, ParticleInstanceModifierData::rotation, rotation_between_vecs_to_quat(), safe_acosf(), ParticleSimulationData::scene, ParticleSystem::seed, blender::IndexRange::size(), ParticleData::size, size(), ParticleInstanceModifierData::space, blender::bke::SpanAttributeWriter< T >::span, blender::IndexRange::start(), state, store_float_in_vcol(), ParticleSystem::totchild, ParticleSystem::totpart, Object::trackflag, unit_m4(), unit_qt(), ParticleInstanceModifierData::value_layer_name, Mesh::vert_data, and Mesh::verts_num.

◆ panel_draw()

◆ panel_register()

◆ particle_skip()

◆ path_panel_draw()

◆ path_panel_draw_header()

void path_panel_draw_header ( const bContext * ,
Panel * panel )
static

◆ required_data_mask()

◆ store_float_in_vcol()

◆ update_depsgraph()

Variable Documentation

◆ modifierType_ParticleInstance

ModifierTypeInfo modifierType_ParticleInstance

Definition at line 642 of file MOD_particleinstance.cc.