SL-17628 Add viewer sided max attachment distance to position fields

master
Andrey Kleshchev 2022-09-21 21:54:37 +03:00
parent 1ad175a0df
commit 664ce046ee
2 changed files with 17 additions and 1 deletions

View File

@ -93,6 +93,8 @@ enum {
MI_HOLE_COUNT
};
const F32 MAX_ATTACHMENT_DIST = 3.5f; // meters
//static const std::string LEGACY_FULLBRIGHT_DESC =LLTrans::getString("Fullbright");
BOOL LLPanelObject::postBuild()
@ -1685,6 +1687,16 @@ void LLPanelObject::sendPosition(BOOL btn_down)
mCtrlPosZ->set(LLWorld::getInstance()->resolveLandHeightAgent(newpos) + 1.f);
}
}
else
{
if (newpos.length() > MAX_ATTACHMENT_DIST)
{
newpos.clampLength(MAX_ATTACHMENT_DIST);
mCtrlPosX->set(newpos.mV[VX]);
mCtrlPosY->set(newpos.mV[VY]);
mCtrlPosZ->set(newpos.mV[VZ]);
}
}
// Make sure new position is in a valid region, so the object
// won't get dumped by the simulator.
@ -2191,6 +2203,10 @@ void LLPanelObject::onPastePos()
mClipboardPos.mV[VY] = llclamp(mClipboardPos.mV[VY], 0.f, max_width);
//height will get properly clamped by sendPosition
}
else
{
mClipboardPos.clampLength(MAX_ATTACHMENT_DIST);
}
mCtrlPosX->set( mClipboardPos.mV[VX] );
mCtrlPosY->set( mClipboardPos.mV[VY] );

View File

@ -45,7 +45,7 @@
#include "llglheaders.h"
extern LLPipeline gPipeline;
const F32 MAX_ATTACHMENT_DIST = 3.5f; // meters?
const F32 MAX_ATTACHMENT_DIST = 3.5f; // meters
//-----------------------------------------------------------------------------
// LLViewerJointAttachment()