33 #include "RNA_prototypes.h"
103 float (*vertexCos)[3],
121 if (mesh_src ==
nullptr) {
123 ctx->
object,
nullptr,
nullptr, vertexCos, verts_num,
false,
true);
124 if (mesh_src ==
nullptr) {
130 bool had_mesh_final = (psmd->
mesh_final !=
nullptr);
169 Mesh *mesh_original =
nullptr;
184 mesh_original = mesh_src;
238 float (*vertexCos)[3],
241 const bool do_temp_mesh = (
mesh ==
nullptr);
266 uiItemL(layout,
TIP_(
"Settings are in the particle tab"), ICON_NONE);
273 "OBJECT_OT_duplicates_make_real");
279 "OBJECT_OT_modifier_convert");
304 N_(
"ParticleSystem"),
305 "ParticleSystemModifierData",
307 &RNA_ParticleSystemModifier,
BMEditMesh * BKE_editmesh_from_object(struct Object *ob)
Return the BMEditMesh for a given object.
void * BKE_id_new_nomain(short type, const char *name)
void BKE_id_free(struct Main *bmain, void *idv)
struct Mesh * BKE_mesh_copy_for_eval(const struct Mesh *source, bool reference)
void BKE_mesh_vert_coords_apply(struct Mesh *mesh, const float(*vert_coords)[3])
struct Mesh * BKE_mesh_from_bmesh_for_eval_nomain(struct BMesh *bm, const struct CustomData_MeshMasks *cd_mask_extra, const struct Mesh *me_settings)
void BKE_mesh_tessface_ensure(struct Mesh *mesh)
@ eModifierTypeFlag_UsesPointCache
@ eModifierTypeFlag_SupportsMapping
@ eModifierTypeFlag_EnableInEditmode
@ eModifierTypeFlag_SupportsEditmode
@ eModifierTypeFlag_AcceptsMesh
void BKE_modifier_copydata_generic(const struct ModifierData *md, struct ModifierData *md_dst, int flag)
@ eModifierTypeType_OnlyDeform
struct ModifierData * BKE_modifiers_findby_name(const struct Object *ob, const char *name)
bool psys_check_enabled(struct Object *ob, struct ParticleSystem *psys, bool use_render_params)
void psys_emitter_customdata_mask(struct ParticleSystem *psys, struct CustomData_MeshMasks *r_cddata_masks)
void particle_system_update(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, struct ParticleSystem *psys, bool use_render_params)
#define MEMCMP_STRUCT_AFTER_IS_ZERO(struct_var, member)
#define MEMCPY_STRUCT_AFTER(struct_dst, struct_src, member)
#define BLO_read_data_address(reader, ptr_p)
#define CTX_IFACE_(context, msgid)
#define BLT_I18NCONTEXT_OPERATOR_DEFAULT
bool DEG_is_active(const struct Depsgraph *depsgraph)
struct Object * DEG_get_original_object(struct Object *object)
struct Scene * DEG_get_evaluated_scene(const struct Depsgraph *graph)
#define DNA_struct_default_get(struct_name)
@ eParticleSystemFlag_psys_updated
@ eParticleSystemFlag_file_loaded
struct ParticleSystemModifierData ParticleSystemModifierData
@ eModifierType_ParticleSystem
static void deformVertsEM(ModifierData *md, const ModifierEvalContext *ctx, struct BMEditMesh *em, Mesh *mesh, float(*vertexCos)[3], int verts_num)
static void copyData(const ModifierData *md, ModifierData *target, const int flag)
static void deformVerts(ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh, float(*vertexCos)[3], int verts_num)
ModifierTypeInfo modifierType_ParticleSystem
static void blendRead(BlendDataReader *reader, ModifierData *md)
static void panel_draw(const bContext *UNUSED(C), Panel *panel)
static void initData(ModifierData *md)
static void panelRegister(ARegionType *region_type)
static void freeData(ModifierData *md)
static void requiredDataMask(Object *UNUSED(ob), ModifierData *md, CustomData_MeshMasks *r_cddata_masks)
PointerRNA * modifier_panel_get_property_pointers(Panel *panel, PointerRNA *r_ob_ptr)
void modifier_panel_end(uiLayout *layout, PointerRNA *ptr)
PanelType * modifier_panel_register(ARegionType *region_type, ModifierType type, PanelDrawFn draw)
Mesh * MOD_deform_mesh_eval_get(Object *ob, struct BMEditMesh *em, Mesh *mesh, const float(*vertexCos)[3], const int verts_num, const bool use_normals, const bool use_orco)
void uiItemL(uiLayout *layout, const char *name, int icon)
void uiItemO(uiLayout *layout, const char *name, int icon, const char *opname)
void BM_mesh_bm_to_me(Main *bmain, BMesh *bm, Mesh *me, const struct BMeshToMeshParams *params)
struct Depsgraph * depsgraph
struct ParticleSystem * psys
struct Mesh * mesh_original