Blender V4.3
MOD_particleinstance.cc File Reference
#include "MEM_guardedalloc.h"
#include "BLI_utildefines.h"
#include "BLI_listbase.h"
#include "BLI_math_matrix.h"
#include "BLI_math_rotation.h"
#include "BLI_math_vector.h"
#include "BLI_rand.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.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 (MLoopCol *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()

static 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()

static void init_data ( ModifierData * md)
static

◆ is_disabled()

◆ layers_panel_draw()

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

◆ modify_mesh()

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

Definition at line 188 of file MOD_particleinstance.cc.

References add_v3_v3(), ParticleInstanceModifierData::axis, axis_angle_to_quat(), BKE_mesh_new_nomain_from_template(), BLI_assert, BLI_findlink(), BLI_hash_frand(), bounds(), CD_PROP_BYTE_COLOR, ParticleSystem::child, ParticleSettings::childtype, copy_m3_m4(), copy_qt_qt(), copy_v3_v3(), cross(), cross_v3_v3v3(), CustomData_copy_data(), CustomData_get_layer_named_for_write(), DEG_get_evaluated_scene(), ModifierEvalContext::depsgraph, ParticleSimulationData::depsgraph, eParticleInstanceFlag_Children, eParticleInstanceFlag_KeepShape, eParticleInstanceFlag_Parents, eParticleInstanceFlag_Path, eParticleInstanceFlag_UseSize, eParticleInstanceSpace_Local, eParticleInstanceSpace_World, eul_to_quat(), ParticleInstanceModifierData::flag, ParticleSystem::flag, PointCache::flag, ParticleSettings::from, ParticleInstanceModifierData::index_layer_name, invert_m4_m4(), M_PI, mat3_to_quat(), MEM_calloc_arrayN, MEM_freeN(), MEM_SAFE_FREE, mesh, 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, scene, ParticleSystem::seed, blender::IndexRange::size(), ParticleInstanceModifierData::space, blender::IndexRange::start(), state, store_float_in_vcol(), ParticleSystem::totchild, ParticleSystem::totpart, Object::trackflag, unit_m4(), unit_qt(), and ParticleInstanceModifierData::value_layer_name.

◆ panel_draw()

◆ panel_register()

◆ particle_skip()

◆ path_panel_draw()

◆ path_panel_draw_header()

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

◆ required_data_mask()

◆ store_float_in_vcol()

static void store_float_in_vcol ( MLoopCol * vcol,
float float_value )
static

Definition at line 181 of file MOD_particleinstance.cc.

References MLoopCol::a, MLoopCol::b, MLoopCol::g, MLoopCol::r, and unit_float_to_uchar_clamp.

Referenced by modify_mesh().

◆ update_depsgraph()

Variable Documentation

◆ modifierType_ParticleInstance

ModifierTypeInfo modifierType_ParticleInstance

Definition at line 633 of file MOD_particleinstance.cc.