Blender  V3.3
Classes
armature_edit.c File Reference
#include "DNA_armature_types.h"
#include "DNA_constraint_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "MEM_guardedalloc.h"
#include "BLT_translation.h"
#include "BLI_blenlib.h"
#include "BLI_ghash.h"
#include "BLI_math.h"
#include "BKE_action.h"
#include "BKE_armature.h"
#include "BKE_constraint.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_layer.h"
#include "BKE_main.h"
#include "BKE_object.h"
#include "BKE_report.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
#include "ED_armature.h"
#include "ED_outliner.h"
#include "ED_screen.h"
#include "ED_view3d.h"
#include "DEG_depsgraph.h"
#include "armature_intern.h"

Go to the source code of this file.

Classes

struct  EditBonePoint
 

Functions

Object Tools Public API
void ED_armature_edit_transform (bArmature *arm, const float mat[4][4], const bool do_props)
 
void ED_armature_transform (bArmature *arm, const float mat[4][4], const bool do_props)
 
void ED_armature_origin_set (Main *bmain, Object *ob, const float cursor[3], int centermode, int around)
 
Fill Operator
static void fill_add_joint (EditBone *ebo, short eb_tail, ListBase *points)
 
static int armature_fill_bones_exec (bContext *C, wmOperator *op)
 
void ARMATURE_OT_fill (wmOperatorType *ot)
 
Switch Direction Operator

Currently, this does not use context loops, as context loops do not make it easy to retrieve any hierarchical/chain relationships which are necessary for this to be done easily.

static void armature_clear_swap_done_flags (bArmature *arm)
 
static int armature_switch_direction_exec (bContext *C, wmOperator *UNUSED(op))
 
void ARMATURE_OT_switch_direction (wmOperatorType *ot)
 
Align Operator
static void fix_connected_bone (EditBone *ebone)
 
static void fix_editbone_connected_children (ListBase *edbo, EditBone *ebone)
 
static void bone_align_to_bone (ListBase *edbo, EditBone *selbone, EditBone *actbone)
 
static int armature_align_bones_exec (bContext *C, wmOperator *op)
 
void ARMATURE_OT_align (wmOperatorType *ot)
 
Split Operator
static int armature_split_exec (bContext *C, wmOperator *UNUSED(op))
 
void ARMATURE_OT_split (wmOperatorType *ot)
 
Delete Operator
static bool armature_delete_ebone_cb (const char *bone_name, void *arm_p)
 
static int armature_delete_selected_exec (bContext *C, wmOperator *UNUSED(op))
 
void ARMATURE_OT_delete (wmOperatorType *ot)
 
static bool armature_dissolve_ebone_cb (const char *bone_name, void *arm_p)
 
static int armature_dissolve_selected_exec (bContext *C, wmOperator *UNUSED(op))
 
void ARMATURE_OT_dissolve (wmOperatorType *ot)
 
Hide Operator
static int armature_hide_exec (bContext *C, wmOperator *op)
 
void ARMATURE_OT_hide (wmOperatorType *ot)
 
Reveal Operator
static int armature_reveal_exec (bContext *C, wmOperator *op)
 
void ARMATURE_OT_reveal (wmOperatorType *ot)
 

Bone Roll Calculate Operator

enum  eCalcRollTypes {
  CALC_ROLL_POS_X = 0 , CALC_ROLL_POS_Y , CALC_ROLL_POS_Z , CALC_ROLL_TAN_POS_X ,
  CALC_ROLL_TAN_POS_Z , CALC_ROLL_NEG_X , CALC_ROLL_NEG_Y , CALC_ROLL_NEG_Z ,
  CALC_ROLL_TAN_NEG_X , CALC_ROLL_TAN_NEG_Z , CALC_ROLL_ACTIVE , CALC_ROLL_VIEW ,
  CALC_ROLL_CURSOR
}
 
typedef enum eCalcRollTypes eCalcRollTypes
 
static const EnumPropertyItem prop_calc_roll_types []
 
float ED_armature_ebone_roll_to_vector (const EditBone *bone, const float align_axis[3], const bool axis_only)
 
static int armature_calc_roll_exec (bContext *C, wmOperator *op)
 
void ARMATURE_OT_calculate_roll (wmOperatorType *ot)
 
static int armature_roll_clear_exec (bContext *C, wmOperator *op)
 
void ARMATURE_OT_roll_clear (wmOperatorType *ot)
 

Chain-Based Tool Utilities

typedef struct EditBonePoint EditBonePoint
 
static void chains_find_tips (ListBase *edbo, ListBase *list)
 

Detailed Description

Armature EditMode tools - transforms, chain based editing, and other settings.

Definition in file armature_edit.c.

Typedef Documentation

◆ eCalcRollTypes

◆ EditBonePoint

typedef struct EditBonePoint EditBonePoint

Enumeration Type Documentation

◆ eCalcRollTypes

Enumerator
CALC_ROLL_POS_X 
CALC_ROLL_POS_Y 
CALC_ROLL_POS_Z 
CALC_ROLL_TAN_POS_X 
CALC_ROLL_TAN_POS_Z 
CALC_ROLL_NEG_X 
CALC_ROLL_NEG_Y 
CALC_ROLL_NEG_Z 
CALC_ROLL_TAN_NEG_X 
CALC_ROLL_TAN_NEG_Z 
CALC_ROLL_ACTIVE 
CALC_ROLL_VIEW 
CALC_ROLL_CURSOR 

Definition at line 208 of file armature_edit.c.

Function Documentation

◆ armature_align_bones_exec()

static int armature_align_bones_exec ( bContext C,
wmOperator op 
)
static

◆ armature_calc_roll_exec()

static int armature_calc_roll_exec ( bContext C,
wmOperator op 
)
static

◆ armature_clear_swap_done_flags()

static void armature_clear_swap_done_flags ( bArmature arm)
static

◆ armature_delete_ebone_cb()

static bool armature_delete_ebone_cb ( const char *  bone_name,
void arm_p 
)
static

◆ armature_delete_selected_exec()

static int armature_delete_selected_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ armature_dissolve_ebone_cb()

static bool armature_dissolve_ebone_cb ( const char *  bone_name,
void arm_p 
)
static

◆ armature_dissolve_selected_exec()

static int armature_dissolve_selected_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ armature_fill_bones_exec()

static int armature_fill_bones_exec ( bContext C,
wmOperator op 
)
static

◆ armature_hide_exec()

static int armature_hide_exec ( bContext C,
wmOperator op 
)
static

◆ ARMATURE_OT_align()

void ARMATURE_OT_align ( wmOperatorType ot)

◆ ARMATURE_OT_calculate_roll()

void ARMATURE_OT_calculate_roll ( wmOperatorType ot)

◆ ARMATURE_OT_delete()

void ARMATURE_OT_delete ( wmOperatorType ot)

◆ ARMATURE_OT_dissolve()

void ARMATURE_OT_dissolve ( wmOperatorType ot)

◆ ARMATURE_OT_fill()

void ARMATURE_OT_fill ( wmOperatorType ot)

◆ ARMATURE_OT_hide()

void ARMATURE_OT_hide ( wmOperatorType ot)

◆ ARMATURE_OT_reveal()

void ARMATURE_OT_reveal ( wmOperatorType ot)

◆ ARMATURE_OT_roll_clear()

void ARMATURE_OT_roll_clear ( wmOperatorType ot)

◆ ARMATURE_OT_split()

void ARMATURE_OT_split ( wmOperatorType ot)

◆ ARMATURE_OT_switch_direction()

void ARMATURE_OT_switch_direction ( wmOperatorType ot)

◆ armature_reveal_exec()

static int armature_reveal_exec ( bContext C,
wmOperator op 
)
static

◆ armature_roll_clear_exec()

static int armature_roll_clear_exec ( bContext C,
wmOperator op 
)
static

◆ armature_split_exec()

static int armature_split_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ armature_switch_direction_exec()

static int armature_switch_direction_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ bone_align_to_bone()

static void bone_align_to_bone ( ListBase edbo,
EditBone selbone,
EditBone actbone 
)
static

◆ chains_find_tips()

static void chains_find_tips ( ListBase edbo,
ListBase list 
)
static

◆ ED_armature_ebone_roll_to_vector()

float ED_armature_ebone_roll_to_vector ( const EditBone bone,
const float  align_axis[3],
const bool  axis_only 
)

◆ ED_armature_edit_transform()

void ED_armature_edit_transform ( struct bArmature arm,
const float  mat[4][4],
bool  do_props 
)

◆ ED_armature_origin_set()

void ED_armature_origin_set ( struct Main bmain,
struct Object ob,
const float  cursor[3],
int  centermode,
int  around 
)

◆ ED_armature_transform()

void ED_armature_transform ( bArmature arm,
const float  mat[4][4],
const bool  do_props 
)

◆ fill_add_joint()

static void fill_add_joint ( EditBone ebo,
short  eb_tail,
ListBase points 
)
static

◆ fix_connected_bone()

static void fix_connected_bone ( EditBone ebone)
static

◆ fix_editbone_connected_children()

static void fix_editbone_connected_children ( ListBase edbo,
EditBone ebone 
)
static

Variable Documentation

◆ prop_calc_roll_types

const EnumPropertyItem prop_calc_roll_types[]
static
Initial value:
= {
RNA_ENUM_ITEM_HEADING(N_("Positive"), NULL),
{CALC_ROLL_TAN_POS_X, "POS_X", 0, "Local +X Tangent", ""},
{CALC_ROLL_TAN_POS_Z, "POS_Z", 0, "Local +Z Tangent", ""},
{CALC_ROLL_POS_X, "GLOBAL_POS_X", 0, "Global +X Axis", ""},
{CALC_ROLL_POS_Y, "GLOBAL_POS_Y", 0, "Global +Y Axis", ""},
{CALC_ROLL_POS_Z, "GLOBAL_POS_Z", 0, "Global +Z Axis", ""},
RNA_ENUM_ITEM_HEADING(N_("Negative"), NULL),
{CALC_ROLL_TAN_NEG_X, "NEG_X", 0, "Local -X Tangent", ""},
{CALC_ROLL_TAN_NEG_Z, "NEG_Z", 0, "Local -Z Tangent", ""},
{CALC_ROLL_NEG_X, "GLOBAL_NEG_X", 0, "Global -X Axis", ""},
{CALC_ROLL_NEG_Y, "GLOBAL_NEG_Y", 0, "Global -Y Axis", ""},
{CALC_ROLL_NEG_Z, "GLOBAL_NEG_Z", 0, "Global -Z Axis", ""},
{CALC_ROLL_ACTIVE, "ACTIVE", 0, "Active Bone", ""},
{CALC_ROLL_VIEW, "VIEW", 0, "View Axis", ""},
{CALC_ROLL_CURSOR, "CURSOR", 0, "Cursor", ""},
{0, NULL, 0, NULL, NULL},
}
#define RNA_ENUM_ITEM_HEADING(name, description)
Definition: RNA_types.h:477
@ CALC_ROLL_POS_Z
@ CALC_ROLL_VIEW
@ CALC_ROLL_NEG_Y
@ CALC_ROLL_TAN_NEG_Z
@ CALC_ROLL_CURSOR
@ CALC_ROLL_POS_Y
@ CALC_ROLL_NEG_Z
@ CALC_ROLL_TAN_NEG_X
@ CALC_ROLL_TAN_POS_X
@ CALC_ROLL_POS_X
@ CALC_ROLL_TAN_POS_Z
@ CALC_ROLL_ACTIVE
@ CALC_ROLL_NEG_X
#define N_(msgid)

Definition at line 231 of file armature_edit.c.

Referenced by ARMATURE_OT_calculate_roll().