Blender V4.3
mball_edit.cc File Reference
#include <cmath>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_kdtree.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 "DNA_defs.h"
#include "DNA_meta_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "RNA_access.hh"
#include "RNA_define.hh"
#include "BKE_context.hh"
#include "BKE_layer.hh"
#include "BKE_mball.hh"
#include "BKE_object.hh"
#include "BKE_object_types.hh"
#include "BLT_translation.hh"
#include "DEG_depsgraph.hh"
#include "GPU_select.hh"
#include "ED_mball.hh"
#include "ED_object.hh"
#include "ED_screen.hh"
#include "ED_select_utils.hh"
#include "ED_view3d.hh"
#include "WM_api.hh"
#include "WM_types.hh"
#include "UI_interface_icons.hh"
#include "mball_intern.hh"

Go to the source code of this file.

Functions

Edit Mode Functions
void ED_mball_editmball_free (Object *obedit)
 
void ED_mball_editmball_make (Object *obedit)
 
void ED_mball_editmball_load (Object *)
 
Selection
bool ED_mball_deselect_all_multi (bContext *C)
 
Add Meta Primitive Utility
MetaElemED_mball_add_primitive (bContext *, Object *obedit, bool obedit_is_new, float mat[4][4], float dia, int type)
 
Select/Deselect Operator
static int mball_select_all_exec (bContext *C, wmOperator *op)
 
void MBALL_OT_select_all (wmOperatorType *ot)
 
Select Random Operator
static int select_random_metaelems_exec (bContext *C, wmOperator *op)
 
void MBALL_OT_select_random_metaelems (wmOperatorType *ot)
 
Duplicate Meta-Ball Operator
static int duplicate_metaelems_exec (bContext *C, wmOperator *)
 
void MBALL_OT_duplicate_metaelems (wmOperatorType *ot)
 
Delete Meta-Ball Operator

Delete all selected MetaElems (not MetaBall).

static int delete_metaelems_exec (bContext *C, wmOperator *)
 
static int delete_metaelems_invoke (bContext *C, wmOperator *op, const wmEvent *)
 
void MBALL_OT_delete_metaelems (wmOperatorType *ot)
 
Hide Meta-Elements Operator
static int hide_metaelems_exec (bContext *C, wmOperator *op)
 
void MBALL_OT_hide_metaelems (wmOperatorType *ot)
 
Un-Hide Meta-Elements Operator
static int reveal_metaelems_exec (bContext *C, wmOperator *op)
 
void MBALL_OT_reveal_metaelems (wmOperatorType *ot)
 
Select Pick Utility
BaseED_mball_base_and_elem_from_select_buffer (const Span< Base * > bases, const uint select_id, MetaElem **r_ml)
 
static bool ed_mball_findnearest_metaelem (bContext *C, const int mval[2], bool use_cycle, Base **r_base, MetaElem **r_ml, uint *r_selmask)
 
bool ED_mball_select_pick (bContext *C, const int mval[2], const SelectPick_Params *params)
 

Select Similar Operator

enum  { SIMMBALL_TYPE = 1 , SIMMBALL_RADIUS , SIMMBALL_STIFFNESS , SIMMBALL_ROTATION }
 
static const EnumPropertyItem prop_similar_types []
 
static void mball_select_similar_type_get (Object *obedit, MetaBall *mb, int type, KDTree_1d *tree_1d, KDTree_3d *tree_3d)
 
static bool mball_select_similar_type (Object *obedit, MetaBall *mb, int type, const KDTree_1d *tree_1d, const KDTree_3d *tree_3d, const float thresh)
 
static int mball_select_similar_exec (bContext *C, wmOperator *op)
 
void MBALL_OT_select_similar (wmOperatorType *ot)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
SIMMBALL_TYPE 
SIMMBALL_RADIUS 
SIMMBALL_STIFFNESS 
SIMMBALL_ROTATION 

Definition at line 207 of file mball_edit.cc.

Function Documentation

◆ delete_metaelems_exec()

◆ delete_metaelems_invoke()

static int delete_metaelems_invoke ( bContext * C,
wmOperator * op,
const wmEvent *  )
static

◆ duplicate_metaelems_exec()

◆ ED_mball_add_primitive()

MetaElem * ED_mball_add_primitive ( bContext * C,
Object * obedit,
bool obedit_is_new,
float mat[4][4],
float dia,
int type )

◆ ED_mball_base_and_elem_from_select_buffer()

Base * ED_mball_base_and_elem_from_select_buffer ( const Span< Base * > bases,
const uint select_id,
MetaElem ** r_ml )

Definition at line 747 of file mball_edit.cc.

References BLI_findlink(), Object::data, MetaBall::editelems, and Base::object.

Referenced by ed_mball_findnearest_metaelem().

◆ ED_mball_deselect_all_multi()

◆ ED_mball_editmball_free()

void ED_mball_editmball_free ( Object * obedit)

This function is used to free all MetaElems from MetaBall.

Definition at line 62 of file mball_edit.cc.

References Object::data, MetaBall::editelems, and MetaBall::lastelem.

Referenced by blender::ed::object::editmode_load_free_ex().

◆ ED_mball_editmball_load()

void ED_mball_editmball_load ( Object * obedit)

This function is called, when MetaBall Object switched from edit mode to object mode. List of MetaElements is copied from object->data->edit_elems to object->data->elems.

Definition at line 87 of file mball_edit.cc.

Referenced by blender::ed::object::editmode_load_free_ex().

◆ ED_mball_editmball_make()

void ED_mball_editmball_make ( Object * obedit)

This function is called, when MetaBall Object is switched from object mode to edit mode.

Definition at line 70 of file mball_edit.cc.

References Object::data, MetaBall::editelems, MetaBall::elems, ListBase::first, MetaElem::flag, MetaBall::lastelem, MetaElem::next, and SELECT.

Referenced by blender::ed::object::editmode_enter_ex().

◆ ed_mball_findnearest_metaelem()

◆ ED_mball_select_pick()

◆ hide_metaelems_exec()

◆ MBALL_OT_delete_metaelems()

◆ MBALL_OT_duplicate_metaelems()

◆ MBALL_OT_hide_metaelems()

◆ MBALL_OT_reveal_metaelems()

◆ MBALL_OT_select_all()

◆ MBALL_OT_select_random_metaelems()

◆ MBALL_OT_select_similar()

◆ mball_select_all_exec()

◆ mball_select_similar_exec()

◆ mball_select_similar_type()

static bool mball_select_similar_type ( Object * obedit,
MetaBall * mb,
int type,
const KDTree_1d * tree_1d,
const KDTree_3d * tree_3d,
const float thresh )
static

◆ mball_select_similar_type_get()

static void mball_select_similar_type_get ( Object * obedit,
MetaBall * mb,
int type,
KDTree_1d * tree_1d,
KDTree_3d * tree_3d )
static

◆ reveal_metaelems_exec()

◆ select_random_metaelems_exec()

Variable Documentation

◆ prop_similar_types

const EnumPropertyItem prop_similar_types[]
static
Initial value:
= {
{SIMMBALL_TYPE, "TYPE", 0, "Type", ""},
{SIMMBALL_RADIUS, "RADIUS", 0, "Radius", ""},
{SIMMBALL_STIFFNESS, "STIFFNESS", 0, "Stiffness", ""},
{SIMMBALL_ROTATION, "ROTATION", 0, "Rotation", ""},
{0, nullptr, 0, nullptr, nullptr},
}
@ SIMMBALL_STIFFNESS
@ SIMMBALL_TYPE
@ SIMMBALL_RADIUS
@ SIMMBALL_ROTATION

Definition at line 214 of file mball_edit.cc.

Referenced by MBALL_OT_select_similar().