Show crosshair at build root, build pivoting, avatar offsets, improved Pose Stand

This commit is contained in:
CharleyLevenque
2010-09-01 18:04:08 -04:00
parent b86566df43
commit 2a6a783d6a
5 changed files with 122 additions and 6 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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;
};

View File

@@ -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");

View File

@@ -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"