Cleanup: Move `EditBone` structure definition from `ED` to `BKE` area.

Access to this structure will be needed in BKE's armature code.
This commit is contained in:
Bastien Montagne 2020-10-02 15:36:42 +02:00
parent e3b49bb850
commit 5fc992e76a
23 changed files with 128 additions and 113 deletions

View File

@ -30,6 +30,7 @@ extern "C" {
struct BMEditMesh;
struct Bone;
struct Depsgraph;
struct IDProperty;
struct ListBase;
struct Main;
struct Mesh;
@ -42,6 +43,77 @@ struct bGPDstroke;
struct bPose;
struct bPoseChannel;
typedef struct EditBone {
struct EditBone *next, *prev;
/** User-Defined Properties on this Bone */
struct IDProperty *prop;
/** Editbones have a one-way link (i.e. children refer
* to parents. This is converted to a two-way link for
* normal bones when leaving editmode. */
struct EditBone *parent;
/** (64 == MAXBONENAME) */
char name[64];
/** Roll along axis. We'll ultimately use the axis/angle method
* for determining the transformation matrix of the bone. The axis
* is tail-head while roll provides the angle. Refer to Graphics
* Gems 1 p. 466 (section IX.6) if it's not already in here somewhere*/
float roll;
/** Orientation and length is implicit during editing */
float head[3];
float tail[3];
/** All joints are considered to have zero rotation with respect to
* their parents. Therefore any rotations specified during the
* animation are automatically relative to the bones' rest positions*/
int flag;
int layer;
char inherit_scale_mode;
/* Envelope distance & weight */
float dist, weight;
/** put them in order! transform uses this as scale */
float xwidth, length, zwidth;
float rad_head, rad_tail;
/* Bendy-Bone parameters */
short segments;
float roll1, roll2;
float curve_in_x, curve_in_y;
float curve_out_x, curve_out_y;
float ease1, ease2;
float scale_in_x, scale_in_y;
float scale_out_x, scale_out_y;
/** for envelope scaling */
float oldlength;
/** Type of next/prev bone handles */
char bbone_prev_type;
char bbone_next_type;
/** Next/prev bones to use as handle references when calculating bbones (optional) */
struct EditBone *bbone_prev;
struct EditBone *bbone_next;
/* Used for display */
/** in Armature space, rest pos matrix */
float disp_mat[4][4];
/** in Armature space, rest pos matrix */
float disp_tail_mat[4][4];
/** in Armature space, rest pos matrix (32 == MAX_BBONE_SUBDIV) */
float disp_bbone_mat[32][4][4];
/** connected child temporary during drawing */
struct EditBone *bbone_child;
/* Used to store temporary data */
union {
struct EditBone *ebone;
struct Bone *bone;
void *p;
int i;
} temp;
} EditBone;
typedef struct PoseTarget {
struct PoseTarget *next, *prev;

View File

@ -36,6 +36,7 @@
#include "BLI_string_utils.h"
#include "BKE_action.h"
#include "BKE_armature.h"
#include "BKE_constraint.h"
#include "BKE_context.h"
#include "BKE_deform.h"

View File

@ -223,7 +223,9 @@ void POSE_OT_propagate(struct wmOperatorType *ot);
* but some tools still have a bit of overlap which makes things messy -- Feb 2013
*/
EditBone *make_boneList(struct ListBase *edbo, struct ListBase *bones, struct Bone *actBone);
struct EditBone *make_boneList(struct ListBase *edbo,
struct ListBase *bones,
struct Bone *actBone);
/* duplicate method */
void preEditBoneDuplicate(struct ListBase *editbones);
@ -241,7 +243,7 @@ struct EditBone *duplicateEditBoneObjects(struct EditBone *cur_bone,
struct Object *src_ob,
struct Object *dst_ob);
EditBone *add_points_bone(struct Object *obedit, float head[3], float tail[3]);
struct EditBone *add_points_bone(struct Object *obedit, float head[3], float tail[3]);
void bone_free(struct bArmature *arm, struct EditBone *bone);
void armature_tag_select_mirrored(struct bArmature *arm);
@ -249,10 +251,10 @@ void armature_select_mirrored_ex(struct bArmature *arm, const int flag);
void armature_select_mirrored(struct bArmature *arm);
void armature_tag_unselect(struct bArmature *arm);
EditBone *ED_armature_pick_ebone(struct bContext *C,
const int xy[2],
bool findunsel,
struct Base **r_base);
struct EditBone *ED_armature_pick_ebone(struct bContext *C,
const int xy[2],
bool findunsel,
struct Base **r_base);
struct bPoseChannel *ED_armature_pick_pchan(struct bContext *C,
const int xy[2],
bool findunsel,

View File

@ -34,6 +34,7 @@
#include "BLI_string_utils.h"
#include "BKE_action.h"
#include "BKE_armature.h"
#include "BKE_context.h"
#include "BKE_layer.h"
#include "BKE_object.h"

View File

@ -31,6 +31,7 @@
#include "BLI_array_utils.h"
#include "BLI_listbase.h"
#include "BKE_armature.h"
#include "BKE_context.h"
#include "BKE_layer.h"
#include "BKE_main.h"

View File

@ -30,6 +30,7 @@ extern "C" {
struct Base;
struct Bone;
struct Depsgraph;
struct EditBone;
struct IDProperty;
struct ListBase;
struct Main;
@ -47,77 +48,6 @@ struct bPoseChannel;
struct wmKeyConfig;
struct wmOperator;
typedef struct EditBone {
struct EditBone *next, *prev;
/** User-Defined Properties on this Bone */
struct IDProperty *prop;
/** Editbones have a one-way link (i.e. children refer
* to parents. This is converted to a two-way link for
* normal bones when leaving editmode. */
struct EditBone *parent;
/** (64 == MAXBONENAME) */
char name[64];
/** Roll along axis. We'll ultimately use the axis/angle method
* for determining the transformation matrix of the bone. The axis
* is tail-head while roll provides the angle. Refer to Graphics
* Gems 1 p. 466 (section IX.6) if it's not already in here somewhere*/
float roll;
/** Orientation and length is implicit during editing */
float head[3];
float tail[3];
/** All joints are considered to have zero rotation with respect to
* their parents. Therefore any rotations specified during the
* animation are automatically relative to the bones' rest positions*/
int flag;
int layer;
char inherit_scale_mode;
/* Envelope distance & weight */
float dist, weight;
/** put them in order! transform uses this as scale */
float xwidth, length, zwidth;
float rad_head, rad_tail;
/* Bendy-Bone parameters */
short segments;
float roll1, roll2;
float curve_in_x, curve_in_y;
float curve_out_x, curve_out_y;
float ease1, ease2;
float scale_in_x, scale_in_y;
float scale_out_x, scale_out_y;
/** for envelope scaling */
float oldlength;
/** Type of next/prev bone handles */
char bbone_prev_type;
char bbone_next_type;
/** Next/prev bones to use as handle references when calculating bbones (optional) */
struct EditBone *bbone_prev;
struct EditBone *bbone_next;
/* Used for display */
/** in Armature space, rest pos matrix */
float disp_mat[4][4];
/** in Armature space, rest pos matrix */
float disp_tail_mat[4][4];
/** in Armature space, rest pos matrix (32 == MAX_BBONE_SUBDIV) */
float disp_bbone_mat[32][4][4];
/** connected child temporary during drawing */
struct EditBone *bbone_child;
/* Used to store temporary data */
union {
struct EditBone *ebone;
struct Bone *bone;
void *p;
int i;
} temp;
} EditBone;
#define BONESEL_ROOT (1u << 29)
#define BONESEL_TIP (1u << 30)
#define BONESEL_BONE (1u << 31)
@ -141,13 +71,13 @@ typedef struct EditBone {
#define BONE_SELECT_CHILD 1
/* armature_add.c */
EditBone *ED_armature_ebone_add(struct bArmature *arm, const char *name);
EditBone *ED_armature_ebone_add_primitive(struct Object *obedit_arm,
float length,
bool view_aligned);
struct EditBone *ED_armature_ebone_add(struct bArmature *arm, const char *name);
struct EditBone *ED_armature_ebone_add_primitive(struct Object *obedit_arm,
float length,
bool view_aligned);
/* armature_edit.c */
float ED_armature_ebone_roll_to_vector(const EditBone *bone,
float ED_armature_ebone_roll_to_vector(const struct EditBone *bone,
const float align_axis[3],
const bool axis_only);
void ED_armature_origin_set(
@ -156,7 +86,7 @@ void ED_armature_edit_transform(struct bArmature *arm, const float mat[4][4], co
void ED_armature_transform(struct bArmature *arm, const float mat[4][4], const bool do_props);
/* armature_naming.c */
void ED_armature_ebone_unique_name(struct ListBase *ebones, char *name, EditBone *bone);
void ED_armature_ebone_unique_name(struct ListBase *ebones, char *name, struct EditBone *bone);
void ED_armature_bone_rename(struct Main *bmain,
struct bArmature *arm,
const char *oldnamep,
@ -219,19 +149,22 @@ void ED_armature_undosys_type(struct UndoType *ut);
void ED_armature_edit_sync_selection(struct ListBase *edbo);
void ED_armature_edit_validate_active(struct bArmature *arm);
void ED_armature_edit_refresh_layer_used(struct bArmature *arm);
void ED_armature_ebone_remove_ex(struct bArmature *arm, EditBone *exBone, bool clear_connected);
void ED_armature_ebone_remove(struct bArmature *arm, EditBone *exBone);
bool ED_armature_ebone_is_child_recursive(EditBone *ebone_parent, EditBone *ebone_child);
EditBone *ED_armature_ebone_find_shared_parent(EditBone *ebone_child[],
const unsigned int ebone_child_tot);
void ED_armature_ebone_to_mat3(EditBone *ebone, float r_mat[3][3]);
void ED_armature_ebone_to_mat4(EditBone *ebone, float r_mat[4][4]);
void ED_armature_ebone_from_mat3(EditBone *ebone, const float mat[3][3]);
void ED_armature_ebone_from_mat4(EditBone *ebone, const float mat[4][4]);
EditBone *ED_armature_ebone_find_name(const struct ListBase *edbo, const char *name);
EditBone *ED_armature_ebone_get_mirrored(const struct ListBase *edbo, EditBone *ebo);
void ED_armature_ebone_remove_ex(struct bArmature *arm,
struct EditBone *exBone,
bool clear_connected);
void ED_armature_ebone_remove(struct bArmature *arm, struct EditBone *exBone);
bool ED_armature_ebone_is_child_recursive(struct EditBone *ebone_parent,
struct EditBone *ebone_child);
struct EditBone *ED_armature_ebone_find_shared_parent(struct EditBone *ebone_child[],
const unsigned int ebone_child_tot);
void ED_armature_ebone_to_mat3(struct EditBone *ebone, float r_mat[3][3]);
void ED_armature_ebone_to_mat4(struct EditBone *ebone, float r_mat[4][4]);
void ED_armature_ebone_from_mat3(struct EditBone *ebone, const float mat[3][3]);
void ED_armature_ebone_from_mat4(struct EditBone *ebone, const float mat[4][4]);
struct EditBone *ED_armature_ebone_find_name(const struct ListBase *edbo, const char *name);
struct EditBone *ED_armature_ebone_get_mirrored(const struct ListBase *edbo, struct EditBone *ebo);
void ED_armature_ebone_transform_mirror_update(struct bArmature *arm,
EditBone *ebo,
struct EditBone *ebo,
bool check_select);
void ED_armature_edit_transform_mirror_update(struct Object *obedit);
void ED_armature_from_edit(struct Main *bmain, struct bArmature *arm);
@ -242,11 +175,11 @@ void ED_armature_ebone_listbase_free(struct ListBase *lb);
void ED_armature_ebone_listbase_copy(struct ListBase *lb_dst, struct ListBase *lb_src);
/* low level selection functions which handle */
int ED_armature_ebone_selectflag_get(const EditBone *ebone);
void ED_armature_ebone_selectflag_set(EditBone *ebone, int flag);
void ED_armature_ebone_select_set(EditBone *ebone, bool select);
void ED_armature_ebone_selectflag_enable(EditBone *ebone, int flag);
void ED_armature_ebone_selectflag_disable(EditBone *ebone, int flag);
int ED_armature_ebone_selectflag_get(const struct EditBone *ebone);
void ED_armature_ebone_selectflag_set(struct EditBone *ebone, int flag);
void ED_armature_ebone_select_set(struct EditBone *ebone, bool select);
void ED_armature_ebone_selectflag_enable(struct EditBone *ebone, int flag);
void ED_armature_ebone_selectflag_disable(struct EditBone *ebone, int flag);
/* pose_edit.c */
struct Object *ED_pose_object_from_context(struct bContext *C);

View File

@ -41,6 +41,7 @@
#include "BLT_translation.h"
#include "BKE_anim_data.h"
#include "BKE_armature.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_idprop.h"
@ -50,8 +51,6 @@
#include "UI_interface.h"
#include "ED_armature.h"
#include "WM_api.h"
#include "WM_types.h"

View File

@ -46,6 +46,7 @@
#include "BKE_DerivedMesh.h"
#include "BKE_animsys.h"
#include "BKE_armature.h"
#include "BKE_context.h"
#include "BKE_curve.h"
#include "BKE_displist.h"

View File

@ -33,6 +33,7 @@
#include "BLI_utildefines.h"
#include "BKE_action.h"
#include "BKE_armature.h"
#include "BKE_editmesh.h"
#include "BKE_lattice.h"
#include "BKE_scene.h"
@ -41,7 +42,6 @@
#include "WM_types.h"
#include "ED_armature.h"
#include "ED_curve.h"
#include "ED_object.h" /* own include */

View File

@ -43,6 +43,7 @@
#include "DNA_world_types.h"
#include "BKE_action.h"
#include "BKE_armature.h"
#include "BKE_context.h"
#include "BKE_layer.h"
#include "BKE_linestyle.h"
@ -55,7 +56,6 @@
#include "RNA_access.h"
#include "ED_armature.h"
#include "ED_physics.h"
#include "ED_screen.h"

View File

@ -42,6 +42,7 @@
#include "BLT_translation.h"
#include "BKE_armature.h"
#include "BKE_blender_version.h"
#include "BKE_context.h"
#include "BKE_curve.h"
@ -59,7 +60,6 @@
#include "DEG_depsgraph_query.h"
#include "ED_armature.h"
#include "ED_info.h"
#include "UI_resources.h"

View File

@ -42,6 +42,7 @@
#include "BLT_translation.h"
#include "BKE_armature.h"
#include "BKE_context.h"
#include "BKE_deform.h"
#include "BKE_fcurve.h"

View File

@ -41,6 +41,7 @@
#include "BKE_animsys.h"
#include "BKE_appdir.h"
#include "BKE_armature.h"
#include "BKE_blender_copybuffer.h"
#include "BKE_collection.h"
#include "BKE_context.h"
@ -61,7 +62,6 @@
#include "../blenloader/BLO_readfile.h"
#include "ED_armature.h"
#include "ED_keyframing.h"
#include "ED_object.h"
#include "ED_outliner.h"

View File

@ -49,6 +49,7 @@
#include "BKE_anim_data.h"
#include "BKE_animsys.h"
#include "BKE_armature.h"
#include "BKE_collection.h"
#include "BKE_constraint.h"
#include "BKE_context.h"
@ -69,7 +70,6 @@
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_build.h"
#include "ED_armature.h"
#include "ED_object.h"
#include "ED_outliner.h"
#include "ED_scene.h"

View File

@ -61,6 +61,7 @@
#include "BLT_translation.h"
#include "BKE_armature.h"
#include "BKE_fcurve_driver.h"
#include "BKE_idtype.h"
#include "BKE_layer.h"
@ -73,7 +74,6 @@
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_build.h"
#include "ED_armature.h"
#include "ED_screen.h"
#include "WM_api.h"

View File

@ -30,12 +30,12 @@
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
#include "BKE_armature.h"
#include "BKE_context.h"
#include "BKE_layer.h"
#include "BKE_object.h"
#include "BKE_outliner_treehash.h"
#include "ED_armature.h"
#include "ED_outliner.h"
#include "ED_screen.h"

View File

@ -44,6 +44,7 @@
#include "BLI_utildefines.h"
#include "BKE_action.h"
#include "BKE_armature.h"
#include "BKE_context.h"
#include "BKE_curve.h"
#include "BKE_customdata.h"
@ -61,7 +62,6 @@
#include "RNA_access.h"
#include "ED_armature.h"
#include "ED_mesh.h"
#include "ED_object.h"
#include "ED_screen.h"

View File

@ -31,6 +31,7 @@
#include "BLI_string_utils.h"
#include "BLI_threads.h"
#include "BKE_armature.h"
#include "BKE_camera.h"
#include "BKE_collection.h"
#include "BKE_context.h"
@ -62,7 +63,6 @@
#include "DRW_engine.h"
#include "DRW_select_buffer.h"
#include "ED_armature.h"
#include "ED_gpencil.h"
#include "ED_info.h"
#include "ED_keyframing.h"

View File

@ -42,6 +42,7 @@
#include "BLI_utildefines.h"
#include "BKE_action.h"
#include "BKE_armature.h"
#include "BKE_context.h"
#include "BKE_curve.h"
#include "BKE_editmesh.h"

View File

@ -40,6 +40,7 @@
#include "BLI_utildefines.h"
#include "BKE_action.h"
#include "BKE_armature.h"
#include "BKE_context.h"
#include "BKE_curve.h"
#include "BKE_editmesh.h"

View File

@ -35,6 +35,7 @@
#include "BLI_utildefines.h"
#include "BKE_DerivedMesh.h"
#include "BKE_armature.h"
#include "BKE_context.h"
#include "BKE_curve.h"
#include "BKE_editmesh.h"

View File

@ -23,7 +23,8 @@
#include "collada_utils.h"
#include "BLI_linklist.h"
#include "ED_armature.h"
#include "BKE_armature.h"
UnitConverter::UnitConverter() : unit(), up_axis(COLLADAFW::FileInfo::Z_UP)
{

View File

@ -44,6 +44,7 @@
#include "BLI_math.h"
#include "BKE_action.h"
#include "BKE_armature.h"
#include "BKE_constraint.h"
#include "BKE_context.h"
#include "BKE_customdata.h"
@ -58,7 +59,6 @@
#include "BKE_object.h"
#include "BKE_scene.h"
#include "ED_armature.h"
#include "ED_node.h"
#include "ED_object.h"
#include "ED_screen.h"