Feature request by StephiDreamEvermore Doune: Implement the convenience of being able to set view offsets while modifier keys are held during scroll in third person camera (Play with camera position/angle)
This commit is contained in:
@@ -2022,6 +2022,14 @@ LLVector3 LLAgentCamera::getCameraOffsetInitial()
|
|||||||
return convert_from_llsd<LLVector3>(mCameraOffsetInitial[mCameraPreset]->get(), TYPE_VEC3, "");
|
return convert_from_llsd<LLVector3>(mCameraOffsetInitial[mCameraPreset]->get(), TYPE_VEC3, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Adds change to vector CachedControl, vec, at idx
|
||||||
|
template <typename T, typename Vec>
|
||||||
|
void change_vec(const T& change, LLCachedControl<Vec>& vec, const U32& idx = VZ)
|
||||||
|
{
|
||||||
|
Vec changed(vec);
|
||||||
|
changed[idx] += change;
|
||||||
|
vec = changed;
|
||||||
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// handleScrollWheel()
|
// handleScrollWheel()
|
||||||
@@ -2057,6 +2065,24 @@ void LLAgentCamera::handleScrollWheel(S32 clicks)
|
|||||||
}
|
}
|
||||||
else if (mFocusOnAvatar && (mCameraMode == CAMERA_MODE_THIRD_PERSON))
|
else if (mFocusOnAvatar && (mCameraMode == CAMERA_MODE_THIRD_PERSON))
|
||||||
{
|
{
|
||||||
|
if (MASK mask = gKeyboard->currentMask(true)) // Singu Note: Conveniently set view offsets while modifier keys are held during scroll
|
||||||
|
{
|
||||||
|
if (mask & MASK_CONTROL|MASK_SHIFT)
|
||||||
|
{
|
||||||
|
const F32 change(static_cast<F32>(clicks) * 0.1f);
|
||||||
|
if (mask & MASK_SHIFT)
|
||||||
|
{
|
||||||
|
static LLCachedControl<LLVector3d> focus_offset("FocusOffsetRearView");
|
||||||
|
change_vec(change, focus_offset);
|
||||||
|
}
|
||||||
|
if (mask & MASK_CONTROL)
|
||||||
|
{
|
||||||
|
static LLCachedControl<LLVector3> camera_offset("CameraOffsetRearView");
|
||||||
|
change_vec(change, camera_offset);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
F32 camera_offset_initial_mag = getCameraOffsetInitial().magVec();
|
F32 camera_offset_initial_mag = getCameraOffsetInitial().magVec();
|
||||||
|
|
||||||
static const LLCachedControl<F32> camera_offset_scale("CameraOffsetScale");
|
static const LLCachedControl<F32> camera_offset_scale("CameraOffsetScale");
|
||||||
|
|||||||
Reference in New Issue
Block a user