Files
test2/source/blender/editors/physics/physics_ops.cc
Eitan Traurig e859df1126 UI: Add "Remove All Particle Systems" operator to particle systems context menu
Adds an operator that clears entire list of particle system. Operator is located
in particle system context menu.

Pull Request: https://projects.blender.org/blender/blender/pulls/138464
2025-06-08 12:46:38 +02:00

191 lines
5.7 KiB
C++

/* SPDX-FileCopyrightText: 2009 Blender Authors
*
* SPDX-License-Identifier: GPL-2.0-or-later */
/** \file
* \ingroup edphys
*/
#include <cstdlib>
#include "DNA_space_types.h"
#include "WM_api.hh"
#include "ED_physics.hh"
#include "physics_intern.hh" /* own include */
/* -------------------------------------------------------------------- */
/** \name Particles
* \{ */
static void operatortypes_particle()
{
WM_operatortype_append(PARTICLE_OT_select_all);
WM_operatortype_append(PARTICLE_OT_select_roots);
WM_operatortype_append(PARTICLE_OT_select_tips);
WM_operatortype_append(PARTICLE_OT_select_random);
WM_operatortype_append(PARTICLE_OT_select_linked);
WM_operatortype_append(PARTICLE_OT_select_linked_pick);
WM_operatortype_append(PARTICLE_OT_select_less);
WM_operatortype_append(PARTICLE_OT_select_more);
WM_operatortype_append(PARTICLE_OT_hide);
WM_operatortype_append(PARTICLE_OT_reveal);
WM_operatortype_append(PARTICLE_OT_rekey);
WM_operatortype_append(PARTICLE_OT_subdivide);
WM_operatortype_append(PARTICLE_OT_remove_doubles);
WM_operatortype_append(PARTICLE_OT_weight_set);
WM_operatortype_append(PARTICLE_OT_delete);
WM_operatortype_append(PARTICLE_OT_mirror);
WM_operatortype_append(PARTICLE_OT_brush_edit);
WM_operatortype_append(PARTICLE_OT_shape_cut);
WM_operatortype_append(PARTICLE_OT_particle_edit_toggle);
WM_operatortype_append(PARTICLE_OT_edited_clear);
WM_operatortype_append(PARTICLE_OT_unify_length);
WM_operatortype_append(OBJECT_OT_particle_system_add);
WM_operatortype_append(OBJECT_OT_particle_system_remove);
WM_operatortype_append(PARTICLE_OT_new);
WM_operatortype_append(PARTICLE_OT_new_target);
WM_operatortype_append(PARTICLE_OT_target_remove);
WM_operatortype_append(PARTICLE_OT_target_move_up);
WM_operatortype_append(PARTICLE_OT_target_move_down);
WM_operatortype_append(PARTICLE_OT_connect_hair);
WM_operatortype_append(PARTICLE_OT_disconnect_hair);
WM_operatortype_append(PARTICLE_OT_copy_particle_systems);
WM_operatortype_append(PARTICLE_OT_duplicate_particle_system);
WM_operatortype_append(PARTICLE_OT_particle_system_remove_all);
WM_operatortype_append(PARTICLE_OT_dupliob_refresh);
WM_operatortype_append(PARTICLE_OT_dupliob_copy);
WM_operatortype_append(PARTICLE_OT_dupliob_remove);
WM_operatortype_append(PARTICLE_OT_dupliob_move_up);
WM_operatortype_append(PARTICLE_OT_dupliob_move_down);
WM_operatortype_append(RIGIDBODY_OT_object_add);
WM_operatortype_append(RIGIDBODY_OT_object_remove);
WM_operatortype_append(RIGIDBODY_OT_objects_add);
WM_operatortype_append(RIGIDBODY_OT_objects_remove);
WM_operatortype_append(RIGIDBODY_OT_shape_change);
WM_operatortype_append(RIGIDBODY_OT_mass_calculate);
WM_operatortype_append(RIGIDBODY_OT_constraint_add);
WM_operatortype_append(RIGIDBODY_OT_constraint_remove);
WM_operatortype_append(RIGIDBODY_OT_world_add);
WM_operatortype_append(RIGIDBODY_OT_world_remove);
// WM_operatortype_append(RIGIDBODY_OT_world_export);
}
static void keymap_particle(wmKeyConfig *keyconf)
{
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Particle", SPACE_EMPTY, RGN_TYPE_WINDOW);
keymap->poll = PE_poll;
}
/** \} */
/* -------------------------------------------------------------------- */
/** \name Boids
* \{ */
static void operatortypes_boids()
{
WM_operatortype_append(BOID_OT_rule_add);
WM_operatortype_append(BOID_OT_rule_del);
WM_operatortype_append(BOID_OT_rule_move_up);
WM_operatortype_append(BOID_OT_rule_move_down);
WM_operatortype_append(BOID_OT_state_add);
WM_operatortype_append(BOID_OT_state_del);
WM_operatortype_append(BOID_OT_state_move_up);
WM_operatortype_append(BOID_OT_state_move_down);
}
/** \} */
/* -------------------------------------------------------------------- */
/** \name Fluid
* \{ */
static void operatortypes_fluid()
{
WM_operatortype_append(FLUID_OT_bake_all);
WM_operatortype_append(FLUID_OT_free_all);
WM_operatortype_append(FLUID_OT_bake_data);
WM_operatortype_append(FLUID_OT_free_data);
WM_operatortype_append(FLUID_OT_bake_noise);
WM_operatortype_append(FLUID_OT_free_noise);
WM_operatortype_append(FLUID_OT_bake_mesh);
WM_operatortype_append(FLUID_OT_free_mesh);
WM_operatortype_append(FLUID_OT_bake_particles);
WM_operatortype_append(FLUID_OT_free_particles);
WM_operatortype_append(FLUID_OT_bake_guides);
WM_operatortype_append(FLUID_OT_free_guides);
WM_operatortype_append(FLUID_OT_pause_bake);
}
/** \} */
/* -------------------------------------------------------------------- */
/** \name Point Cache
* \{ */
static void operatortypes_pointcache()
{
WM_operatortype_append(PTCACHE_OT_bake_all);
WM_operatortype_append(PTCACHE_OT_free_bake_all);
WM_operatortype_append(PTCACHE_OT_bake);
WM_operatortype_append(PTCACHE_OT_free_bake);
WM_operatortype_append(PTCACHE_OT_bake_from_cache);
WM_operatortype_append(PTCACHE_OT_add);
WM_operatortype_append(PTCACHE_OT_remove);
}
/** \} */
/* -------------------------------------------------------------------- */
/** \name Dynamic Paint
* \{ */
static void operatortypes_dynamicpaint()
{
WM_operatortype_append(DPAINT_OT_bake);
WM_operatortype_append(DPAINT_OT_surface_slot_add);
WM_operatortype_append(DPAINT_OT_surface_slot_remove);
WM_operatortype_append(DPAINT_OT_type_toggle);
WM_operatortype_append(DPAINT_OT_output_toggle);
}
/** \} */
/* -------------------------------------------------------------------- */
/** \name Registration
* \{ */
void ED_operatortypes_physics()
{
operatortypes_particle();
operatortypes_boids();
operatortypes_fluid();
operatortypes_pointcache();
operatortypes_dynamicpaint();
}
void ED_keymap_physics(wmKeyConfig *keyconf)
{
keymap_particle(keyconf);
}
/** \} */