Show crosshair at build root, build pivoting, avatar offsets, improved Pose Stand
This commit is contained in:
@@ -7429,7 +7429,12 @@ void LLAgent::sendAgentSetAppearance()
|
||||
// NOTE -- when we start correcting all of the other Havok geometry
|
||||
// to compensate for the COLLISION_TOLERANCE ugliness we will have
|
||||
// to tweak this number again
|
||||
const LLVector3 body_size = mAvatarObject->mBodySize;
|
||||
LLVector3 body_size = mAvatarObject->mBodySize;
|
||||
|
||||
body_size.mV[VX] = body_size.mV[VX] + gSavedSettings.getF32("AscentAvatarXModifier");
|
||||
body_size.mV[VY] = body_size.mV[VY] + gSavedSettings.getF32("AscentAvatarYModifier");
|
||||
body_size.mV[VZ] = body_size.mV[VZ] + gSavedSettings.getF32("AscentAvatarZModifier");
|
||||
|
||||
msg->addVector3Fast(_PREHASH_Size, body_size);
|
||||
|
||||
// To guard against out of order packets
|
||||
|
||||
@@ -69,7 +69,11 @@ S32 LLManip::sMaxTimesShowHelpText = 5;
|
||||
F32 LLManip::sGridMaxSubdivisionLevel = 32.f;
|
||||
F32 LLManip::sGridMinSubdivisionLevel = 1.f;
|
||||
LLVector2 LLManip::sTickLabelSpacing(60.f, 25.f);
|
||||
|
||||
bool LLManip::sActualRoot = false;// going to set these up in the main entry
|
||||
bool LLManip::sPivotPerc = false;
|
||||
F32 LLManip::sPivotX = 0.f;
|
||||
F32 LLManip::sPivotY = 0.f;
|
||||
F32 LLManip::sPivotZ = 0.f;
|
||||
|
||||
//static
|
||||
void LLManip::rebuild(LLViewerObject* vobj)
|
||||
@@ -100,6 +104,53 @@ LLManip::LLManip( const std::string& name, LLToolComposite* composite )
|
||||
mHighlightedPart(LL_NO_PART),
|
||||
mManipPart(LL_NO_PART)
|
||||
{
|
||||
initPivot();
|
||||
|
||||
gSavedSettings.getControl("AscentBuildPrefs_ActualRoot")->getSignal()->connect(boost::bind(&updateActualRoot));
|
||||
gSavedSettings.getControl("AscentBuildPrefs_PivotIsPercent")->getSignal()->connect(boost::bind(&updatePivotIsPercent));
|
||||
gSavedSettings.getControl("AscentBuildPrefs_PivotX")->getSignal()->connect(boost::bind(&updatePivotX));
|
||||
gSavedSettings.getControl("AscentBuildPrefs_PivotY")->getSignal()->connect(boost::bind(&updatePivotY));
|
||||
gSavedSettings.getControl("AscentBuildPrefs_PivotZ")->getSignal()->connect(boost::bind(&updatePivotZ));
|
||||
}
|
||||
//static
|
||||
void LLManip::initPivot()
|
||||
{
|
||||
sActualRoot = (bool)gSavedSettings.getBOOL("AscentBuildPrefs_ActualRoot");
|
||||
sPivotPerc = (bool)gSavedSettings.getBOOL("AscentBuildPrefs_PivotIsPercent");
|
||||
sPivotX = gSavedSettings.getF32("AscentBuildPrefs_PivotX");
|
||||
sPivotY = gSavedSettings.getF32("AscentBuildPrefs_PivotY");
|
||||
sPivotZ = gSavedSettings.getF32("AscentBuildPrefs_PivotZ");
|
||||
}
|
||||
//static
|
||||
bool LLManip::updateActualRoot()
|
||||
{
|
||||
//sActualRoot = (bool)data.asBoolean();
|
||||
sActualRoot = gSavedSettings.getBOOL("AscentBuildPrefs_ActualRoot");
|
||||
return true;
|
||||
}
|
||||
//static
|
||||
bool LLManip::updatePivotIsPercent()
|
||||
{
|
||||
sPivotPerc = gSavedSettings.getBOOL("AscentBuildPrefs_PivotIsPercent");
|
||||
return true;
|
||||
}
|
||||
//static
|
||||
bool LLManip::updatePivotX()
|
||||
{
|
||||
sPivotX = gSavedSettings.getF32("AscentBuildPrefs_PivotX");
|
||||
return true;
|
||||
}
|
||||
//static
|
||||
bool LLManip::updatePivotY()
|
||||
{
|
||||
sPivotY = gSavedSettings.getF32("AscentBuildPrefs_PivotY");
|
||||
return true;
|
||||
}
|
||||
//static
|
||||
bool LLManip::updatePivotZ()
|
||||
{
|
||||
sPivotZ = gSavedSettings.getF32("AscentBuildPrefs_PivotZ");
|
||||
return true;
|
||||
}
|
||||
|
||||
void LLManip::getManipNormal(LLViewerObject* object, EManipPart manip, LLVector3 &normal)
|
||||
@@ -351,14 +402,47 @@ LLVector3 LLManip::getSavedPivotPoint() const
|
||||
|
||||
LLVector3 LLManip::getPivotPoint()
|
||||
{
|
||||
if (mObjectSelection->getFirstObject() && mObjectSelection->getObjectCount() == 1 && mObjectSelection->getSelectType() != SELECT_TYPE_HUD)
|
||||
LLVector3 pos;
|
||||
LLVector3 scale;
|
||||
LLQuaternion rot;// = mObjectSelection->getFirstObject()->getRotation();
|
||||
if (mObjectSelection->getFirstRootObject(TRUE) && (mObjectSelection->getObjectCount() == 1 || sActualRoot) && mObjectSelection->getSelectType() != SELECT_TYPE_HUD)
|
||||
{
|
||||
return mObjectSelection->getFirstObject()->getPivotPositionAgent();
|
||||
pos = mObjectSelection->getFirstRootObject(TRUE)->getPivotPositionAgent();
|
||||
scale = mObjectSelection->getFirstRootObject(TRUE)->getScale();
|
||||
rot = mObjectSelection->getFirstRootObject(TRUE)->getRotation();
|
||||
}else
|
||||
{
|
||||
pos = LLSelectMgr::getInstance()->getBBoxOfSelection().getCenterAgent();
|
||||
scale = LLSelectMgr::getInstance()->getBBoxOfSelection().getExtentLocal();
|
||||
rot = LLSelectMgr::getInstance()->getBBoxOfSelection().getRotation();
|
||||
}
|
||||
return LLSelectMgr::getInstance()->getBBoxOfSelection().getCenterAgent();
|
||||
if(sPivotPerc)
|
||||
{
|
||||
|
||||
LLVector3 add(
|
||||
(-scale[VX]*0.5) + (scale[VX]*(sPivotX*0.01)),
|
||||
(-scale[VY]*0.5) + (scale[VY]*(sPivotY*0.01)),
|
||||
(-scale[VZ]*0.5) + (scale[VZ]*(sPivotZ*0.01)));
|
||||
add = add * rot;
|
||||
pos = pos + add;
|
||||
}else
|
||||
{
|
||||
//pos[VX] = pos[VX] + gSavedSettings.getF32("EmeraldBuildPrefs_PivotX");
|
||||
//pos[VY] = pos[VY] + gSavedSettings.getF32("EmeraldBuildPrefs_PivotY");
|
||||
//pos[VZ] = pos[VZ] + gSavedSettings.getF32("EmeraldBuildPrefs_PivotZ");
|
||||
LLVector3 add(
|
||||
sPivotX,
|
||||
sPivotY,
|
||||
sPivotZ);
|
||||
add = add * rot;
|
||||
pos = pos + add;
|
||||
}
|
||||
//pos = pos * rot;
|
||||
return pos;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void LLManip::renderGuidelines(BOOL draw_x, BOOL draw_y, BOOL draw_z)
|
||||
{
|
||||
LLVector3 grid_origin;
|
||||
|
||||
@@ -151,6 +151,13 @@ protected:
|
||||
BOOL getMousePointOnPlaneAgent(LLVector3& point, S32 x, S32 y, LLVector3 origin, LLVector3 normal);
|
||||
BOOL nearestPointOnLineFromMouse( S32 x, S32 y, const LLVector3& b1, const LLVector3& b2, F32 &a_param, F32 &b_param );
|
||||
LLColor4 setupSnapGuideRenderPass(S32 pass);
|
||||
private:
|
||||
static void initPivot();
|
||||
static bool updateActualRoot();
|
||||
static bool updatePivotIsPercent();
|
||||
static bool updatePivotX();
|
||||
static bool updatePivotY();
|
||||
static bool updatePivotZ();
|
||||
protected:
|
||||
LLFrameTimer mHelpTextTimer;
|
||||
BOOL mInSnapRegime;
|
||||
@@ -165,6 +172,11 @@ protected:
|
||||
static F32 sGridMaxSubdivisionLevel;
|
||||
static F32 sGridMinSubdivisionLevel;
|
||||
static LLVector2 sTickLabelSpacing;
|
||||
static bool sActualRoot;
|
||||
static bool sPivotPerc;
|
||||
static F32 sPivotX;
|
||||
static F32 sPivotY;
|
||||
static F32 sPivotZ;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -3442,42 +3442,49 @@ void handle_close_all_notifications(void*)
|
||||
// this code, please supply your own animations.
|
||||
void handle_pose_stand_ltao(void*)
|
||||
{
|
||||
gSavedSettings.setF32("AscentAvatarZModifier", 5.0);
|
||||
gAgent.sendAnimationRequest(current_pose, ANIM_REQUEST_STOP);
|
||||
current_pose.set("6c082c7b-f70e-9da0-0451-54793f869ff4");
|
||||
gAgent.sendAnimationRequest(current_pose, ANIM_REQUEST_START);
|
||||
}
|
||||
void handle_pose_stand_ltah(void*)
|
||||
{
|
||||
gSavedSettings.setF32("AscentAvatarZModifier", 5.0);
|
||||
gAgent.sendAnimationRequest(current_pose, ANIM_REQUEST_STOP);
|
||||
current_pose.set("45e59c14-913b-c58c-2a55-c0a5c1eeef53");
|
||||
gAgent.sendAnimationRequest(current_pose, ANIM_REQUEST_START);
|
||||
}
|
||||
void handle_pose_stand_ltad(void*)
|
||||
{
|
||||
gSavedSettings.setF32("AscentAvatarZModifier", 5.0);
|
||||
gAgent.sendAnimationRequest(current_pose, ANIM_REQUEST_STOP);
|
||||
current_pose.set("421d6bb4-94a9-3c42-4593-f2bc1f6a26e6");
|
||||
gAgent.sendAnimationRequest(current_pose, ANIM_REQUEST_START);
|
||||
}
|
||||
void handle_pose_stand_loau(void*)
|
||||
{
|
||||
gSavedSettings.setF32("AscentAvatarZModifier", 5.0);
|
||||
gAgent.sendAnimationRequest(current_pose, ANIM_REQUEST_STOP);
|
||||
current_pose.set("8b3bb239-d610-1c0f-4d1a-69d29bc17e2c");
|
||||
gAgent.sendAnimationRequest(current_pose, ANIM_REQUEST_START);
|
||||
}
|
||||
void handle_pose_stand_loao(void*)
|
||||
{
|
||||
gSavedSettings.setF32("AscentAvatarZModifier", 5.0);
|
||||
gAgent.sendAnimationRequest(current_pose, ANIM_REQUEST_STOP);
|
||||
current_pose.set("4d70e328-48b6-dc6a-0be1-85dd6b333e81");
|
||||
gAgent.sendAnimationRequest(current_pose, ANIM_REQUEST_START);
|
||||
}
|
||||
void handle_pose_stand_lhao(void*)
|
||||
{
|
||||
gSavedSettings.setF32("AscentAvatarZModifier", 5.0);
|
||||
gAgent.sendAnimationRequest(current_pose, ANIM_REQUEST_STOP);
|
||||
current_pose.set("f088eaf0-f1c9-8cf1-99c8-09df96bb13ae");
|
||||
gAgent.sendAnimationRequest(current_pose, ANIM_REQUEST_START);
|
||||
}
|
||||
void handle_pose_stand_stop(void*)
|
||||
{
|
||||
gSavedSettings.setF32("AscentAvatarZModifier", 0.0);
|
||||
gAgent.sendAnimationRequest(current_pose, ANIM_REQUEST_STOP);
|
||||
current_pose = LLUUID::null;
|
||||
}
|
||||
@@ -9744,7 +9751,8 @@ void initialize_menus()
|
||||
// </edit>
|
||||
addMenu(new LLToolsSaveToObjectInventory(), "Tools.SaveToObjectInventory");
|
||||
addMenu(new LLToolsSelectedScriptAction(), "Tools.SelectedScriptAction");
|
||||
|
||||
addMenu(new LLScriptDelete(), "Tools.ScriptDelete");
|
||||
addMenu(new LLObjectEnableScriptDelete(), "Tools.EnableScriptDelete");
|
||||
addMenu(new LLToolsEnableToolNotPie(), "Tools.EnableToolNotPie");
|
||||
addMenu(new LLToolsEnableSelectNextPart(), "Tools.EnableSelectNextPart");
|
||||
addMenu(new LLToolsEnableLink(), "Tools.EnableLink");
|
||||
|
||||
@@ -874,6 +874,13 @@
|
||||
<on_click function="Tools.SelectedScriptAction" userdata="stop" />
|
||||
<on_enable function="EditableSelected" />
|
||||
</menu_item_call>
|
||||
<menu_item_call bottom="-525" enabled="false" height="19"
|
||||
label="Remove Scripts in Selection" left="0"
|
||||
mouse_opaque="true" name="Remove Scripts in Selection"
|
||||
width="250">
|
||||
<on_click function="Tools.ScriptDelete" />
|
||||
<on_enable function="Tools.EnableScriptDelete" />
|
||||
</menu_item_call>
|
||||
</menu>
|
||||
<menu bottom="219" create_jump_keys="true" drop_shadow="true" enabled="true"
|
||||
height="317" label="Help" left="227" mouse_opaque="false" name="Help"
|
||||
|
||||
Reference in New Issue
Block a user