Blender  V3.3
mball_edit.c File Reference
#include <math.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_kdtree.h"
#include "BLI_math.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.h"
#include "RNA_define.h"
#include "BKE_context.h"
#include "BKE_layer.h"
#include "BKE_mball.h"
#include "BKE_object.h"
#include "DEG_depsgraph.h"
#include "GPU_select.h"
#include "ED_mball.h"
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_select_utils.h"
#include "ED_view3d.h"
#include "WM_api.h"
#include "WM_types.h"
#include "mball_intern.h"

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 *UNUSED(obedit))
 
Selection
bool ED_mball_deselect_all_multi (bContext *C)
 
Add Meta Primitive Utility
MetaElemED_mball_add_primitive (bContext *UNUSED(C), 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 (struct wmOperatorType *ot)
 
Duplicate Meta-Ball Operator
static int duplicate_metaelems_exec (bContext *C, wmOperator *UNUSED(op))
 
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 *UNUSED(op))
 
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 (Base **bases, uint bases_len, 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 struct 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 204 of file mball_edit.c.

Function Documentation

◆ delete_metaelems_exec()

static int delete_metaelems_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ duplicate_metaelems_exec()

static int duplicate_metaelems_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ ED_mball_add_primitive()

MetaElem* ED_mball_add_primitive ( bContext UNUSEDC,
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 ( Base **  bases,
uint  bases_len,
const uint  select_id,
MetaElem **  r_ml 
)

◆ ED_mball_deselect_all_multi()

bool ED_mball_deselect_all_multi ( bContext C)

◆ ED_mball_editmball_free()

void ED_mball_editmball_free ( struct Object obedit)

This function is used to free all MetaElems from MetaBall.

Definition at line 51 of file mball_edit.c.

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

Referenced by ED_object_editmode_load_free_ex().

◆ ED_mball_editmball_load()

void ED_mball_editmball_load ( Object UNUSEDobedit)

Definition at line 76 of file mball_edit.c.

◆ ED_mball_editmball_make()

void ED_mball_editmball_make ( struct Object obedit)

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

Definition at line 59 of file mball_edit.c.

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

Referenced by ED_object_editmode_enter_ex().

◆ ed_mball_findnearest_metaelem()

static bool ed_mball_findnearest_metaelem ( bContext C,
const int  mval[2],
bool  use_cycle,
Base **  r_base,
MetaElem **  r_ml,
uint r_selmask 
)
static

◆ ED_mball_select_pick()

bool ED_mball_select_pick ( struct bContext C,
const int  mval[2],
const struct SelectPick_Params params 
)

◆ hide_metaelems_exec()

static int hide_metaelems_exec ( bContext C,
wmOperator op 
)
static

◆ MBALL_OT_delete_metaelems()

void MBALL_OT_delete_metaelems ( wmOperatorType ot)

◆ MBALL_OT_duplicate_metaelems()

void MBALL_OT_duplicate_metaelems ( wmOperatorType ot)

◆ MBALL_OT_hide_metaelems()

void MBALL_OT_hide_metaelems ( wmOperatorType ot)

◆ MBALL_OT_reveal_metaelems()

void MBALL_OT_reveal_metaelems ( wmOperatorType ot)

◆ MBALL_OT_select_all()

void MBALL_OT_select_all ( wmOperatorType ot)

◆ MBALL_OT_select_random_metaelems()

void MBALL_OT_select_random_metaelems ( struct wmOperatorType ot)

◆ MBALL_OT_select_similar()

void MBALL_OT_select_similar ( wmOperatorType ot)

◆ mball_select_all_exec()

static int mball_select_all_exec ( bContext C,
wmOperator op 
)
static

◆ mball_select_similar_exec()

static int mball_select_similar_exec ( bContext C,
wmOperator op 
)
static

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

static int reveal_metaelems_exec ( bContext C,
wmOperator op 
)
static

◆ select_random_metaelems_exec()

static int select_random_metaelems_exec ( bContext C,
wmOperator op 
)
static

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, NULL, 0, NULL, NULL},
}
@ SIMMBALL_STIFFNESS
Definition: mball_edit.c:207
@ SIMMBALL_TYPE
Definition: mball_edit.c:205
@ SIMMBALL_RADIUS
Definition: mball_edit.c:206
@ SIMMBALL_ROTATION
Definition: mball_edit.c:208

Definition at line 211 of file mball_edit.c.

Referenced by MBALL_OT_select_similar().