dropdown for bone creation method and swap params in panel instead of having all of them visible all the time.
This commit is contained in:
@@ -2301,6 +2301,14 @@ static void view3d_panel_bonesketch_spaces(short cntrl)
|
||||
/* replace with check call to sketching lib */
|
||||
if (G.obedit && G.obedit->type == OB_ARMATURE)
|
||||
{
|
||||
static char subdiv_tooltip[4][64] = {
|
||||
"Subdivide arcs based on a fixed number of bones",
|
||||
"Subdivide arcs in bones of equal length",
|
||||
"Subdivide arcs based on correlation",
|
||||
"Retarget template to stroke"
|
||||
};
|
||||
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_panel_bonesketch_spaces", UI_EMBOSS, UI_HELV, curarea->win);
|
||||
uiPanelControl(UI_PNL_SOLID | UI_PNL_CLOSE | cntrl);
|
||||
uiSetPanelHandler(VIEW3D_HANDLER_BONESKETCH); // for close and esc
|
||||
@@ -2327,66 +2335,73 @@ static void view3d_panel_bonesketch_spaces(short cntrl)
|
||||
uiBlockEndAlign(block);
|
||||
|
||||
uiBlockBeginAlign(block);
|
||||
|
||||
uiDefButC(block, ROW, B_REDR, "Length", 10, yco, 60, 19, &G.scene->toolsettings->bone_sketching_convert, 0, SK_CONVERT_CUT_LENGTH, 0, 0, "Subdivide arcs in bones of equal length");
|
||||
uiDefButF(block, NUM, B_REDR, "Lim:", 70, yco, 140, 19, &G.scene->toolsettings->skgen_length_limit,0.1,50.0, 10, 0, "Maximum length of the subdivided bones");
|
||||
yco -= 20;
|
||||
|
||||
uiDefButC(block, ROW, B_REDR, "Correlation", 10, yco, 60, 19, &G.scene->toolsettings->bone_sketching_convert, 0, SK_CONVERT_CUT_CORRELATION, 0, 0, "Subdivide arcs based on correlation");
|
||||
uiDefButF(block, NUM, B_REDR, "Thres:", 70, yco, 140, 19, &G.scene->toolsettings->skgen_correlation_limit,0.0, 1.0, 0.01, 0, "Correlation threshold for subdivision");
|
||||
yco -= 20;
|
||||
|
||||
uiDefButC(block, ROW, B_REDR, "Fixed", 10, yco, 60, 19, &G.scene->toolsettings->bone_sketching_convert, 0, SK_CONVERT_CUT_FIXED, 0, 0, "Subdivide arcs based on a fixed number of bones");
|
||||
uiDefButC(block, NUM, B_REDR, "Num:", 70, yco, 140, 19, &G.scene->toolsettings->skgen_subdivision_number,1, 100, 1, 5, "Number of subdivided bones");
|
||||
yco -= 20;
|
||||
|
||||
uiDefButC(block, ROW, B_REDR, "Retarget", 10, yco,80, 19, &G.scene->toolsettings->bone_sketching_convert, 0, SK_CONVERT_RETARGET, 0, 0, "Retarget selected bones to stroke");
|
||||
uiDefButC(block, ROW, B_DIFF, "No", 90, yco, 40,19, &G.scene->toolsettings->skgen_retarget_roll, 0, 0, 0, 0, "No special roll treatment");
|
||||
uiDefButC(block, ROW, B_DIFF, "View", 130, yco, 40,19, &G.scene->toolsettings->skgen_retarget_roll, 0, SK_RETARGET_ROLL_VIEW, 0, 0, "Roll bones perpendicular to view");
|
||||
uiDefButC(block, ROW, B_DIFF, "Joint", 170, yco, 40,19, &G.scene->toolsettings->skgen_retarget_roll, 0, SK_RETARGET_ROLL_JOINT, 0, 0, "Roll bones relative to joint bend");
|
||||
yco -= 20;
|
||||
|
||||
uiBlockEndAlign(block);
|
||||
|
||||
yco -= 10;
|
||||
uiBlockBeginAlign(block);
|
||||
|
||||
/* button here to select what to do (copy or not), template, ...*/
|
||||
uiDefButC(block, MENU, B_REDR, "Subdivision Method%t|Length%x2|Correlation%x3|Fixed%x1|Template%x4", 10,yco,60,19, &G.scene->toolsettings->bone_sketching_convert, 0, 0, 0, 0, subdiv_tooltip[(unsigned char)G.scene->toolsettings->bone_sketching_convert]);
|
||||
|
||||
BIF_makeListTemplates();
|
||||
template_index = BIF_currentTemplate();
|
||||
|
||||
but = uiDefButI(block, MENU, B_REDR, BIF_listTemplates(), 10,yco,200,19, &template_index, 0, 0, 0, 0, "Template");
|
||||
uiButSetFunc(but, assign_template_sketch_armature, &template_index, NULL);
|
||||
|
||||
yco -= 20;
|
||||
|
||||
uiDefButF(block, NUM, B_DIFF, "A:", 10, yco, 66,19, &G.scene->toolsettings->skgen_retarget_angle_weight, 0, 10, 1, 0, "Angle Weight");
|
||||
uiDefButF(block, NUM, B_DIFF, "L:", 76, yco, 67,19, &G.scene->toolsettings->skgen_retarget_length_weight, 0, 10, 1, 0, "Length Weight");
|
||||
uiDefButF(block, NUM, B_DIFF, "D:", 143,yco, 67,19, &G.scene->toolsettings->skgen_retarget_distance_weight, 0, 10, 1, 0, "Distance Weight");
|
||||
yco -= 20;
|
||||
|
||||
uiDefBut(block, TEX,B_DIFF,"S:", 10, yco, 90, 20, G.scene->toolsettings->skgen_side_string, 0.0, 8.0, 0, 0, "Text to replace &S with");
|
||||
uiDefBut(block, TEX,B_DIFF,"N:", 100, yco, 90, 20, G.scene->toolsettings->skgen_num_string, 0.0, 8.0, 0, 0, "Text to replace &N with");
|
||||
uiDefIconButBitC(block, TOG, SK_RETARGET_AUTONAME, B_DIFF, ICON_AUTO,190,yco,20,20, &G.scene->toolsettings->skgen_retarget_options, 0, 0, 0, 0, "Use Auto Naming");
|
||||
yco -= 20;
|
||||
|
||||
/* auto renaming magic */
|
||||
uiBlockEndAlign(block);
|
||||
|
||||
nb_joints = BIF_nbJointsTemplate();
|
||||
|
||||
if (nb_joints == -1)
|
||||
switch(G.scene->toolsettings->bone_sketching_convert)
|
||||
{
|
||||
nb_joints = G.totvertsel;
|
||||
case SK_CONVERT_CUT_LENGTH:
|
||||
uiDefButF(block, NUM, B_REDR, "Lim:", 70, yco, 140, 19, &G.scene->toolsettings->skgen_length_limit,0.1,50.0, 10, 0, "Maximum length of the subdivided bones");
|
||||
yco -= 20;
|
||||
break;
|
||||
case SK_CONVERT_CUT_CORRELATION:
|
||||
uiDefButF(block, NUM, B_REDR, "Thres:", 70, yco, 140, 19, &G.scene->toolsettings->skgen_correlation_limit,0.0, 1.0, 0.01, 0, "Correlation threshold for subdivision");
|
||||
yco -= 20;
|
||||
break;
|
||||
default:
|
||||
case SK_CONVERT_CUT_FIXED:
|
||||
uiDefButC(block, NUM, B_REDR, "Num:", 70, yco, 140, 19, &G.scene->toolsettings->skgen_subdivision_number,1, 100, 1, 5, "Number of subdivided bones");
|
||||
yco -= 20;
|
||||
break;
|
||||
case SK_CONVERT_RETARGET:
|
||||
uiDefButC(block, ROW, B_DIFF, "No", 70, yco, 40,19, &G.scene->toolsettings->skgen_retarget_roll, 0, 0, 0, 0, "No special roll treatment");
|
||||
uiDefButC(block, ROW, B_DIFF, "View", 110, yco, 50,19, &G.scene->toolsettings->skgen_retarget_roll, 0, SK_RETARGET_ROLL_VIEW, 0, 0, "Roll bones perpendicular to view");
|
||||
uiDefButC(block, ROW, B_DIFF, "Joint", 160, yco, 50,19, &G.scene->toolsettings->skgen_retarget_roll, 0, SK_RETARGET_ROLL_JOINT, 0, 0, "Roll bones relative to joint bend");
|
||||
yco -= 30;
|
||||
|
||||
uiBlockEndAlign(block);
|
||||
|
||||
uiBlockBeginAlign(block);
|
||||
/* button here to select what to do (copy or not), template, ...*/
|
||||
|
||||
BIF_makeListTemplates();
|
||||
template_index = BIF_currentTemplate();
|
||||
|
||||
but = uiDefButI(block, MENU, B_REDR, BIF_listTemplates(), 10,yco,200,19, &template_index, 0, 0, 0, 0, "Template");
|
||||
uiButSetFunc(but, assign_template_sketch_armature, &template_index, NULL);
|
||||
|
||||
yco -= 20;
|
||||
|
||||
uiDefButF(block, NUM, B_DIFF, "A:", 10, yco, 66,19, &G.scene->toolsettings->skgen_retarget_angle_weight, 0, 10, 1, 0, "Angle Weight");
|
||||
uiDefButF(block, NUM, B_DIFF, "L:", 76, yco, 67,19, &G.scene->toolsettings->skgen_retarget_length_weight, 0, 10, 1, 0, "Length Weight");
|
||||
uiDefButF(block, NUM, B_DIFF, "D:", 143,yco, 67,19, &G.scene->toolsettings->skgen_retarget_distance_weight, 0, 10, 1, 0, "Distance Weight");
|
||||
yco -= 20;
|
||||
|
||||
uiDefBut(block, TEX,B_DIFF,"S:", 10, yco, 90, 20, G.scene->toolsettings->skgen_side_string, 0.0, 8.0, 0, 0, "Text to replace &S with");
|
||||
uiDefBut(block, TEX,B_DIFF,"N:", 100, yco, 90, 20, G.scene->toolsettings->skgen_num_string, 0.0, 8.0, 0, 0, "Text to replace &N with");
|
||||
uiDefIconButBitC(block, TOG, SK_RETARGET_AUTONAME, B_DIFF, ICON_AUTO,190,yco,20,20, &G.scene->toolsettings->skgen_retarget_options, 0, 0, 0, 0, "Use Auto Naming");
|
||||
yco -= 20;
|
||||
|
||||
/* auto renaming magic */
|
||||
uiBlockEndAlign(block);
|
||||
|
||||
nb_joints = BIF_nbJointsTemplate();
|
||||
|
||||
if (nb_joints == -1)
|
||||
{
|
||||
nb_joints = G.totvertsel;
|
||||
}
|
||||
|
||||
bone_name = BIF_nameBoneTemplate();
|
||||
|
||||
BLI_snprintf(joint_label, 32, "%i joints: %s", nb_joints, bone_name);
|
||||
|
||||
uiDefBut(block, LABEL, 1, joint_label, 10, yco, 200, 20, NULL, 0.0, 0.0, 0, 0, "");
|
||||
yco -= 20;
|
||||
break;
|
||||
}
|
||||
|
||||
bone_name = BIF_nameBoneTemplate();
|
||||
|
||||
BLI_snprintf(joint_label, 32, "%i joints: %s", nb_joints, bone_name);
|
||||
|
||||
uiDefBut(block, LABEL, 1, joint_label, 10, yco, 200, 20, NULL, 0.0, 0.0, 0, 0, "");
|
||||
yco -= 20;
|
||||
|
||||
uiBlockEndAlign(block);
|
||||
|
||||
uiDefButBitS(block, TOG, SCE_SNAP_PEEL_OBJECT, B_DIFF, "Peel Objects", 10, yco, 200, 20, &G.scene->snap_flag, 0, 0, 0, 0, "Peel whole objects as one");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user