diff options
Diffstat (limited to 'source/blender/editors/sculpt_paint/sculpt_intern.h')
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt_intern.h | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/source/blender/editors/sculpt_paint/sculpt_intern.h b/source/blender/editors/sculpt_paint/sculpt_intern.h index e9ad31d6f25..e8a6369c3b5 100644 --- a/source/blender/editors/sculpt_paint/sculpt_intern.h +++ b/source/blender/editors/sculpt_paint/sculpt_intern.h @@ -37,6 +37,7 @@ struct KeyBlock; struct Object; struct SculptUndoNode; struct bContext; +struct PoseIKChainSegment; bool sculpt_mode_poll(struct bContext *C); bool sculpt_mode_poll_view3d(struct bContext *C); @@ -74,6 +75,15 @@ void sculpt_pose_calc_pose_data(struct Sculpt *sd, float *r_pose_origin, float *r_pose_factor); +struct PoseIKChain *sculpt_pose_ik_chain_init(struct Sculpt *sd, + struct Object *ob, + struct SculptSession *ss, + struct Brush *br, + const float initial_location[3], + const float radius); + +void sculpt_pose_ik_chain_free(struct PoseIKChain *ik_chain); + /* Sculpt PBVH abstraction API */ const float *sculpt_vertex_co_get(struct SculptSession *ss, int index); @@ -201,10 +211,9 @@ typedef struct SculptThreadedTaskData { float *prev_mask; - float *pose_origin; - float *pose_initial_co; float *pose_factor; - float (*transform_rot)[4], (*transform_trans)[4], (*transform_trans_inv)[4]; + float *pose_initial_co; + int pose_chain_segment; float multiplane_scrape_angle; float multiplane_scrape_planes[2][4]; @@ -250,7 +259,7 @@ typedef struct { struct Sculpt *sd; struct SculptSession *ss; float radius_squared; - float *center; + const float *center; bool original; bool ignore_fully_masked; } SculptSearchSphereData; @@ -379,9 +388,7 @@ typedef struct StrokeCache { float anchored_location[3]; /* Pose brush */ - float *pose_factor; - float pose_initial_co[3]; - float pose_origin[3]; + struct PoseIKChain *pose_ik_chain; float vertex_rotation; /* amount to rotate the vertices when using rotate brush */ struct Dial *dial; |