Poser: first pass at reinstating rotation sliders
parent
800b759cff
commit
983a0637dc
|
|
@ -165,6 +165,10 @@ bool FSFloaterPoser::postBuild()
|
|||
mPosYSlider = getChild<LLSliderCtrl>("av_position_leftright");
|
||||
mPosZSlider = getChild<LLSliderCtrl>("av_position_updown");
|
||||
|
||||
mAdvRotXSlider = getChild<LLSliderCtrl>("limb_pitch_slider");
|
||||
mAdvRotYSlider = getChild<LLSliderCtrl>("limb_yaw_slider");
|
||||
mAdvRotZSlider = getChild<LLSliderCtrl>("limb_roll_slider");
|
||||
|
||||
mAdvPosXSlider = getChild<LLSliderCtrl>("Advanced_Position_X");
|
||||
mAdvPosYSlider = getChild<LLSliderCtrl>("Advanced_Position_Y");
|
||||
mAdvPosZSlider = getChild<LLSliderCtrl>("Advanced_Position_Z");
|
||||
|
|
@ -797,6 +801,25 @@ void FSFloaterPoser::onCommitSlider(const LLUICtrl* slider, const S32 id)
|
|||
break;
|
||||
}
|
||||
|
||||
case 4: // limb_pitch_slider
|
||||
{
|
||||
mPitchSpnr->setValue(value);
|
||||
onYawPitchRollChanged();
|
||||
break;
|
||||
}
|
||||
case 5: // limb_yaw_slider
|
||||
{
|
||||
mYawSpnr->setValue(value);
|
||||
onYawPitchRollChanged();
|
||||
break;
|
||||
}
|
||||
case 6: // limb_roll_slider
|
||||
{
|
||||
mRollSpnr->setValue(value);
|
||||
onYawPitchRollChanged();
|
||||
break;
|
||||
}
|
||||
|
||||
case 10: // Advanced_Scale_X
|
||||
{
|
||||
mScaleXSpnr->setValue(value);
|
||||
|
|
@ -1816,10 +1839,15 @@ F32 FSFloaterPoser::clipRange(F32 value)
|
|||
void FSFloaterPoser::onYawPitchRollChanged(bool skipUpdateTrackpad)
|
||||
{
|
||||
LLVector3 absoluteRotation, deltaRotation;
|
||||
absoluteRotation.mV[VX] = (F32)mYawSpnr->getValue().asReal() * DEG_TO_RAD;
|
||||
absoluteRotation.mV[VY] = (F32)mPitchSpnr->getValue().asReal() * DEG_TO_RAD;
|
||||
absoluteRotation.mV[VZ] = (F32)mRollSpnr->getValue().asReal() * DEG_TO_RAD;
|
||||
absoluteRotation.mV[VX] = (F32)mYawSpnr->getValue().asReal();
|
||||
absoluteRotation.mV[VY] = (F32)mPitchSpnr->getValue().asReal();
|
||||
absoluteRotation.mV[VZ] = (F32)mRollSpnr->getValue().asReal();
|
||||
|
||||
mAdvRotXSlider->setValue(absoluteRotation.mV[VY]);
|
||||
mAdvRotYSlider->setValue(absoluteRotation.mV[VX]);
|
||||
mAdvRotZSlider->setValue(absoluteRotation.mV[VZ]);
|
||||
|
||||
absoluteRotation *= DEG_TO_RAD;
|
||||
deltaRotation = absoluteRotation - mLastSliderRotation;
|
||||
mLastSliderRotation = absoluteRotation;
|
||||
|
||||
|
|
@ -1853,6 +1881,9 @@ void FSFloaterPoser::refreshRotationSlidersAndSpinners()
|
|||
mYawSpnr->setValue(rotation.mV[VX] *= RAD_TO_DEG);
|
||||
mPitchSpnr->setValue(rotation.mV[VY] *= RAD_TO_DEG);
|
||||
mRollSpnr->setValue(rotation.mV[VZ] *= RAD_TO_DEG);
|
||||
mAdvRotXSlider->setValue(rotation.mV[VY]);
|
||||
mAdvRotYSlider->setValue(rotation.mV[VX]);
|
||||
mAdvRotZSlider->setValue(rotation.mV[VZ]);
|
||||
}
|
||||
|
||||
void FSFloaterPoser::refreshPositionSlidersAndSpinners()
|
||||
|
|
|
|||
|
|
@ -448,6 +448,9 @@ public:
|
|||
LLSliderCtrl* mPosXSlider{ nullptr };
|
||||
LLSliderCtrl* mPosYSlider{ nullptr };
|
||||
LLSliderCtrl* mPosZSlider{ nullptr };
|
||||
LLSliderCtrl* mAdvRotXSlider{ nullptr };
|
||||
LLSliderCtrl* mAdvRotYSlider{ nullptr };
|
||||
LLSliderCtrl* mAdvRotZSlider{ nullptr };
|
||||
LLSliderCtrl* mAdvPosXSlider{ nullptr };
|
||||
LLSliderCtrl* mAdvPosYSlider{ nullptr };
|
||||
LLSliderCtrl* mAdvPosZSlider{ nullptr };
|
||||
|
|
|
|||
|
|
@ -975,7 +975,7 @@ width="430">
|
|||
<tab_container
|
||||
follows="all"
|
||||
halign="center"
|
||||
height="235"
|
||||
height="263"
|
||||
layout="topleft"
|
||||
name="modifier_tabs"
|
||||
tab_height="20"
|
||||
|
|
@ -986,7 +986,7 @@ width="430">
|
|||
width="215">
|
||||
<panel
|
||||
follows="left|right|top|bottom"
|
||||
height="290"
|
||||
height="265"
|
||||
background_visible="false"
|
||||
layout="topleft"
|
||||
mouse_opaque="false"
|
||||
|
|
@ -1000,9 +1000,9 @@ width="430">
|
|||
name="limb_rotation"
|
||||
follows="left|right|top"
|
||||
top="2"
|
||||
height="170"
|
||||
width="170"
|
||||
left="10"
|
||||
height="160"
|
||||
width="160"
|
||||
left="15"
|
||||
tool_tip="Change the rotation of the currently selected body part(s). Hold Ctrl to move slow. Roll the wheel to adjust the 3rd axis. Use Shift or Alt to swap which rotations change"
|
||||
pinch_mode="false"
|
||||
infinite_scroll_mode="true"/>
|
||||
|
|
@ -1011,75 +1011,132 @@ width="430">
|
|||
name="limb_pitch_label"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
left="2"
|
||||
left="5"
|
||||
top_pad="2"
|
||||
width="57">
|
||||
width="200">
|
||||
Up/Down:
|
||||
</text>
|
||||
<slider
|
||||
label=""
|
||||
label_width="0"
|
||||
follows="left|top"
|
||||
height="14"
|
||||
increment="0.1"
|
||||
initial_value="0"
|
||||
layout="topleft"
|
||||
show_text="false"
|
||||
left="3"
|
||||
min_val="-180"
|
||||
max_val="180"
|
||||
name="limb_pitch_slider"
|
||||
top_pad="2"
|
||||
width="130" >
|
||||
<slider.commit_callback
|
||||
function="Poser.CommitSlider"
|
||||
parameter="4"/>
|
||||
</slider>
|
||||
<spinner
|
||||
height="16"
|
||||
decimal_digits="2"
|
||||
follows="left|top"
|
||||
increment="0.01"
|
||||
top_pad="-19"
|
||||
left_pad="0"
|
||||
name="limb_pitch_spinner"
|
||||
min_val="-180"
|
||||
max_val="180"
|
||||
width="53">
|
||||
<spinner.commit_callback
|
||||
function="Poser.CommitSpinner"
|
||||
parameter="4"/>
|
||||
</spinner>
|
||||
<text
|
||||
follows="left|top"
|
||||
name="limb_yaw_label"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
top_pad="-10"
|
||||
width="57">
|
||||
left="5"
|
||||
top_pad="2"
|
||||
width="200">
|
||||
Left/Right:
|
||||
</text>
|
||||
<slider
|
||||
label=""
|
||||
label_width="0"
|
||||
follows="left|top"
|
||||
height="14"
|
||||
increment="0.1"
|
||||
initial_value="0"
|
||||
layout="topleft"
|
||||
show_text="false"
|
||||
left="3"
|
||||
min_val="-180"
|
||||
max_val="180"
|
||||
name="limb_yaw_slider"
|
||||
top_pad="2"
|
||||
width="130" >
|
||||
<slider.commit_callback
|
||||
function="Poser.CommitSlider"
|
||||
parameter="5"/>
|
||||
</slider>
|
||||
<spinner
|
||||
height="16"
|
||||
decimal_digits="2"
|
||||
follows="left|top"
|
||||
increment="0.01"
|
||||
top_pad="-19"
|
||||
left_pad="0"
|
||||
name="limb_yaw_spinner"
|
||||
min_val="-180"
|
||||
max_val="180"
|
||||
width="53">
|
||||
<spinner.commit_callback
|
||||
function="Poser.CommitSpinner"
|
||||
parameter="5"/>
|
||||
</spinner>
|
||||
<text
|
||||
follows="left|top"
|
||||
name="limb_roll_label"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
top_pad="-10"
|
||||
left="5"
|
||||
top_pad="2"
|
||||
width="200">
|
||||
Roll:
|
||||
</text>
|
||||
<slider
|
||||
label=""
|
||||
label_width="0"
|
||||
follows="left|top"
|
||||
height="14"
|
||||
increment="0.1"
|
||||
initial_value="0"
|
||||
layout="topleft"
|
||||
show_text="false"
|
||||
left="3"
|
||||
min_val="-180"
|
||||
max_val="180"
|
||||
name="limb_roll_slider"
|
||||
top_pad="2"
|
||||
width="130" >
|
||||
<slider.commit_callback
|
||||
function="Poser.CommitSlider"
|
||||
parameter="6"/>
|
||||
</slider>
|
||||
<spinner
|
||||
height="16"
|
||||
decimal_digits="2"
|
||||
follows="left|top"
|
||||
increment="0.1"
|
||||
left="2"
|
||||
top_pad="5"
|
||||
name="limb_pitch_spinner"
|
||||
min_val="-180"
|
||||
max_val="180"
|
||||
width="57">
|
||||
height="16"
|
||||
decimal_digits="2"
|
||||
follows="left|top"
|
||||
increment="0.01"
|
||||
top_pad="-19"
|
||||
left_pad="0"
|
||||
name="limb_roll_spinner"
|
||||
min_val="-180"
|
||||
max_val="180"
|
||||
width="53">
|
||||
<spinner.commit_callback
|
||||
function="Poser.CommitSpinner"
|
||||
parameter="4"/>
|
||||
</spinner>
|
||||
<spinner
|
||||
height="16"
|
||||
decimal_digits="2"
|
||||
follows="left|top"
|
||||
increment="0.1"
|
||||
top_pad="-16"
|
||||
left_pad="5"
|
||||
name="limb_yaw_spinner"
|
||||
min_val="-180"
|
||||
max_val="180"
|
||||
width="57">
|
||||
<spinner.commit_callback
|
||||
function="Poser.CommitSpinner"
|
||||
parameter="5"/>
|
||||
</spinner>
|
||||
<spinner
|
||||
height="16"
|
||||
decimal_digits="2"
|
||||
follows="left|top"
|
||||
increment="0.1"
|
||||
top_pad="-16"
|
||||
left_pad="5"
|
||||
name="limb_roll_spinner"
|
||||
min_val="-180"
|
||||
max_val="180"
|
||||
width="57">
|
||||
<spinner.commit_callback
|
||||
function="Poser.CommitSpinner"
|
||||
parameter="6"/>
|
||||
function="Poser.CommitSpinner"
|
||||
parameter="6"/>
|
||||
</spinner>
|
||||
</panel>
|
||||
<panel
|
||||
|
|
@ -1468,12 +1525,13 @@ width="430">
|
|||
</button>
|
||||
<button
|
||||
follows="left|top"
|
||||
height="21"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
label="Copy L > R"
|
||||
name="button_symmetrize_left_to_right"
|
||||
tool_tip="Click to copy change from left side to right side."
|
||||
left="14"
|
||||
top_pad="0"
|
||||
width="70" >
|
||||
<button.commit_callback
|
||||
function="Poser.Symmetrize"
|
||||
|
|
@ -1481,7 +1539,7 @@ width="430">
|
|||
</button>
|
||||
<button
|
||||
follows="left|top"
|
||||
height="21"
|
||||
height="19"
|
||||
layout="topleft"
|
||||
label="Copy R > L"
|
||||
name="button_symmetrize_right_to_left"
|
||||
|
|
|
|||
Loading…
Reference in New Issue