Merge branch 'master' into blender2.8
[blender.git] / source / blender / editors / include / ED_armature.h
index 9130336228d7340d4e64a834a3442bf1729fca96..bbc6e8912c3cee2531b64b80c893a00cf266bdc5 100644 (file)
@@ -35,7 +35,7 @@ extern "C" {
 #endif
 
 struct bArmature;
-struct Base;
+struct BaseLegacy;
 struct bContext;
 struct Bone;
 struct bPoseChannel;
@@ -44,8 +44,10 @@ struct ListBase;
 struct MeshDeformModifierData;
 struct DerivedMesh;
 struct Object;
+struct Base;
 struct ReportList;
 struct Scene;
+struct SceneLayer;
 struct ViewContext;
 struct wmKeyConfig;
 struct wmOperator;
@@ -82,6 +84,12 @@ typedef struct EditBone {
        
        short segments;
 
+       /* Used for display */
+       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]; /*  in Armature space, rest pos matrix */
+
        /* Used to store temporary data */
        union {
                struct EditBone *ebone;
@@ -131,7 +139,7 @@ void ED_armature_deselect_all(struct Object *obedit);
 void ED_armature_deselect_all_visible(struct Object *obedit);
 
 bool ED_do_pose_selectbuffer(
-        struct Scene *scene, struct Base *base, const unsigned int *buffer, short hits,
+        struct Scene *scene, struct SceneLayer *sl, struct Base *base, const unsigned int *buffer, short hits,
         bool extend, bool deselect, bool toggle, bool do_nearest);
 bool ED_armature_select_pick(struct bContext *C, const int mval[2], bool extend, bool deselect, bool toggle);
 int join_armature_exec(struct bContext *C, struct wmOperator *op);
@@ -166,8 +174,8 @@ void ED_armature_transform(struct bArmature *arm, float mat[4][4], const bool do
 #define ARM_GROUPS_ENVELOPE 2
 #define ARM_GROUPS_AUTO     3
 
-void create_vgroups_from_armature(struct ReportList *reports, struct Scene *scene, struct Object *ob,
-                                  struct Object *par, const int mode, const bool mirror);
+void create_vgroups_from_armature(struct ReportList *reports, const struct bContext *C, struct Scene *scene,
+                                  struct Object *ob, struct Object *par, const int mode, const bool mirror);
 
 /* if bone is already in list, pass it as param to ignore it */
 void unique_editbone_name(struct ListBase *ebones, char *name, EditBone *bone);
@@ -188,7 +196,7 @@ void ED_armature_exit_posemode(struct bContext *C, struct Base *base);
 void ED_armature_enter_posemode(struct bContext *C, struct Base *base);
 void ED_pose_de_selectall(struct Object *ob, int select_mode, const bool ignore_visibility);
 void ED_pose_bone_select(struct Object *ob, struct bPoseChannel *pchan, bool select);
-void ED_pose_recalculate_paths(struct Scene *scene, struct Object *ob);
+void ED_pose_recalculate_paths(struct bContext *C, struct Scene *scene, struct Object *ob);
 struct Object *ED_pose_object_from_context(struct bContext *C);
 
 /* sketch */